diff --git a/docs/js/miscellaneous.js b/docs/js/miscellaneous.js index 46245f300..9f25cfedb 100644 --- a/docs/js/miscellaneous.js +++ b/docs/js/miscellaneous.js @@ -62,7 +62,7 @@ function tabFunctionality() { document.querySelectorAll('[href^="#"]:not([class^="md"])').forEach(el => { let href = el.getAttribute('href'); let tabEl = document.getElementById(href.slice(1,)) - if (tabEl.parentElement.classList.contains("tabLabels")) { + if (tabEl?.parentElement.classList.contains("tabLabels")) { el.addEventListener("click",(e) => openTab(tabEl), false); } }) diff --git a/docs/models/run-a-model/run-access-cm.md b/docs/models/run-a-model/run-access-cm.md index 696572c4f..00a0fd4f8 100644 --- a/docs/models/run-a-model/run-access-cm.md +++ b/docs/models/run-a-model/run-access-cm.md @@ -1,33 +1,13 @@ {% set model = "ACCESS-CM" %} - -
4
per simulated year.
- walltime
needs to be set according to the simulation length.
- walltime
needed is 4 hours per simulated year.
- normalbw
- tiny
(1 CPU)
- $PROJECT
.
- gdata/access+gdata/hh5+gdata/hr22+gdata/ki32
(minimum)
- +
signs) needed for the {{ model }} simulation. In ARE, storage locations need to be explicitly defined to access data from within a VDI instance.
- access
, hh5
, hr22
or ki32
, you need to add those projects to the storage path.
- /g/data/tm70
and /scratch/w40
, your full storage path will be: gdata/access+gdata/hh5+gdata/hr22+gdata/ki32+gdata/tm70+scratch/w40
- 2
ssh accessdev
- normalbw
+ tiny
(1 CPU)
+ $PROJECT
.
+ gdata/access+gdata/hh5+gdata/hr22+gdata/ki32
(minimum)
+ +
signs) needed for the {{ model }} simulation. In ARE, storage locations need to be explicitly defined to access data from within a VDI instance.
+ access
, hh5
, hr22
or ki32
, you need to add those projects to the storage path.
+ /g/data/tm70
and /scratch/w40
, your full storage path will be: gdata/access+gdata/hh5+gdata/hr22+gdata/ki32+gdata/tm70+scratch/w40
+ persistent-sessions start <name>
+
+This will start a persistent session with the given name
that runs under your default project.
+-p
:
+persistent-sessions start -p <project> <name>
+
+persistent-sessions list
+
+<name>.<$USER>.<project>.ps.gadi.nci.org.au
.
+
+### Specify {{ model }} target persistent session
+
+After starting the persistent session, it is essential to assign it to the {{ model }} run.
+~/.persistent-sessions/cylc-session
.
+cat > ~/.persistent-sessions/cylc-session <<< <name>.<$USER>.<project>.ps.gadi.nci.org.au
+
+For example, if the user abc123
started a persistent session named cylc
under the project xy00
, the command will be:
+
+persistent-sessions kill <persistent-session-uuid>
+suite-ID
in the format u-<suite-name>
, where <suite-name>
is a unique identifier.
u-cy339
, which is a preindustrial experiment suite.
- u-br565
, which is the CMIP6-release preindustrial experiment suite.
- u-cy339
, which is a pre-industrial experiment suite.
+module use /g/data/hr22/modulefiles
-module load cylc7
- mosrs-auth
- <suite-ID>
from the UKMO repository, run:
- rosie checkout <suite-ID>
- <suite-ID>
both locally and remotely in the UKMO repository, run:
- rosie copy <suite-ID>
- <suite-ID>
is generated within the repository and populated with descriptive information about the suite and its initial configuration.
- rosie
options, run:
- rosie help
+To copy an existing suite on Gadi you need to follow three main steps:
+~/roses/<suite-ID>
.
+ To get the Cylc7 setup required to run {{ model }}, execute the following commands:
+ module use /g/data/hr22/modulefiles
+module load cylc7/23.09
+ 23.09
(or later), as earlier versions do not support the persistent sessions workflow.
+ mosrs-auth
+ mosrs-auth
+ To create a local copy of the <suite-ID>
from the UKMO repository, run:
+ rosie checkout <suite-ID>
<suite-ID>
from the UKMO repository, run:
- rosie checkout <suite-ID>
- <suite-ID>
both locally and remotely in the UKMO repository, run:
- rosie copy <suite-ID>
- <suite-ID>
is generated within the repository and populated with descriptive information about the suite and its initial configuration.
- <suite-ID>
both locally and remotely in the UKMO repository, run:
+ rosie copy <suite-ID>
+ <suite-ID>
is generated within the repository and populated with descriptive information about the suite and its initial configuration.
rosie
options, run:
- rosie help
- ~/roses/<suite-ID>
.
- rosie
options, run:
+rosie help
+~/roses/<suite-ID>
.
Each suite directory usually contains two subdirectories and three files:
app
→ directory containing the configuration files for various tasks within the suite.&
is optional. It allows the terminal prompt to remain active while running the Rose GUI as a separate process in the background.
tm70
project (ACCESS-NRI), enter tm70
in the Compute project field:
-
-P50Y
and Cycling frequency to P1Y
(the maximum Cycling frequency is currently two years):
-
-
-rose suite-run
After the initial tasks are executed, the Cylc GUI will open. You can now view and control the different tasks in the suite as they are run:
+rose suite-run
, if you get an error similar to the following:
[FAIL] Suite "<suite-ID>" appears to be running:
[FAIL] Contact info from: "/home/565/<$USER>/cylc-run/<suite-ID>/.service/contact"
-[FAIL] CYLC_SUITE_HOST=accessdev.nci.org.au
+[FAIL] CYLC_SUITE_HOST=<persistent-session-full-name>
[FAIL] CYLC_SUITE_OWNER=<$USER>
[FAIL] CYLC_SUITE_PORT=<port>
-[FAIL] CYLC_SUITE_PROCESS=<PID> python2 /usr/local/cylc/cylc-7.8.3/bin/cylc-run <suite-ID>
+[FAIL] CYLC_SUITE_PROCESS=<PID> /g/data/hr22/apps/cylc7/bin/python -s /g/data/hr22/apps/cylc7/cylc_7.9.7/bin/cylc-run <suite-ID> --host=localhost
[FAIL] Try "cylc stop '<suite-ID>'" first?
you should run:
rm /home/565/<$USER>/cylc-run/<suite-ID>/.service/contact
@@ -563,17 +412,7 @@ To investigate the cause of a failure, we need to look at the logs job.err
To access a specific task, click on the arrow next to the task to extend the drop-down menu with all the subtasks.
-
-
-
-
-
-
-
-
-
-
-
+
-
Through the suite directory
@@ -626,29 +465,13 @@ To scan for active suites, run:
cylc scan
To reopen the Cylc GUI, run the following command from within the suite directory:
rose suite-gcontrol
-
-
-
-
- cylc scan
- <suite-ID> <$USER>@<gadi-cpu>.nci.org.au:<port>
- cd ~/roses/<suite-ID>
- rose suite-gcontrol
-
-
-
-
-
-
- cylc scan
- <suite-ID> <$USER>@accessdev.nci.org.au:<port>
- cd ~/roses/<suite-ID>
- rose suite-gcontrol
-
-
-
-
-
+
+ cylc scan
+ <suite-ID> <$USER>@<gadi-cpu>.nci.org.au:<port>
+ cd ~/roses/<suite-ID>
+ rose suite-gcontrol
+
+
### STOP a suite
To shutdown a suite in a safe manner, run the following command from within the suite directory:
@@ -676,81 +499,43 @@ There are two main ways to restart a suite:
You may need to manually trigger failed tasks from the Cylc GUI.
-
-
-
-
- cylc
- cd ~/roses/<suite-ID>
- rose suite-run --restart
- [INFO] export CYLC_VERSION=7.9.7
- [INFO] export ROSE_ORIG_HOST=<gadi-cpu>.nci.org.au
- [INFO] export ROSE_SITE=nci
- [INFO] export ROSE_VERSION=2019.01.2
- [INFO] delete: log/rose-suite-run.conf
- [INFO] symlink: rose-conf/<timestamp>-restart.conf <= log/rose-suite-run.conf
- [INFO] delete: log/rose-suite-run.version
- [INFO] symlink: rose-conf/<timestamp>-restart.version <= log/rose-suite-run.version
- [INFO] chdir: log/
- [INFO] ._.
- [INFO] | | The Cylc Suite Engine [7.9.7]
- [INFO] ._____._. ._| |_____. Copyright (C) 2008-2019 NIWA
- [INFO] | .___| | | | | .___| & British Crown (Met Office) & Contributors.
- [INFO] | !___| !_! | | !___. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- [INFO] !_____!___. |_!_____! This program comes with ABSOLUTELY NO WARRANTY;
- [INFO] .___! | see `cylc warranty`. It is free software, you
- [INFO] !_____! are welcome to redistribute it under certain
- [INFO]
- [INFO] *** listening on https://<gadi-cpu>.nci.org.au:<port>/ ***
- [INFO]
- [INFO] To view suite server program contact information:
- [INFO] $ cylc get-suite-contact <suite-ID>
- [INFO]
- [INFO] Other ways to see if the suite is still running:
- [INFO] $ cylc scan -n '<suite-ID>' <gadi-cpu>.nci.org.au
- [INFO] $ cylc ping -v --host=<gadi-cpu>.nci.org.au <suite-ID>
- [INFO] $ ps -opid,args <PID> # on <gadi-cpu>.nci.org.au
-
-
-
-
-
-
- cylc
- cd ~/roses/<suite-ID>
- rose suite-run --restart
- [INFO] export CYLC_VERSION=7.8.3
- [INFO] export ROSE_ORIG_HOST=accessdev.nci.org.au
- [INFO] export ROSE_SITE=
- [INFO] export ROSE_VERSION=2019.01.2
- [INFO] delete: log/rose-suite-run.conf
- [INFO] symlink: rose-conf/<timestamp>-restart.conf <= log/rose-suite-run.conf
- [INFO] delete: log/rose-suite-run.version
- [INFO] symlink: rose-conf/<timestamp>-restart.version <= log/rose-suite-run.version
- [INFO] chdir: log/
- [INFO] ._.
- [INFO] | | The Cylc Suite Engine [7.8.3]
- [INFO] ._____._. ._| |_____. Copyright (C) 2008-2019 NIWA
- [INFO] | .___| | | | | .___| & British Crown (Met Office) & Contributors.
- [INFO] | !___| !_! | | !___. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- [INFO] !_____!___. |_!_____! This program comes with ABSOLUTELY NO WARRANTY;
- [INFO] .___! | see `cylc warranty`. It is free software, you
- [INFO] !_____! are welcome to redistribute it under certain
- [INFO]
- [INFO] *** listening on https://accessdev.nci.org.au:<port>/ ***
- [INFO]
- [INFO] To view suite server program contact information:
- [INFO] $ cylc get-suite-contact <suite-ID>
- [INFO]
- [INFO] Other ways to see if the suite is still running:
- [INFO] $ cylc scan -n '<suite-ID>' accessdev.nci.org.au
- [INFO] $ cylc ping -v --host=accessdev.nci.org.au <suite-ID>
- [INFO] $ ps -opid,args <PID> # on accessdev.nci.org.au
-
-
-
-
-
+
+ cylc
+ cd ~/roses/<suite-ID>
+ rose suite-run --restart
+ [INFO] export CYLC_VERSION=7.9.7
+ [INFO] export ROSE_ORIG_HOST=<gadi-cpu>.nci.org.au
+ [INFO] export ROSE_SITE=nci
+ [INFO] export ROSE_VERSION=2019.01.2
+ [INFO] delete: log/rose-suite-run.conf
+ [INFO] symlink: rose-conf/<timestamp>-restart.conf <= log/rose-suite-run.conf
+ [INFO] delete: log/rose-suite-run.version
+ [INFO] symlink: rose-conf/<timestamp>-restart.version <= log/rose-suite-run.version
+ [INFO] chdir: log/
+ [WARN] Using the cylc session <persistent-session-full-name>
+ [WARN]
+ [WARN] Loading cylc7/23.09
+ [WARN] Loading requirement: mosrs-setup/1.0.1
+ [INFO] ._.
+ [INFO] | | The Cylc Suite Engine [7.9.7]
+ [INFO] ._____._. ._| |_____. Copyright (C) 2008-2019 NIWA
+ [INFO] | .___| | | | | .___| & British Crown (Met Office) & Contributors.
+ [INFO] | !___| !_! | | !___. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+ [INFO] !_____!___. |_!_____! This program comes with ABSOLUTELY NO WARRANTY;
+ [INFO] .___! | see `cylc warranty`. It is free software, you
+ [INFO] !_____! are welcome to redistribute it under certain
+ [INFO]
+ [INFO] *** listening on https://<persistent-session-full-name>:<port>/ ***
+ [INFO]
+ [INFO] To view suite server program contact information:
+ [INFO] $ cylc get-suite-contact <suite-ID>
+ [INFO]
+ [INFO] Other ways to see if the suite is still running:
+ [INFO] $ cylc scan -n '<suite-ID>' <persistent-session-full-name>
+ [INFO] $ cylc ping -v --host=<persistent-session-full-name> <suite-ID>
+ [INFO] $ ps -opid,args <PID> # on <persistent-session-full-name>
+
+
-
@@ -802,64 +587,76 @@ This directory contains two subdirectories:
For the atmospheric output data, the files are typically a UM fieldsfile or netCDF file, formatted as <suite-name>a.p<output-stream-identifier><year><month-string>
.
-
-
-
-
- For the u-cy339
suite in this example, the atm
directory contains:
-
- cd /scratch/<$PROJECT>/<$USER>/archive
- ls
- cy339 <other-suite-name> <other-suite-name>
- cd cy339
- ls
- history restart
- ls history/atm
- cy339a.pd0950apr.nc cy339a.pd0950aug.nc cy339a.pd0950dec.nc cy339a.pd0950feb.nc cy339a.pd0950jan.nc cy339a.pd0950jul.nc cy339a.pd0950jun.nc cy339a.pd0950mar.nc cy339a.pd0950may.nc cy339a.pd0950nov.nc cy339a.pd0950oct.nc cy339a.pd0950sep.nc cy339a.pd0951apr.nc cy339a.pd0951aug.nc cy339a.pd0951dec.nc cy339a.pm0950apr.nc cy339a.pm0950aug.nc cy339a.pm0950dec.nc cy339a.pm0950feb.nc cy339a.pm0950jan.nc cy339a.pm0950jul.nc cy339a.pm0950jun.nc cy339a.pm0950mar.nc cy339a.pm0950may.nc cy339a.pm0950nov.nc cy339a.pm0950oct.nc cy339a.pm0950sep.nc cy339a.pm0951apr.nc cy339a.pm0951aug.nc cy339a.pm0951dec.nc netCDF
-
-
-
-
- For the u-br565
suite in this example, the atm
directory contains:
-
- cd /scratch/<$PROJECT>/<$USER>/archive
- ls
- br565 <other-suite-name> <other-suite-name>
- cd br565
- ls
- history restart
- ls history/atm
- br565a.pd0950apr.nc br565a.pd0950aug.nc br565a.pd0950dec.nc br565a.pd0950feb.nc br565a.pd0950jan.nc br565a.pd0950jul.nc br565a.pd0950jun.nc br565a.pd0950mar.nc br565a.pd0950may.nc br565a.pd0950nov.nc br565a.pd0950oct.nc br565a.pd0950sep.nc br565a.pd0951apr.nc br565a.pd0951aug.nc br565a.pd0951dec.nc br565a.pm0950apr.nc br565a.pm0950aug.nc br565a.pm0950dec.nc br565a.pm0950feb.nc br565a.pm0950jan.nc br565a.pm0950jul.nc br565a.pm0950jun.nc br565a.pm0950mar.nc br565a.pm0950may.nc br565a.pm0950nov.nc br565a.pm0950oct.nc br565a.pm0950sep.nc br565a.pm0951apr.nc br565a.pm0951aug.nc br565a.pm0951dec.nc netCDF
-
-
-
-
+
+For the u-cy339
suite in this example, the atm
directory contains:
+
+ cd /scratch/<$PROJECT>/<$USER>/archive
+ ls
+ cy339 <other-suite-name> <other-suite-name>
+ cd cy339
+ ls
+ history restart
+ ls history/atm
+ cy339a.pd0950apr.nc cy339a.pd0950aug.nc cy339a.pd0950dec.nc cy339a.pd0950feb.nc cy339a.pd0950jan.nc cy339a.pd0950jul.nc cy339a.pd0950jun.nc cy339a.pd0950mar.nc cy339a.pd0950may.nc cy339a.pd0950nov.nc cy339a.pd0950oct.nc cy339a.pd0950sep.nc cy339a.pd0951apr.nc cy339a.pd0951aug.nc cy339a.pd0951dec.nc cy339a.pm0950apr.nc cy339a.pm0950aug.nc cy339a.pm0950dec.nc cy339a.pm0950feb.nc cy339a.pm0950jan.nc cy339a.pm0950jul.nc cy339a.pm0950jun.nc cy339a.pm0950mar.nc cy339a.pm0950may.nc cy339a.pm0950nov.nc cy339a.pm0950oct.nc cy339a.pm0950sep.nc cy339a.pm0951apr.nc cy339a.pm0951aug.nc cy339a.pm0951dec.nc netCDF
+
### Restart files
The restart files can be found in the /scratch/$PROJECT/$USER/archive/<suite-name>/restart
directory, where they are categorised according to model components (similar to the history
folder above).
The atmospheric restart files, which are UM fieldsfiles, are formatted as <suite-name>a.da<year><month><day>_00
.
-
-
-
- For the u-cy339
suite in this example, the atm
directory contains:
-
- ls /scratch/<$PROJECT>/<$USER>/archive/cy339/restart/atm
- cy339a.da09500201_00 cy339a.da09510101_00 cy339.xhist-09500131 cy339.xhist-09501231
-
-
-
-
- For the u-br565
suite in this example, the atm
directory contains:
-
- ls /scratch/<$PROJECT>/<$USER>/archive/br565/restart/atm
- br565a.da09500201_00 br565a.da09510101_00 br565.xhist-09500131 br565.xhist-09501231
-
-
-
-
+
+For the u-cy339
suite in this example, the atm
directory contains:
+
+ ls /scratch/<$PROJECT>/<$USER>/archive/cy339/restart/atm
+ cy339a.da09500201_00 cy339a.da09510101_00 cy339.xhist-09500131 cy339.xhist-09501231
+
+
Files formatted as <suite-name>a.xhist-<year><month><day>
contain metadata information.
+## Port suites from accessdev
+accessdev was the server used for {{ model }} run submission workflow before the update to persistent sessions.
+
+If you have a suite that was running on accessdev, you can run it using persistent sessions by carrying out the following steps:
+
+
+ -
+ Initialisation step
+
+ To set the correct SSH configuration for Cylc, some SSH keys need to be created in the ~/.ssh
directory.
+
+ To create the required SSH keys, run the following command:
+ /g/data/hr22/bin/gadi-cylc-setup-ps -y
+
+ You only need to run this initialisation step once.
+
+
+ -
+ Set host to localhost
+
+ To enable Cylc to submit PBS jobs directly from the persistent session, the suite configuration should have its host
set as localhost
.
+
+ You can manually set all occurrences of host
to localhost
in the suite configuration files.
+
+ Alternatively, you can run the following command in the suite folder:
+ grep -rl --exclude-dir=.svn "host\s*=" . | xargs sed -i 's/\(host\s*=\s*\).*/\1localhost/g'
+
+ -
+ Add gdata/hr22 and gdata/ki32 in the PBS storage directives
+
+ As the persistent sessions workflow uses files in the hr22
and ki32
project folders on Gadi, the respective folders need to be added to the storage
directive in the suite configuration files.
+
+ You can do this manually or run the following command from within the suite directory:
+ grep -rl --exclude-dir=.svn "\-l\s*storage\s*=" . | xargs sed -i '/\-l\s*storage\s*=\s*.*gdata\/hr22.*/! s/\(\-l\s*storage\s*=\s*.*\)/\1+gdata\/hr22/g ; /\-l\s*storage\s*=\s*.*gdata\/ki32.*/! s/\(\-l\s*storage\s*=\s*.*\)/\1+gdata\/ki32/g'
+
+
+
+
+
+ Some suites might not be ported this way.
+
+ If you have a suite that was running on accessdev and, even after following the steps above, the run submission fails, consider getting help on the Hive Forum.
+
+
References
@@ -876,6 +673,9 @@ Files formatted as <suite-name>a.xhist-<year><month><
https://code.metoffice.gov.uk/doc/um/latest/um-training/rose-gui.html
-
- https://opus.nci.org.au/display/DAE/Cylc+7+on+ARE
+ https://opus.nci.org.au/display/DAE/Run+Cylc7+Suites
+
+ -
+ https://opus.nci.org.au/display/Help/Persistent+Sessions
-
\ No newline at end of file
+