Hi everyone,
I am using cylc 8.6.0.
I created a simple cylc workflow that runs a model on a given HPC, let’s call it Platform1.
Now: half of our users have an account on Platform1, but the other half uses another HPC, let’s call it Platform2. All of them would like to run the exact same workflow.
Of course, on Platform2, SLURM queue, partition, module names, etc. are all different. So I started asking myself how to deal with this, without creating a completely new cylc workflow.
What I came up with is the following: I put all the platform-related variables in a separate git project, and I istall it with rose in the rose-suite.conf (as I do with the configurations, to deal with the different releases of the model).
[env]
ENV_TAG=Platform1/2
[file:env]
source=git:git@gitlab[...]my_suite_env::./::${ENV_TAG}
Now, I can install and validate without any problem. It also runs, but when I try to reaload: cylc vr my_workflow_ID fails, since in flow.cylc I have:
[[ root ]]
# these env vars will be available to all tasks:
[[[ environment ]]]
%include 'env/environment.cylc'
And cylc looks for them in the cycl-src/workflow_ID, while they are present just in the cylc-run/workflow_ID folder.
At this point, I am wondering if I am doint it all wrong, and are there simpler and more “cylc/rose” way of doing this?
Thanks in advance for your help!
Stella