...
Table of Contents | ||||
---|---|---|---|---|
|
EWOK Developer Section
EWOK currently uses the ECMWSF's ecFlow software system for implementing workflows. This section will describe how EWOK and ecFlow interact to run a Skylab experiment. Instructions for setting up your environment to can be found in the JEDI Documentation.
...
Note: You can set up cylc-flow and cylc-uiserver in separate virtual environments. If you install cylc-flow in your JEDI-Skylab virtual environment, you can then install cylc-uiserver in a separate virutal virtual env and use that environment to kick off the GUI. Follow steps "Adding cylc to your workflow" and then "Setting up venv for cylc GIU".
...
- Needs python3.9 for the UI, therefore run:
Code Block language shell brew install python@3.9
- Update PYTHONPATH:
Code Block language shell module purge unset PYTHONPATH unset PYTHONHOME
- Created venv without spack-stack:
Code Block language shell python3.9 -m venv --system-site-packages cylc-venv
- Activate venv:
Code Block language shell source cylc-venv/bin/activate
- Install cylc:
Code Block language shell pip install cylc-flow pip install cylc-uiserver pip install cylc-rose metomi-rose
- Install optional:
Code Block language shell pip install 'cylc-flow[tutorial]' pip install 'cylc-uiserver[hub]'
- Graphviz:
Code Block language shell brew install graphviz
- To test the GUI:
Code Block language shell cylc gui
Setting up cylc localhost configuration:
In order to run Skylab with the correct virtual environment, since cylc ignores PYTHONPATH, you need to add a global.cylc file to run an init-script before runtime that will activate the JEDI venv. This should go in ~/.cylc/flow/global.cylc. Replace <JEDI_ROOT> with your path to your JEDI venv. The install block is optional for now, but it sets your cylc work directory and run directory to mimic ecflow. Note, these will automatically put a cylc-run directory under the parent EWOK_WORKDIR and EWOK_FLOWDIR directories.
vi ~/.cylc/flow/global.cylc
Code Block | ||||
---|---|---|---|---|
| ||||
[install]
[[symlink dirs]]
[[[localhost]]]
work = ${EWOK_WORKDIR}
run = ${EWOK_FLOWDIR}
[platforms]
[[localhost]]
hosts = localhost
job runner = background
global init-script = source <JEDI_ROOT>/venv/bin/activate |
Discover via spack-stack:
- Load spack-stack modules
Code Block language shell #!/usr/bin/env bash # Initialize modules source $MODULESHOME/init/bash # Load python dependencies echo "Using SLES15 modules" module use /discover/swdev/jcsda/spack-stack/scu17/modulefiles module use /gpfsm/dswdev/jcsda/spack-stack/scu17/spack-stack-1.9.0/envs/ue-intel-2021.10.0/install/modulefiles/Core module load stack-intel/2021.10.0 module load stack-intel-oneapi-mpi/2021.10.0 module load stack-python/3.11.7 module load py-pip/23.1.2
- Load cylc module and test
Code Block language shell # Load the cylc module module use -a /discover/nobackup/projects/gmao/advda/swell/dev/modulefiles/core/ module load cylc/sles15_8.4.0 # Run cylc command cylc "$@"
- You might need to create a file called $HOME/bin/cylc, and make sure it is executable in order to run locally: chmod +x $HOME/bin/cylc
- Note, I did not have to do this when setting up and running on discover-mil with spack-stack 1.9.0 intel
...