...
As part of EWOK's set up, you will notice two variables that pertain to ecFlow which are needed to run an experiment. They are EWOK_WORKDIR and EWOK_FLOWDIR. The EWOK_WORKDIR is where all of your experiment files will be saved that are generated by the workflow - such as feedback files, background files, observations, and your forecasts. The EWOK_FLOWDIR will contain configuration files and the runtime files that get executed. Tip: for testing small on the fly changes, after kicking off an experiment you can edit the runtime files in EWOK_FLOWDIR and then restart the task. Although the runtime file in the EWOK repository will not be updated, this method is useful if you need to force something to work or if you want to troubleshoot without touching the repo.
Setting up CylcCylc
Cylc has many python dependencies, which means it clashes with our ewok-env. Therefore a work around is to install it inside its own virtual environment on your local machine. Instructions are also included for using Discover’s cylc installation. This works with spack-stack 1.9.x modules and GMAO’s SWELL application.
...
- Python requirements: cylc-flow python3.8+; cylc-uiserver python3.8-3.9
- Documentation: Cylc Documentation and Swell Documentation
- Github: Cylc repositories and swell
...
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 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".
Adding cylc to your workflow venv:
If you want to run cylc with JEDI-Skylab workflows, you can force install cylc-flow into your workflow's virtual environment.
- Activate your Skylab virtual environment, if you haven't already.
Code Block language shell source $JEDI_ROOT/venv/bin/activate
- Force install cylc-flow. Note, cylc is installed in spack-stack but it has some compatibility issues so it is easiest at the point to re-install in your venv.
Code Block language shell pip install cylc-flow --force-reinstall
- Check cylc location and test with skylab/experiments/workflow-test.yaml:
Code Block language shell which cylc create_experiment.py skylab/experiments/workflow-test.yaml
Setting up venv for cylc GUI (ex: mac):
- 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
...