From 7811e32c26f6d6ef6aa946b910ab71a73fc358ef Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Fri, 12 Dec 2025 12:29:37 +1100 Subject: [PATCH 01/22] Start general payu docs --- docs/models/run_a_model/payu.md | 406 ++++++++++++++++++++++++++++++++ mkdocs.yml | 3 +- 2 files changed, 408 insertions(+), 1 deletion(-) create mode 100644 docs/models/run_a_model/payu.md diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md new file mode 100644 index 000000000..323fc581b --- /dev/null +++ b/docs/models/run_a_model/payu.md @@ -0,0 +1,406 @@ +[PBS job]: https://opus.nci.org.au/display/Help/4.+PBS+Jobs +[Run a Model]: /models/run_a_model/index.md + +# Run models using payu + +## About + +[_payu_](https://github.com/payu-org/payu) is a workflow manager tool for running numerical models in supercomputing environments. It is an open-source software, distributed under an Apache 2.0 Licence. + +You can find a [full documentation](https://payu.readthedocs.io/en/latest/) for _payu_ online. This page summarises the _payu_ capabilities that are most commonly required to run an ACCESS model's configuration. + +## Prerequisites + +- **NCI account**
+ Before running an ACCESS model, you need to [Set Up your NCI Account](/getting_started/set_up_nci_account). + +- **Join NCI projects**
+ Join the following projects by requesting membership on their respective NCI project pages: + + - [vk83](https://my.nci.org.au/mancini/project/vk83/join) + + For more information on joining specific NCI projects, refer to [How to connect to a project](https://opus.nci.org.au/display/Help/How+to+connect+to+a+project). + +## Payu setup + +_Payu_ on _Gadi_ is available through a dedicated `conda` environment in the _vk83_ project.
+After joining the _vk83_ project, load the `payu` module: + + module use /g/data/vk83/modules + module load payu + +To check that _payu_ is available, run: + + payu --version + + + payu --version + 1.1.3 + + +## Get the model configuration + +All models configurations are hosted on GitHub.
+ +The first step is to choose a configuration from those available and identify the branch name for that configuration, following information on the [Run a Model][Run a Model] page of your chosen model.
+ +To clone a configuration to a location on _Gadi_ and navigate to that directory, run: + + mkdir -p ~/ + cd ~/ + payu clone -b -B + cd + +where: + +- `` is any directory you want to use to organise your experiments for your chosen model. +- `` is the name you want to use to identify your experiment. +- `` is chosen by the user. +- `` and `` are specific to the chosen model configuration and can be found in the [Run a Model][Run a Model] documentation for your chosen model. + +!!! tip + Anyone using a configuration is advised to clone only a single branch (as shown in the example above) and not the entire repository. + +!!! tip + _payu_ uses branches to differentiate between different experiments in the same local git repository.
+ For this reason, it is recommended to always set the cloned branch name (`` in the example above) to something meaningful for the planned experiment.
+ For more information refer to this [payu tutorial](https://forum.access-hive.org.au/t/access-om2-payu-tutorial/1750#select-experiment-12). + +## Directory structure for _payu_-supported model runs + +The general layout of a _payu_-supported model run consists of two main directories: + +- The _control_ directory contains the model configuration and serves as the execution directory for running the model. You created the _control_ directory when you cloned the configuration you want to use. +- The _laboratory_ directory, where all the model components reside. It is typically `/scratch/$PROJECT/$USER/`. + +This separates the small text configuration files from the larger binary outputs and inputs. In this way, the _control_ directory can be in the `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The quotas for `$HOME` are low and strict, which limits what can be stored there, so it is not suitable for larger files. + +The _laboratory_ directory is a shared space for a user's _payu_ experiments using the same model. Inside the _laboratory_ directory there are two areas: + +- `work` → for temporary storage of files needed by the model while it runs. _payu_ creates and removes directories and files in this directory upon successful completion of runs. +- `archive` → for storing the output following each successful run. + +Within each of the above directories, _payu_ automatically creates subdirectories uniquely named according to the experiment being run.
+_Payu_ also creates symbolic links in the _control_ directory pointing to the `archive` and `work` directories. + +This design allows multiple self-resubmitting experiments that share common executables and input data to be run simultaneously. + +!!! warning + Files on the `/scratch` drive, such as the _laboratory_ directory, might get deleted if not accessed for several days and the `/scratch` drive is limited in space. For these reasons, all model runs which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data). + +## Run the configuration + +_payu_ manages the experiment through a [PBS job][PBS job] that it self-submits. + +To run a configuration, execute the following command from within the *control* directory: + + payu run + +This will submit a single job to the queue. Refer to the [Run a Model][Run a Model] page for your chosen model to learn how to set the length of the simulation. + +!!! tip + `payu run` will error out if a non-empty `work` directory for your experiment already exists (from a failed attempt or from running `payu setup`).
+ You can add the `-f` option to `payu run` to let the model run in all cases and delete any existing data under `work`. + +## Run an experiment + +An experiment consists of a series of subsequent runs with each run continuing from where the previous one ended. +To conduct an experiment, use the `-n` option to submit a series of runs until the desired length of the experiment is reached: + + payu run -n + +This will run the configuration `number-of-runs` consecutive times for the configured run length. This way, the *total experiment length* will be `run-length * number-of-runs`. + +For example, to run an experiment for a total of 50 years with a default run length of 5 years, the `number-of-runs` should be set to `10`: + + payu run -n 10 + +## Monitor the experiment + +The `payu run` command prints out the PBS `job-ID` (formatted as `<9-digit-number>.gadi-pbs`), as the last line to the terminal.
+To print out information on the status of a specific job, you can execute the following command: +``` +qstat +``` + + qstat <job-ID> + Job id Name User Time Use S Queue + --------------------- ---------------- ---------------- -------- - ----- + <job-ID>.gadi-pbs <control_directory_name> <$USER> <time> R normal-exec + + +To show the status of all your submitted [PBS jobs][PBS job], you can execute the following command: +``` +qstat +``` + + + qstat + Job id Name User Time Use S Queue + --------------------- ---------------- ---------------- -------- - ----- + <job-ID>.gadi-pbs <job-name> <\$USER> <time> R normal-exec + <job-ID>.gadi-pbs <job-name> <\$USER> <time> R normal-exec + <job-ID>.gadi-pbs <job-name> <\$USER> <time> R normal-exec + + +The default name of your job is the name of the _payu_ _control_ directory.
+This can be changed by altering the `jobname` in the [PBS resources section](#modify-pbs-resources) of the `config.yaml` file. + +_S_ indicates the status of your run, where: + +- _Q_ → Job waiting in the queue to start +- _R_ → Job running +- _E_ → Job ending +- _H_ → Job on hold + +If there are no jobs listed with your `jobname` (or if no job is listed), your run either successfully completed or was terminated due to an error.
+For more information, check [NCI documentation](https://opus.nci.org.au/display/Help/FAQ+1%3A+Why+My+Jobs+are+NOT+Running). + +### Stop a run + +If you want to manually terminate a run, you can do so by executing: +``` +qdel +``` +which kills the specified job without waiting for it to complete. + +!!! tip + If you specified you want the job to resubmit itself several times but want to stop after the completion of the current process, you can create a file called `stop_run` in the _control_ directory.
+ This will prevent _payu_ from submitting another job. + +### Error and output log files + +#### PBS output files {: .no-toc } +When the model completes a run, PBS writes the standard output and error streams to two files inside the _control_ directory: `.o` and `.e`, respectively. + +These files usually contain logs about _payu_ tasks, and give an overview of the resources used by the job.
+To move these files to the `archive` directory, use the following commmand: +``` +payu sweep +``` + +#### Model log files {: .no-toc } + +While the model is running, _payu_ saves the model standard output and error streams in the _control_ directory. Refer to the [Run a Model][Run a Model] page for the model you are using for the list of logging filenames for your model.
+You can examine the contents of these files to check on the status of a run as it progresses (or after a failed run has completed). + +!!! warning + At the end of a successful run these log files are archived to the `archive` directory and will no longer be found in the _control_ directory. If they remain in the _control_ directory after the PBS job for a run has completed, it means the run has failed. + +### Trouble-shooting + +If _payu_ doesn't run correctly for some reason, a good first step is to run the following command from within the _control_ directory: + + payu setup + +This command will: + + - create the _laboratory_ and `work` directories based on the experiment configuration + - generate manifests + - report useful information to the user, such as the location of the _laboratory_ where the `work` and `archive` directories are located + + + payu setup + laboratory path: /scratch/$PROJECT/$USER/access-om2 + binary path: /scratch/$PROJECT/$USER/access-om2/bin + input path: /scratch/$PROJECT/$USER/access-om2/input + work path: /scratch/$PROJECT/$USER/access-om2/work + archive path: /scratch/$PROJECT/$USER/access-om2/archive + Loading input manifest: manifests/input.yaml + Loading restart manifest: manifests/restart.yaml + Loading exe manifest: manifests/exe.yaml + Setting up atmosphere + Setting up ocean + Setting up ice + Setting up access-om2 + Checking exe and input manifests + Updating full hashes for 3 files in manifests/exe.yaml + Creating restart manifest + Writing manifests/restart.yaml + Writing manifests/exe.yaml + + +This can help to isolate issues such as permissions problems accessing files and directories, missing files or malformed/incorrect paths. + +## Outputs organisation + +At the end of a successful model run, output files, restart files and log files are moved from the `work` directory to the `archive` directory.
+Symbolic links to these directories are also provided in the _control_ directory for convenience. + +If a model run is unsuccessful, the `work` directory is left untouched to facilitate the identification of the cause of the model failure. + +Outputs and restarts are stored in subfolders within the `archive` directory, subdivided for each run of the model.
+Output and restart folders are called `outputXXX` and `restartXXX`, respectively, where _XXX_ is the run number starting from `000`. + +Model components are separated into subdirectories within the output and restart directories. + +## Edit a _payu_ configuration + +The modifications discussed in this section can change how the model and its components are configured, or the way the model is run by _payu_. + +The `config.yaml` file located in the _control_ directory is the _payu_ configuration file, which controls the general model configuration. It contains several parts, some of which it is more likely will need modification, and others which are rarely changed without having a deep understanding of how the model is configured. + +To find out more about configuration settings for the `config.yaml` file, refer to [how to configure your experiment with payu](https://payu.readthedocs.io/en/latest/config.html). + +### Change run length + +_Gadi_ imposes a maximum wall time for submitted jobs. This means most experiments need several jobs to simulate the total time required.
+As seen previously in [Run an experiment](#run-an-experiment), _payu_ handles this by splitting a simulation in sections and automatically running each section one after the other in separate jobs. As such the total run length is the product of: + +- the run length of each individual submission. This is set differently depending on the model, so refer to the [Run a Model][Run a Model] page for details. It is important to set this run length so that the simulation finishes within the maximum wall time for the job. +- the number of automatic resubmissions by _payu_. This is set through the command line option `-n`. It defaults to 1 and there is no limit on this number. + +### Start the run from a specific restart file {: id='specific-restart'} + +To configure the experiment to start from specific restart files, add a [`restart:` entry](https://payu.readthedocs.io/en/latest/config.html#miscellaneous) to the `config.yaml` file, specifying the path to a folder containing existing restart files. +Or, to do this automatically when setting up an experiment, add the `-r` flag to the `payu clone` command. + +!!! warning + In some cases, if the supplied restart file is not fully compatible with the model configuration, experiments using a custom restart file may require additional manual adjustments to run correctly. + +!!! warning + The restart option used here will only be applied if there is no restart directory in archive, and so does not have to be removed for subsequent submissions. See [Payu docs](https://payu.readthedocs.io/en/stable/config.html#miscellaneous) for further details. + +### Modify PBS resources + +If the model has been altered and needs more time or memory to complete, or needs to be submitted under a different NCI project, you will need to modify the following options in the `config.yaml`: + +```yaml +# If submitting to a different project to your default, uncomment line below +# and replace PROJECT_CODE with appropriate code. This may require setting shortpath +# project: PROJECT_CODE + +# Force payu to always find, and save, files in this scratch project directory +# shortpath: /scratch/PROJECT_CODE + +queue: normal +walltime: 3:00:00 +mem: 1000GB +jobname: 1deg_jra55_ryf +``` + +These lines can be edited to change the [PBS directives](https://opus.nci.org.au/display/Help/PBS+Directives+Explained) for the [PBS job][PBS job]. + +For example, to run under the `ol01` project (COSIMA Working Group), uncomment the line beginning with `# project` by deleting the `#` symbol and replace `PROJECT_CODE` with `ol01`: + +```yaml +project: ol01 +``` + +For model configurations and output to be saved to a `/scratch` storage allocation other than `project` (or your default if `project` is not set) then also set `shortpath` to the desired path. + +!!! warning + If changing the project providing the compute resources during an experiment, set the `shortpath` field so that it's the same for all runs of an experiment. + Doing this will make sure the same `/scratch` location is used for the _laboratory_, regardless of which project is used to run the experiment. + +### Syncing output data to long-term storage + +The _laboratory_ directory is typically under the `/scratch` storage on _Gadi_, where [files are regularly deleted once they have been unaccessed for a period of time](https://opus.nci.org.au/pages/viewpage.action?pageId=156434436). For this reason climate model outputs need to be moved to a location with longer term storage.
+On _Gadi_, this is typically in a folder under a project code on `/g/data`. + +_Payu_ has built-in support to sync outputs, restarts and a copy of the _control_ directory git history to another location.
+This feature is controlled by the following section in the `config.yaml` file: +```yaml +# Sync options for automatically copying data from ephemeral scratch space to +# longer term storage +sync: + enable: False # set path below and change to true + restart: True + path: none # Set to location on /g/data or a remote server and path (rsync syntax) + exclude: + - '*.nc.*' + - 'iceh.????-??-??.nc' +``` +To enable syncing, change `enable` to `True`, and set `path` to a location on `/g/data`, where _payu_ will copy output and restart folders. A sensible `path` could be: `/g/data/$PROJECT/$USER//experiment_name/`. + +### Pruning model restarts + +By default, restart files are created at the end of each run, allowing subsequent simulations to resume from a previously saved model state. However, restart files can occupy significant disk space, and keeping all of them throughout an entire experiment is often not necessary. + +If disk space is limited, consider using _payu_'s restart files pruning feature, controlled by the `restart_freq` field of the `config.yaml`. +By default, every `restart_freq`, _payu_ removes intermediate restart files, keeping only: +- the two most recent restarts +- restarts corresponding to the `restart_freq` interval +For example, a `restart_freq` set to `1YS` would keep the restart files at the end of each model year, whereas `restart_freq` set to `5YS` would keep those at the end of every fifth model year. +This approach helps reduce disk space while maintaining useful restart points across long experiments, especially useful in case of unexpected crashes. + +The `restart_freq` field in the `config.yaml` can either be a number (in which case every _nth_ restart file is retained), or one of the following pandas-style datetime frequencies: + +- `YS` → start of the year +- `MS` → start of the month +- `D` → day +- `H` → hour +- `T` → minute +- `S` → second + +For example, to preserve the ability to restart the model every 50 model-years, set: +```yaml +restart_freq: '50YS' +``` + +The most recent sequential restarts are retained, and only deleted after a permanently archived restart file has been produced. + +For more information, check [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/latest/config.html#model). + +### Other configuration options + +!!! warning + The following sections in the `config.yaml` file control configuration options that are rarely modified, and often require a deeper understanding of how the model is structured to be safely changed. + +#### Model configuration {: .no-toc } + +This section tells _payu_ which driver to use for the main `model` configuration and the location of all `input` files that are common to all its model components. + +```yaml +name: common +model: access-om2 +input: /g/data/ik11/inputs/access-om2/input_20201102/common_1deg_jra55 +``` + +The `name` field is not actually used for the configuration run, so it can be safely ignored. + +#### Submodels {: .no-toc } + +Coupled models deploy multiple submodels. a.k.a. the model components. + +This section of the _payu_ configuration file specifies the submodels and configuration options required to execute the model correctly. + +Each submodel contains additional configuration options that are read in when the submodel is running. These options are specified in the subfolder of the _control_ directory whose name matches the submodel's `name` (e.g., configuration options for the `ocean` submodel are in the `ocean` sub-directory). + +Refer to the [Run a Model][Run a Model] page of a chosen model for details of the submodels' configurations used by this model. + +#### Runlog {: .no-toc } + +```yaml +runlog: true +``` +When running a new configuration, _payu_ automatically commits changes with `git` if `runlog` is set to `true`. + +!!! warning + This should not be changed as it is an essential part of the provenance of an experiment.
+ _payu_ updates the manifest files for every run, and relies on `runlog` to save this information in the `git` history, so there is a record of all inputs, restarts, and executables used in an experiment. + +#### Userscripts {: .no-toc } + +```yaml +userscripts: + error: tools/resub.sh + run: rm -f resubmit.count + sync: /g/data/vk83/apps/om2-scripts/concatenate_ice/concat_ice_daily.sh +``` + +A dictionary to run scripts or subcommands at various stages of a _payu_ submission: + +- `error` gets called if the model does not run correctly and returns an error code. +- `run` gets called after the model successful execution, but prior to model output archive. +- `sync` gets called at the start of the sync pbs job. For more information refer to [Syncing output data](#syncing-output-data). + +For more information about specific `userscripts` fields, check the relevant section of [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/latest/config.html#postprocessing). + +### Edit a model components' configuration + +Each of the model components contains additional configuration options that are read in when the model component is running.
+These options are typically useful to modify the physics used in the model, the input data, or the model variables saved in the output files. + +These configuration options are specified in files located inside a subfolder of the _control_ directory, named according to the submodel's `name` specified in the `config.yaml` `submodels` section (e.g., configuration options for the _ocean_ component are in the `ocean` sub-directory).
+To modify these options please refer to the User Guide of the respective model component. diff --git a/mkdocs.yml b/mkdocs.yml index eb07b43cf..2359f84b9 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -125,10 +125,11 @@ nav: - models/run_a_model/index.md - Run models using Rose/Cylc: models/run_a_model/rose_cylc.md - Run ACCESS-CM2: models/run_a_model/run_access-cm2.md + - Run ACCESS-rAM3: models/run_a_model/run_access-ram3.md + - Run models using Payu: models/run_a_model/payu.md - Run ACCESS-ESM: models/run_a_model/run_access-esm.md - Run ACCESS-OM2: models/run_a_model/run_access-om2.md - Run ACCESS-OM3: models/run_a_model/run_access-om3.md - - Run ACCESS-rAM3: models/run_a_model/run_access-ram3.md - Build a Model: - models/build_a_model/index.md - Modify and build an ACCESS model's source code: models/build_a_model/build_source_code.md From 479761c4fde2f7d32434263ca2364a1ac40150cc Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Wed, 17 Dec 2025 16:49:00 +1100 Subject: [PATCH 02/22] Changes from reading the rendered version --- docs/models/run_a_model/payu.md | 49 ++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index 323fc581b..3a11fcd23 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -40,30 +40,39 @@ To check that _payu_ is available, run: ## Get the model configuration -All models configurations are hosted on GitHub.
+All model configurations are hosted on GitHub.
The first step is to choose a configuration from those available and identify the branch name for that configuration, following information on the [Run a Model][Run a Model] page of your chosen model.
-To clone a configuration to a location on _Gadi_ and navigate to that directory, run: - - mkdir -p ~/ - cd ~/ - payu clone -b -B - cd +Once you have chosen the configuration, you need to: + +- identify the `` and `` name the configuration is stored under on GitHub. +- decide on a directory on Gadi to store your _payu_ configurations, `` +- decide on a name for your experiment, `` +- decide on a directory name to store this specific configuration, `` -where: +Then, you can get the chosen configuration using `payu clone`. -- `` is any directory you want to use to organise your experiments for your chosen model. -- `` is the name you want to use to identify your experiment. -- `` is chosen by the user. -- `` and `` are specific to the chosen model configuration and can be found in the [Run a Model][Run a Model] documentation for your chosen model. +For example, say you want to do a sensitivity experiment to the diffusivity in ACCESS-OM2 using the configuration `release-1deg_jra55_ryf`. You decide to: + +- base your experiment off the branch, `release-1deg_jra55_ryf`, from the repository, https://github.com/ACCESS-NRI/access-om2-configs +- store the configurations under `~/access-om2/` +- name your experiment `diff_test1-1deg_jra55_ryf` +- store the configuration under `diff_exps-1deg_jra55_ryf` + +To get the configuration as chosen, run: + + mkdir -p ~/access-om2/ + cd ~/access-om2/ + payu clone -b diff_test1-1deg_jra55_ryf -B release-1deg_jra55_ryf https://github.com/ACCESS-NRI/access-om2-configs diff_exps-1deg_jra55_ryf + cd diff_exps-1deg_jra55_ryf !!! tip Anyone using a configuration is advised to clone only a single branch (as shown in the example above) and not the entire repository. !!! tip _payu_ uses branches to differentiate between different experiments in the same local git repository.
- For this reason, it is recommended to always set the cloned branch name (`` in the example above) to something meaningful for the planned experiment.
+ For this reason, it is recommended to always set the cloned branch name, `` (`diff_test1-1deg_jra55_ryf` in the example above), to something meaningful for the planned experiment.
For more information refer to this [payu tutorial](https://forum.access-hive.org.au/t/access-om2-payu-tutorial/1750#select-experiment-12). ## Directory structure for _payu_-supported model runs @@ -71,7 +80,7 @@ where: The general layout of a _payu_-supported model run consists of two main directories: - The _control_ directory contains the model configuration and serves as the execution directory for running the model. You created the _control_ directory when you cloned the configuration you want to use. -- The _laboratory_ directory, where all the model components reside. It is typically `/scratch/$PROJECT/$USER/`. +- The _laboratory_ directory, where all the model components reside. It is typically `/scratch/$PROJECT/$USER/` and is created by _payu_. This separates the small text configuration files from the larger binary outputs and inputs. In this way, the _control_ directory can be in the `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The quotas for `$HOME` are low and strict, which limits what can be stored there, so it is not suitable for larger files. @@ -318,9 +327,11 @@ To enable syncing, change `enable` to `True`, and set `path` to a location on `/ By default, restart files are created at the end of each run, allowing subsequent simulations to resume from a previously saved model state. However, restart files can occupy significant disk space, and keeping all of them throughout an entire experiment is often not necessary. If disk space is limited, consider using _payu_'s restart files pruning feature, controlled by the `restart_freq` field of the `config.yaml`. -By default, every `restart_freq`, _payu_ removes intermediate restart files, keeping only: +By default, every `restart_freq`, _payu_ removes intermediate restart files, keeping only: + - the two most recent restarts - restarts corresponding to the `restart_freq` interval + For example, a `restart_freq` set to `1YS` would keep the restart files at the end of each model year, whereas `restart_freq` set to `5YS` would keep those at the end of every fifth model year. This approach helps reduce disk space while maintaining useful restart points across long experiments, especially useful in case of unexpected crashes. @@ -361,7 +372,7 @@ The `name` field is not actually used for the configuration run, so it can be sa #### Submodels {: .no-toc } -Coupled models deploy multiple submodels. a.k.a. the model components. +Coupled models deploy multiple submodels, a.k.a. the model components. This section of the _payu_ configuration file specifies the submodels and configuration options required to execute the model correctly. @@ -374,11 +385,11 @@ Refer to the [Run a Model][Run a Model] page of a chosen model for details of th ```yaml runlog: true ``` -When running a new configuration, _payu_ automatically commits changes with `git` if `runlog` is set to `true`. +When running a new configuration, _payu_ automatically commits changes with _git_ if `runlog` is set to `true`. !!! warning This should not be changed as it is an essential part of the provenance of an experiment.
- _payu_ updates the manifest files for every run, and relies on `runlog` to save this information in the `git` history, so there is a record of all inputs, restarts, and executables used in an experiment. + _payu_ updates the manifest files for every run, and relies on `runlog` to save this information in the _git_ history, so there is a record of all inputs, restarts, and executables used in an experiment. #### Userscripts {: .no-toc } @@ -397,7 +408,7 @@ A dictionary to run scripts or subcommands at various stages of a _payu_ submiss For more information about specific `userscripts` fields, check the relevant section of [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/latest/config.html#postprocessing). -### Edit a model components' configuration +## Edit a model components' configuration Each of the model components contains additional configuration options that are read in when the model component is running.
These options are typically useful to modify the physics used in the model, the input data, or the model variables saved in the output files. From f6dd91ec888e9914691203202ff7f79ed5c23c25 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Mon, 5 Jan 2026 14:07:57 +1100 Subject: [PATCH 03/22] Changes following comments by @anton-seaice --- docs/models/run_a_model/payu.md | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index 3a11fcd23..c9d531f8d 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -7,7 +7,17 @@ [_payu_](https://github.com/payu-org/payu) is a workflow manager tool for running numerical models in supercomputing environments. It is an open-source software, distributed under an Apache 2.0 Licence. -You can find a [full documentation](https://payu.readthedocs.io/en/latest/) for _payu_ online. This page summarises the _payu_ capabilities that are most commonly required to run an ACCESS model's configuration. +This page summarises the _payu_ capabilities that are most commonly required to run an ACCESS model's configuration. This page presents generic information on: + +- the setup of _payu_ +- running _payu_-based ACCESS model's configurations +- monitoring a _payu_-based experiment +- modifying a _payu_-based configurations for the most commonly customised aspects of the configurations +- the data organisation for a _payu_-based experiment + +This page is to be used in conjunction with the Run a Model page for the chosen configuration. The Run a Model page will give information specific to that model (e.g. additional requirements or configuration names and locations) as well as any information on any configurations customisation that is particular to that model. + +There is also [technical documentation](https://payu.readthedocs.io/en/latest/) for how to configure _payu_. ## Prerequisites @@ -33,11 +43,6 @@ To check that _payu_ is available, run: payu --version - - payu --version - 1.1.3 - - ## Get the model configuration All model configurations are hosted on GitHub.
@@ -210,11 +215,11 @@ This command will: payu setup - laboratory path: /scratch/$PROJECT/$USER/access-om2 - binary path: /scratch/$PROJECT/$USER/access-om2/bin - input path: /scratch/$PROJECT/$USER/access-om2/input - work path: /scratch/$PROJECT/$USER/access-om2/work - archive path: /scratch/$PROJECT/$USER/access-om2/archive + laboratory path: /scratch/\$PROJECT/\$USER/access-om2 + binary path: /scratch/\$PROJECT/\$USER/access-om2/bin + input path: /scratch/\$PROJECT/\$USER/access-om2/input + work path: /scratch/\$PROJECT/\$USER/access-om2/work + archive path: /scratch/\$PROJECT/\$USER/access-om2/archive Loading input manifest: manifests/input.yaml Loading restart manifest: manifests/restart.yaml Loading exe manifest: manifests/exe.yaml From 2575fa057ab9b0e4957767f5a7b0863eda98a3b3 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Mon, 19 Jan 2026 14:14:43 +1100 Subject: [PATCH 04/22] (#978) - Minor clarifications --- docs/models/run_a_model/payu.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index c9d531f8d..5345ad3c2 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -7,15 +7,15 @@ [_payu_](https://github.com/payu-org/payu) is a workflow manager tool for running numerical models in supercomputing environments. It is an open-source software, distributed under an Apache 2.0 Licence. -This page summarises the _payu_ capabilities that are most commonly required to run an ACCESS model's configuration. This page presents generic information on: +This page summarises the _payu_ capabilities that are most commonly required to run an ACCESS model's configuration on the _Gadi_ supercomputer. This page presents generic information on: - the setup of _payu_ - running _payu_-based ACCESS model's configurations -- monitoring a _payu_-based experiment +- monitoring a _payu_-based experiment on _Gadi_ - modifying a _payu_-based configurations for the most commonly customised aspects of the configurations - the data organisation for a _payu_-based experiment -This page is to be used in conjunction with the Run a Model page for the chosen configuration. The Run a Model page will give information specific to that model (e.g. additional requirements or configuration names and locations) as well as any information on any configurations customisation that is particular to that model. +This page is to be used in conjunction with the Run a Model page for the chosen configuration. The Run a Model page will give information specific to that model (for example, additional requirements or configuration names and locations) as well as any information on any configurations customisation that is particular to that model. There is also [technical documentation](https://payu.readthedocs.io/en/latest/) for how to configure _payu_. @@ -85,7 +85,7 @@ To get the configuration as chosen, run: The general layout of a _payu_-supported model run consists of two main directories: - The _control_ directory contains the model configuration and serves as the execution directory for running the model. You created the _control_ directory when you cloned the configuration you want to use. -- The _laboratory_ directory, where all the model components reside. It is typically `/scratch/$PROJECT/$USER/` and is created by _payu_. +- The _laboratory_ directory, where all the model components reside. It is typically `/scratch/$PROJECT/$USER/` and is created by _payu_. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your default project and your username respectively. This separates the small text configuration files from the larger binary outputs and inputs. In this way, the _control_ directory can be in the `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The quotas for `$HOME` are low and strict, which limits what can be stored there, so it is not suitable for larger files. From 7774dfa5f25040a467ac171a68afd7a0508f95fa Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Mon, 19 Jan 2026 15:57:02 +1100 Subject: [PATCH 05/22] (#978) - Incorporate Jo's feedback --- docs/models/run_a_model/payu.md | 47 ++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index 5345ad3c2..110a88238 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -52,18 +52,18 @@ The first step is to choose a configuration from those available and identify th Once you have chosen the configuration, you need to: - identify the `` and `` name the configuration is stored under on GitHub. -- decide on a directory on Gadi to store your _payu_ configurations, `` +- decide on a directory on Gadi to store your _payu_ configurations, `` (this directory must exist before running _payu_) - decide on a name for your experiment, `` -- decide on a directory name to store this specific configuration, `` +- decide on a directory name to store this specific configuration, `` (created by _payu_) Then, you can get the chosen configuration using `payu clone`. For example, say you want to do a sensitivity experiment to the diffusivity in ACCESS-OM2 using the configuration `release-1deg_jra55_ryf`. You decide to: -- base your experiment off the branch, `release-1deg_jra55_ryf`, from the repository, https://github.com/ACCESS-NRI/access-om2-configs -- store the configurations under `~/access-om2/` -- name your experiment `diff_test1-1deg_jra55_ryf` -- store the configuration under `diff_exps-1deg_jra55_ryf` +- `` and ``: base your experiment off the branch, `release-1deg_jra55_ryf`, from the repository, https://github.com/ACCESS-NRI/access-om2-configs +- ``: store the configurations under `~/access-om2/` +- ``: name your experiment `diff_test1-1deg_jra55_ryf` +- ``: store the configuration under `diff_exps-1deg_jra55_ryf` To get the configuration as chosen, run: @@ -102,6 +102,9 @@ This design allows multiple self-resubmitting experiments that share common exec !!! warning Files on the `/scratch` drive, such as the _laboratory_ directory, might get deleted if not accessed for several days and the `/scratch` drive is limited in space. For these reasons, all model runs which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data). +!!! info + `payu` will create all the directories it needs. They do not need to be created beforehand. + ## Run the configuration _payu_ manages the experiment through a [PBS job][PBS job] that it self-submits. @@ -131,7 +134,14 @@ For example, to run an experiment for a total of 50 years with a default run len ## Monitor the experiment -The `payu run` command prints out the PBS `job-ID` (formatted as `<9-digit-number>.gadi-pbs`), as the last line to the terminal.
+_payu_ provides the `payu status` command for monitoring jobs (see [documentation](https://payu.readthedocs.io/en/1.2.0/usage.html#monitoring-payu-jobs)). This command can return the scheduler job ID, and the stage the payu run is currently at. When the job is complete, it displays the exit statuses from the model and overall payu run, and points to the PBS log files. + +!!! note + `payu status` is available in _payu_ versions 1.2.0 and later. This command does not yet support monitoring post-processing jobs from the configuration, e.g. `payu collate` and `payu sync`. + + +You can also use the PBS `job-ID` to monitor the job using the PBS commands available from NCI. + To print out information on the status of a specific job, you can execute the following command: ``` qstat @@ -261,7 +271,7 @@ To find out more about configuration settings for the `config.yaml` file, refer _Gadi_ imposes a maximum wall time for submitted jobs. This means most experiments need several jobs to simulate the total time required.
As seen previously in [Run an experiment](#run-an-experiment), _payu_ handles this by splitting a simulation in sections and automatically running each section one after the other in separate jobs. As such the total run length is the product of: -- the run length of each individual submission. This is set differently depending on the model, so refer to the [Run a Model][Run a Model] page for details. It is important to set this run length so that the simulation finishes within the maximum wall time for the job. +- the run length of each individual submission. This is set differently depending on the model, so refer to the [Run a Model][Run a Model] page for details. It is important to set this run length so that the simulation finishes within the maximum wall time for the job (set with the `walltime` entry in the `config.yaml` file) and for the queue (refer to [NCI's documentation](https://opus.nci.org.au/spaces/Help/pages/236881198/Queue+Limits...)). - the number of automatic resubmissions by _payu_. This is set through the command line option `-n`. It defaults to 1 and there is no limit on this number. ### Start the run from a specific restart file {: id='specific-restart'} @@ -356,6 +366,23 @@ restart_freq: '50YS' The most recent sequential restarts are retained, and only deleted after a permanently archived restart file has been produced. +!!! note + If `restart_freq` is not a multiplier of the model's restart frequency, _payu_ will keep the first restart passed `restart_freq`. For example, a model is set to write restart files every 3 years and produces restarts on the following dates: + + - restart000: 01/01/2000 + - restart001: 01/01/2003 + - restart002: 01/01/2006 + - restart003: 01/01/2009 + - restart004: 01/01/2012 + - restart005: 01/01/2015 + + If `restart_freq` is set to `5YS` (5 years), _payu_ will keep: + + - restart000: 01/01/2000 + - restart002: 01/01/2006 (first restart >= 01/01/2005) + - restart004: 01/01/2012 (first restart >= 01/01/2011) + - restart005: 01/01/2015 (keeps immediate restarts < 01/01/2017) + For more information, check [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/latest/config.html#model). ### Other configuration options @@ -373,13 +400,13 @@ model: access-om2 input: /g/data/ik11/inputs/access-om2/input_20201102/common_1deg_jra55 ``` -The `name` field is not actually used for the configuration run, so it can be safely ignored. +The `name` field, for the model section, is not actually used for the configuration run, so it can be safely ignored. The `name` field is used for submodels (see below). #### Submodels {: .no-toc } Coupled models deploy multiple submodels, a.k.a. the model components. -This section of the _payu_ configuration file specifies the submodels and configuration options required to execute the model correctly. +This section of the _payu_ configuration file specifies the submodels, the configuration options required to execute the model correctly and the location of all inputs required for this submodel. Each submodel contains additional configuration options that are read in when the submodel is running. These options are specified in the subfolder of the _control_ directory whose name matches the submodel's `name` (e.g., configuration options for the `ocean` submodel are in the `ocean` sub-directory). From b0a93f1e862bcd9a5c6f26bebf60efea4475617f Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Mon, 19 Jan 2026 16:10:16 +1100 Subject: [PATCH 06/22] (#978) - Formatting. --- docs/models/run_a_model/payu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index 110a88238..b6657e0ab 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -137,7 +137,7 @@ For example, to run an experiment for a total of 50 years with a default run len _payu_ provides the `payu status` command for monitoring jobs (see [documentation](https://payu.readthedocs.io/en/1.2.0/usage.html#monitoring-payu-jobs)). This command can return the scheduler job ID, and the stage the payu run is currently at. When the job is complete, it displays the exit statuses from the model and overall payu run, and points to the PBS log files. !!! note - `payu status` is available in _payu_ versions 1.2.0 and later. This command does not yet support monitoring post-processing jobs from the configuration, e.g. `payu collate` and `payu sync`. + `payu status` is available in _payu_ versions 1.2.0 and later. This command does not yet support monitoring post-processing jobs from the configuration, e.g. `payu collate` and `payu sync`. You can also use the PBS `job-ID` to monitor the job using the PBS commands available from NCI. From 68f3b23c5ecdd970c8853921941e31b5f0595130 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Tue, 20 Jan 2026 15:53:13 +1100 Subject: [PATCH 07/22] (#978) - Additions from the run ESM1.5 page. --- docs/models/run_a_model/index.md | 27 ++++++++++------ docs/models/run_a_model/payu.md | 54 +++++++++++++++++++++++++++++--- 2 files changed, 68 insertions(+), 13 deletions(-) diff --git a/docs/models/run_a_model/index.md b/docs/models/run_a_model/index.md index deb6f9bc0..0c25627be 100644 --- a/docs/models/run_a_model/index.md +++ b/docs/models/run_a_model/index.md @@ -22,6 +22,24 @@ If you are unsure which ACCESS model is the best fit for your application, you c Run ACCESS-CM + + +
+ ACCESS-rAM +
+
+ Run ACCESS-rAM3 +
+
+ + +
+ Run models using Payu +
+
+ Run models using Payu +
+
@@ -49,13 +67,4 @@ If you are unsure which ACCESS model is the best fit for your application, you c Run ACCESS-OM3
- - -
- ACCESS-rAM -
-
- Run ACCESS-rAM3 -
-
diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index b6657e0ab..2aafc36c9 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -268,11 +268,41 @@ To find out more about configuration settings for the `config.yaml` file, refer ### Change run length -_Gadi_ imposes a maximum wall time for submitted jobs. This means most experiments need several jobs to simulate the total time required.
-As seen previously in [Run an experiment](#run-an-experiment), _payu_ handles this by splitting a simulation in sections and automatically running each section one after the other in separate jobs. As such the total run length is the product of: +One of the most common changes is to adjust the duration of the model run.
With _payu_, simulations are split into smaller _run lengths_, each with the duration specified by the `runtime` settings in the `config.yaml` file: + +```yml + runtime: + years: 1 + months: 0 + days: 0 +``` +At the end of each run length, each model component saves its state into a _restart file_, allowing the simulation to be continued in subsequent runs. + +#### Understand _runtime_, _runspersub_, and _-n_ parameters {: id="multiple-runs"} + +It is possible to have more than one model run per queue submit. With the correct use of [`runtime`](#runtime), `runspersub`, `-n` and `walltime` parameters, you can have full control of your experiment.
+ +- `runtime` defines the _run length_. +- `runspersub` defines the maximum number of runs for every [PBS job] submission. +- `-n` sets the number of runs to be performed. +- `walltime` defines the maximum time of every [PBS job] submission. + +Now some practical examples: + +- **Run 20 years of simulation with resubmission every 5 years**
+ To have a _total experiment length_ of 20 years with a 5-year resubmission cycle, leave [`runtime`](#runtime) as the default value of `1 year`, set `runspersub` to `5` and increase `walltime` to allow for 5 years of simulation within a PBS job. Then, run the configuration with `-n` set to `20`: + ``` + payu run -f -n 20 + ``` + This will submit subsequent jobs for the following years: 1 to 5, 6 to 10, 11 to 15, and 16 to 20, which is a total of 4 PBS jobs. + +- **Run 7 years of simulation with resubmission every 3 years**
+ To have a _total experiment length_ of 7 years with a 3-year resubmission cycle, leave [`runtime`](#runtime) as the default value of `1 year`, set `runspersub` to `3` and increase `walltime` to allow for 3 years of simulation within a PBS job. Then, run the configuration with `-n` set to `7`: + ``` + payu run -f -n 7 + ``` + This will submit subsequent jobs for the following years: 1 to 3, 4 to 6, and 7, which is a total of 3 PBS jobs. -- the run length of each individual submission. This is set differently depending on the model, so refer to the [Run a Model][Run a Model] page for details. It is important to set this run length so that the simulation finishes within the maximum wall time for the job (set with the `walltime` entry in the `config.yaml` file) and for the queue (refer to [NCI's documentation](https://opus.nci.org.au/spaces/Help/pages/236881198/Queue+Limits...)). -- the number of automatic resubmissions by _payu_. This is set through the command line option `-n`. It defaults to 1 and there is no limit on this number. ### Start the run from a specific restart file {: id='specific-restart'} @@ -440,6 +470,22 @@ A dictionary to run scripts or subcommands at various stages of a _payu_ submiss For more information about specific `userscripts` fields, check the relevant section of [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/latest/config.html#postprocessing). +#### Postscripts {: .no-toc } +Postprocessing scripts that run after _payu_ has completed all steps of each run (for example, with `payu run -n 10`, the postscript will run 10 times). Scripts that might alter the output directory, for example, can be run as postscripts. These run in PBS jobs separate from the main model simulation. + +```yaml +postscript: -v PAYU_CURRENT_OUTPUT_DIR,PROJECT -lstorage=${PBS_NCI_STORAGE} ./scripts/NetCDF-conversion/UM_conversion_job.sh +``` + +#### Miscellaneous {: .no-toc } + +The following configuration settings should never require changing: + +```yaml +stacksize: unlimited +qsub_flags: -W umask=027 +``` + ## Edit a model components' configuration Each of the model components contains additional configuration options that are read in when the model component is running.
From 70a3daf1876fd0191eb6155a3ad78f7111556373 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Tue, 20 Jan 2026 17:20:17 +1100 Subject: [PATCH 08/22] (#978) - try and improve layout on run a model index page. --- docs/models/run_a_model/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/models/run_a_model/index.md b/docs/models/run_a_model/index.md index 0c25627be..2e5c75faa 100644 --- a/docs/models/run_a_model/index.md +++ b/docs/models/run_a_model/index.md @@ -31,6 +31,9 @@ If you are unsure which ACCESS model is the best fit for your application, you c Run ACCESS-rAM3 + + +
From b1e269dbaf42b30d4e1a807a795b4ebcdc7cf3fb Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Tue, 17 Feb 2026 22:54:11 +1100 Subject: [PATCH 09/22] (#560) - Redesign after review. --- docs/assets/payu_directory_structure.png | Bin 0 -> 32295 bytes docs/models/run_a_model/payu.md | 195 ++++++++++------------- 2 files changed, 88 insertions(+), 107 deletions(-) create mode 100644 docs/assets/payu_directory_structure.png diff --git a/docs/assets/payu_directory_structure.png b/docs/assets/payu_directory_structure.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a8efe8b92d898886d52dd1877a2f48d047842d GIT binary patch literal 32295 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 tU^MlfC$Pbde~#d8=V;~TZs7>~mu` and is created by _payu_. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your default project and your username respectively. + +This layout separates the small text configuration files in the _control_ directory, from the larger binary outputs and inputs in the _laboratory_. In this way, the _control_ directory can be in the `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The quotas for `$HOME` are low and strict, which limits what can be stored there, so it is not suitable for larger files. + +Inside the _laboratory_ directory there are two areas: + +- `work` → for temporary storage of files needed by the model while it runs. _payu_ creates and removes directories and files in this directory upon successful completion of runs. It is left untouched in case of error to facilitate the identification of the cause of the model failure +- `archive` → for storing the output following each successful run. The output, log and restart files are automatically transferred from `work` to `archive` upon successful completion of runs. + +Within each of the `work` and `archive` directories, _payu_ automatically creates a unique subdirectory for each experiment. Outputs and restarts are stored in subfolders within the `archive` directory, subdivided for each run of the model. Output and restart folders are called `outputXXX` and `restartXXX`, respectively, where _XXX_ is the run number starting from `000`. Model components are separated into subdirectories within the output and restart directories. + +The `archive` and `work` directories for an experiment are most easily accessed through the symbolic links created in the _control_ directory. + +This design allows multiple self-resubmitting experiments that share common executables and input data to be run simultaneously. + +!!! warning + Files on the `/scratch` drive, such as the _laboratory_ directory, might get deleted if not accessed for several days and the `/scratch` drive is limited in space. For these reasons, all model runs which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data). + +!!! info + `payu` will create all the directories it needs. They do not need to be created beforehand. -There is also [technical documentation](https://payu.readthedocs.io/en/latest/) for how to configure _payu_. ## Prerequisites @@ -31,6 +83,9 @@ There is also [technical documentation](https://payu.readthedocs.io/en/latest/) For more information on joining specific NCI projects, refer to [How to connect to a project](https://opus.nci.org.au/display/Help/How+to+connect+to+a+project). + !!! warning + Different model configurations will likely require you to join other projects in addition to those listed here. Please refer to the [Run a Model][Run a Model] page of your chosen configuration for details. + ## Payu setup _Payu_ on _Gadi_ is available through a dedicated `conda` environment in the _vk83_ project.
@@ -42,74 +97,46 @@ After joining the _vk83_ project, load the `payu` module: To check that _payu_ is available, run: payu --version - -## Get the model configuration -All model configurations are hosted on GitHub.
+--- + +## Run an experiment -The first step is to choose a configuration from those available and identify the branch name for that configuration, following information on the [Run a Model][Run a Model] page of your chosen model.
+### Get the model configuration -Once you have chosen the configuration, you need to: +All model configurations are hosted in a git repository on GitHub, and each configuration is stored as a separate branch of that repository.
-- identify the `` and `` name the configuration is stored under on GitHub. -- decide on a directory on Gadi to store your _payu_ configurations, `` (this directory must exist before running _payu_) -- decide on a name for your experiment, `` -- decide on a directory name to store this specific configuration, `` (created by _payu_) +To get a local copy of a configuration, you need to: + +- identify the `` and `` name the configuration is stored under on GitHub. See the information on the [Run a Model][Run a Model] page of your chosen model for this step. +- decide where on Gadi to store all your _payu_ experiments, ``, typically a folder under $HOME. This directory must exist before running _payu_. +- decide on a name for your experiment, ``. It is recommended to choose a descriptive name. +- decide on a directory name to store the experiment, `` (created by _payu_). The `control` directory is a git repository. Experiments are saved as branches in this repository, making it possible to use the same `control` directory for several experiments. For this reason, we recommend to always set the ``. For more information refer to this [payu tutorial](https://forum.access-hive.org.au/t/access-om2-payu-tutorial/1750#select-experiment-12). Then, you can get the chosen configuration using `payu clone`. For example, say you want to do a sensitivity experiment to the diffusivity in ACCESS-OM2 using the configuration `release-1deg_jra55_ryf`. You decide to: -- `` and ``: base your experiment off the branch, `release-1deg_jra55_ryf`, from the repository, https://github.com/ACCESS-NRI/access-om2-configs +- `` and ``: base your experiment off the branch, `release-1deg_jra55_ryf`, from the repository, `https://github.com/ACCESS-NRI/access-om2-configs` - ``: store the configurations under `~/access-om2/` -- ``: name your experiment `diff_test1-1deg_jra55_ryf` -- ``: store the configuration under `diff_exps-1deg_jra55_ryf` +- ``: name your experiment `diffuse_test1-1deg_jra55_ryf` +- ``: store the experiment under `diffuse_exps-1deg_jra55_ryf` To get the configuration as chosen, run: mkdir -p ~/access-om2/ cd ~/access-om2/ - payu clone -b diff_test1-1deg_jra55_ryf -B release-1deg_jra55_ryf https://github.com/ACCESS-NRI/access-om2-configs diff_exps-1deg_jra55_ryf - cd diff_exps-1deg_jra55_ryf - -!!! tip - Anyone using a configuration is advised to clone only a single branch (as shown in the example above) and not the entire repository. + payu clone -b diffuse_test1-1deg_jra55_ryf -B release-1deg_jra55_ryf https://github.com/ACCESS-NRI/access-om2-configs diffuse_exps-1deg_jra55_ryf + cd diffuse_exps-1deg_jra55_ryf !!! tip - _payu_ uses branches to differentiate between different experiments in the same local git repository.
- For this reason, it is recommended to always set the cloned branch name, `` (`diff_test1-1deg_jra55_ryf` in the example above), to something meaningful for the planned experiment.
- For more information refer to this [payu tutorial](https://forum.access-hive.org.au/t/access-om2-payu-tutorial/1750#select-experiment-12). - -## Directory structure for _payu_-supported model runs - -The general layout of a _payu_-supported model run consists of two main directories: - -- The _control_ directory contains the model configuration and serves as the execution directory for running the model. You created the _control_ directory when you cloned the configuration you want to use. -- The _laboratory_ directory, where all the model components reside. It is typically `/scratch/$PROJECT/$USER/` and is created by _payu_. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your default project and your username respectively. - -This separates the small text configuration files from the larger binary outputs and inputs. In this way, the _control_ directory can be in the `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The quotas for `$HOME` are low and strict, which limits what can be stored there, so it is not suitable for larger files. - -The _laboratory_ directory is a shared space for a user's _payu_ experiments using the same model. Inside the _laboratory_ directory there are two areas: - -- `work` → for temporary storage of files needed by the model while it runs. _payu_ creates and removes directories and files in this directory upon successful completion of runs. -- `archive` → for storing the output following each successful run. - -Within each of the above directories, _payu_ automatically creates subdirectories uniquely named according to the experiment being run.
-_Payu_ also creates symbolic links in the _control_ directory pointing to the `archive` and `work` directories. - -This design allows multiple self-resubmitting experiments that share common executables and input data to be run simultaneously. - -!!! warning - Files on the `/scratch` drive, such as the _laboratory_ directory, might get deleted if not accessed for several days and the `/scratch` drive is limited in space. For these reasons, all model runs which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data). + Anyone using a configuration is advised to clone only a single branch (as shown in the example above) and not the entire repository. -!!! info - `payu` will create all the directories it needs. They do not need to be created beforehand. +### Test the configuration -## Run the configuration +To verify everything is set correctly, it is recommended to first test the configuration as-is. -_payu_ manages the experiment through a [PBS job][PBS job] that it self-submits. - -To run a configuration, execute the following command from within the *control* directory: +To run the configuration, execute the following command from within the `control` directory: payu run @@ -119,7 +146,7 @@ This will submit a single job to the queue. Refer to the [Run a Model][Run a Mod `payu run` will error out if a non-empty `work` directory for your experiment already exists (from a failed attempt or from running `payu setup`).
You can add the `-f` option to `payu run` to let the model run in all cases and delete any existing data under `work`. -## Run an experiment +### Run the experiment An experiment consists of a series of subsequent runs with each run continuing from where the previous one ended. To conduct an experiment, use the `-n` option to submit a series of runs until the desired length of the experiment is reached: @@ -128,7 +155,7 @@ To conduct an experiment, use the `-n` option to submit a series of runs until t This will run the configuration `number-of-runs` consecutive times for the configured run length. This way, the *total experiment length* will be `run-length * number-of-runs`. -For example, to run an experiment for a total of 50 years with a default run length of 5 years, the `number-of-runs` should be set to `10`: +For example, to run an experiment for a total of 50 years with a run length of 5 years, the `number-of-runs` should be set to `10`: payu run -n 10 @@ -195,7 +222,7 @@ which kills the specified job without waiting for it to complete. ### Error and output log files #### PBS output files {: .no-toc } -When the model completes a run, PBS writes the standard output and error streams to two files inside the _control_ directory: `.o` and `.e`, respectively. +When the model fails or completes a run, PBS writes the standard output and error streams to two files inside the _control_ directory: `.o` and `.e`, respectively. These files usually contain logs about _payu_ tasks, and give an overview of the resources used by the job.
To move these files to the `archive` directory, use the following commmand: @@ -205,7 +232,7 @@ payu sweep #### Model log files {: .no-toc } -While the model is running, _payu_ saves the model standard output and error streams in the _control_ directory. Refer to the [Run a Model][Run a Model] page for the model you are using for the list of logging filenames for your model.
+While the model is running, the standard output and error streams are saved in the _control_ directory. Refer to the [Run a Model][Run a Model] page for the model you are using for the list of logging filenames for your model.
You can examine the contents of these files to check on the status of a run as it progresses (or after a failed run has completed). !!! warning @@ -246,18 +273,6 @@ This command will: This can help to isolate issues such as permissions problems accessing files and directories, missing files or malformed/incorrect paths. -## Outputs organisation - -At the end of a successful model run, output files, restart files and log files are moved from the `work` directory to the `archive` directory.
-Symbolic links to these directories are also provided in the _control_ directory for convenience. - -If a model run is unsuccessful, the `work` directory is left untouched to facilitate the identification of the cause of the model failure. - -Outputs and restarts are stored in subfolders within the `archive` directory, subdivided for each run of the model.
-Output and restart folders are called `outputXXX` and `restartXXX`, respectively, where _XXX_ is the run number starting from `000`. - -Model components are separated into subdirectories within the output and restart directories. - ## Edit a _payu_ configuration The modifications discussed in this section can change how the model and its components are configured, or the way the model is run by _payu_. @@ -268,40 +283,9 @@ To find out more about configuration settings for the `config.yaml` file, refer ### Change run length -One of the most common changes is to adjust the duration of the model run.
With _payu_, simulations are split into smaller _run lengths_, each with the duration specified by the `runtime` settings in the `config.yaml` file: - -```yml - runtime: - years: 1 - months: 0 - days: 0 -``` -At the end of each run length, each model component saves its state into a _restart file_, allowing the simulation to be continued in subsequent runs. - -#### Understand _runtime_, _runspersub_, and _-n_ parameters {: id="multiple-runs"} +Adjusting the duration of the model run is one of the most common change to apply. However, models follow different ways to adapt the duration of the run. Please refer to the [Run a Model][Run a Model] page of the model of your choice for information
-It is possible to have more than one model run per queue submit. With the correct use of [`runtime`](#runtime), `runspersub`, `-n` and `walltime` parameters, you can have full control of your experiment.
-- `runtime` defines the _run length_. -- `runspersub` defines the maximum number of runs for every [PBS job] submission. -- `-n` sets the number of runs to be performed. -- `walltime` defines the maximum time of every [PBS job] submission. - -Now some practical examples: - -- **Run 20 years of simulation with resubmission every 5 years**
- To have a _total experiment length_ of 20 years with a 5-year resubmission cycle, leave [`runtime`](#runtime) as the default value of `1 year`, set `runspersub` to `5` and increase `walltime` to allow for 5 years of simulation within a PBS job. Then, run the configuration with `-n` set to `20`: - ``` - payu run -f -n 20 - ``` - This will submit subsequent jobs for the following years: 1 to 5, 6 to 10, 11 to 15, and 16 to 20, which is a total of 4 PBS jobs. - -- **Run 7 years of simulation with resubmission every 3 years**
- To have a _total experiment length_ of 7 years with a 3-year resubmission cycle, leave [`runtime`](#runtime) as the default value of `1 year`, set `runspersub` to `3` and increase `walltime` to allow for 3 years of simulation within a PBS job. Then, run the configuration with `-n` set to `7`: - ``` - payu run -f -n 7 - ``` - This will submit subsequent jobs for the following years: 1 to 3, 4 to 6, and 7, which is a total of 3 PBS jobs. ### Start the run from a specific restart file {: id='specific-restart'} @@ -438,9 +422,6 @@ Coupled models deploy multiple submodels, a.k.a. the model components. This section of the _payu_ configuration file specifies the submodels, the configuration options required to execute the model correctly and the location of all inputs required for this submodel. -Each submodel contains additional configuration options that are read in when the submodel is running. These options are specified in the subfolder of the _control_ directory whose name matches the submodel's `name` (e.g., configuration options for the `ocean` submodel are in the `ocean` sub-directory). - -Refer to the [Run a Model][Run a Model] page of a chosen model for details of the submodels' configurations used by this model. #### Runlog {: .no-toc } @@ -492,4 +473,4 @@ Each of the model components contains additional configuration options that are These options are typically useful to modify the physics used in the model, the input data, or the model variables saved in the output files. These configuration options are specified in files located inside a subfolder of the _control_ directory, named according to the submodel's `name` specified in the `config.yaml` `submodels` section (e.g., configuration options for the _ocean_ component are in the `ocean` sub-directory).
-To modify these options please refer to the User Guide of the respective model component. +To modify these options please refer to the configurations documentation of the respective model component. See the [Run a Model][Run a Model] page for your chosen model for a link to the configurations documentation. The configurations documentations are provided in collaboration with the research community to provide useful scientific information about a model's configurations and components. From d05dfc06dbe3635a1c1c1ad8495b7ebed5576229 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Wed, 18 Feb 2026 11:22:52 +1100 Subject: [PATCH 10/22] (#978) - Additional changes --- docs/models/run_a_model/payu.md | 47 +++++++++++++++------------------ 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index a49f41fe8..a7806f1fd 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -11,18 +11,18 @@ This page summarises the _payu_ capabilities that are most commonly required to - [terminology for _payu_-based experiments](#terminology) - [the setup of _payu_](#prerequisites) -- [running _payu_-based ACCESS model's experiment](#run-the-experiment) +- [running a _payu_-based experiment](#run-the-experiment) - [monitoring a _payu_-based experiment on _Gadi_](#monitor-the-experiment) -- [modifying a _payu_-based configuration for the most commonly customised aspects of the configurations](#edit-a-model-components-configuration) +- [modifying a _payu_-based configuration for the most commonly customised aspects](#edit-a-model-components-configuration) !!! info - This page is to be used in conjunction with the Run a Model page for the chosen configuration. The Run a Model page will give information specific to that model (for example, additional requirements or configuration names and locations) as well as any information on any configurations customisation that is particular to that model. + This page is to be used in conjunction with the [Run a Model][Run a Model] page for the chosen configuration. The Run a Model page will give information specific to that model (for example, additional requirements or configuration names and locations) as well as any information on any configurations customisation that is particular to that model. -For in-depth information about _payu_, check its [technical documentation](https://payu.readthedocs.io/en/latest/). +For in-depth information about _payu_, check its [technical documentation](https://payu.readthedocs.io/en/stable/). ## Terminology -Before explaining how _payu_ works for the ACCESS models, it is worth explaining the terminology around configurations and experiments as well as around the data organisation for _payu_'s experiments. +Before explaining how _payu_ works for the ACCESS models, it is worth explaining the difference between configurations and experiments as well as the terminology for the data organisation for _payu_'s experiments. ### Configuration versus experiment @@ -31,9 +31,9 @@ These terms are not interchangeable although they are closely related. A configuration defines a specific way to run the model it relates to. A configuration is defined by: - - a given model version and build - - a given set of input files (ancillaries, forcings, restarts) - - a specific set of physical and modelling options for each model component used by this model +- a given model version and build +- a given set of input files (ancillaries, forcings, restarts) +- a specific set of physical and modelling options for each model component used by this model Changing any one of these items creates a new configuration @@ -41,19 +41,23 @@ An experiment is a series of runs of a configuration that covers a longer time p ### Data organisation and _payu_'s directories designation +!!! info + `payu` will create all the directories it needs. They do not need to be created beforehand. + A representation of the data organisation for _payu_ is given in the following diagram: ![payu directory structure](/docs/assets/payu_directory_structure.png){: class="img-contain white-background round-edges with-padding" loading="lazy"} -This design was chosen to separate the small files and the larger binary output and input files, makin -The general layout of a _payu_-supported model run consists of two main directories: +This design was chosen to separate the small files that define the configuration and the larger binary output and input files needed for a realisation of a configuration. This ensures the configuration definition is easy to back up and share. It also optimises the use of different filesystems on high-performance computers. It also ensures several experiments that share common executables and input data to be run simultaneously. + +As shown on the diagram, the general layout of a _payu_-supported model run consists of two main directories: - The _control_ directory contains the model configuration and is where the model is run from. - The _laboratory_ directory contains all data from _payu_ experiments using a same model. It is typically `/scratch/$PROJECT/$USER/` and is created by _payu_. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your default project and your username respectively. -This layout separates the small text configuration files in the _control_ directory, from the larger binary outputs and inputs in the _laboratory_. In this way, the _control_ directory can be in the `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The quotas for `$HOME` are low and strict, which limits what can be stored there, so it is not suitable for larger files. +On _Gadi_, the _control_ directory can be in your `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The quotas for `$HOME` are low and strict, which limits what can be stored there, so it is not suitable for larger files. -Inside the _laboratory_ directory there are two areas: +Inside the _laboratory_ directory, there are two areas: - `work` → for temporary storage of files needed by the model while it runs. _payu_ creates and removes directories and files in this directory upon successful completion of runs. It is left untouched in case of error to facilitate the identification of the cause of the model failure - `archive` → for storing the output following each successful run. The output, log and restart files are automatically transferred from `work` to `archive` upon successful completion of runs. @@ -62,15 +66,9 @@ Within each of the `work` and `archive` directories, _payu_ automatically create The `archive` and `work` directories for an experiment are most easily accessed through the symbolic links created in the _control_ directory. -This design allows multiple self-resubmitting experiments that share common executables and input data to be run simultaneously. - !!! warning Files on the `/scratch` drive, such as the _laboratory_ directory, might get deleted if not accessed for several days and the `/scratch` drive is limited in space. For these reasons, all model runs which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data). -!!! info - `payu` will create all the directories it needs. They do not need to be created beforehand. - - ## Prerequisites - **NCI account**
@@ -84,7 +82,7 @@ This design allows multiple self-resubmitting experiments that share common exec For more information on joining specific NCI projects, refer to [How to connect to a project](https://opus.nci.org.au/display/Help/How+to+connect+to+a+project). !!! warning - Different model configurations will likely require you to join other projects in addition to those listed here. Please refer to the [Run a Model][Run a Model] page of your chosen configuration for details. + Different model configurations will likely require you to join additional projects. Please refer to the [Run a Model][Run a Model] page of your chosen configuration for the list of additional projects. ## Payu setup @@ -98,8 +96,6 @@ To check that _payu_ is available, run: payu --version ---- - ## Run an experiment ### Get the model configuration @@ -143,7 +139,7 @@ To run the configuration, execute the following command from within the `control This will submit a single job to the queue. Refer to the [Run a Model][Run a Model] page for your chosen model to learn how to set the length of the simulation. !!! tip - `payu run` will error out if a non-empty `work` directory for your experiment already exists (from a failed attempt or from running `payu setup`).
+ `payu run` will error out if a non-empty `work` directory for your experiment already exists (from a failed attempt or from running [`payu setup`](#trouble-shooting)).
You can add the `-f` option to `payu run` to let the model run in all cases and delete any existing data under `work`. ### Run the experiment @@ -161,7 +157,7 @@ For example, to run an experiment for a total of 50 years with a run length of 5 ## Monitor the experiment -_payu_ provides the `payu status` command for monitoring jobs (see [documentation](https://payu.readthedocs.io/en/1.2.0/usage.html#monitoring-payu-jobs)). This command can return the scheduler job ID, and the stage the payu run is currently at. When the job is complete, it displays the exit statuses from the model and overall payu run, and points to the PBS log files. +_payu_ provides the `payu status` command for monitoring jobs (see [documentation](https://payu.readthedocs.io/en/stable/usage.html#monitoring-payu-jobs)). This command can return the scheduler job ID, and the stage the payu run is currently at. When the job is complete, it displays the exit statuses from the model and overall payu run, and points to the PBS log files. !!! note `payu status` is available in _payu_ versions 1.2.0 and later. This command does not yet support monitoring post-processing jobs from the configuration, e.g. `payu collate` and `payu sync`. @@ -226,6 +222,7 @@ When the model fails or completes a run, PBS writes the standard output and erro These files usually contain logs about _payu_ tasks, and give an overview of the resources used by the job.
To move these files to the `archive` directory, use the following commmand: + ``` payu sweep ``` @@ -236,7 +233,7 @@ While the model is running, the standard output and error streams are saved in t You can examine the contents of these files to check on the status of a run as it progresses (or after a failed run has completed). !!! warning - At the end of a successful run these log files are archived to the `archive` directory and will no longer be found in the _control_ directory. If they remain in the _control_ directory after the PBS job for a run has completed, it means the run has failed. + At the end of a successful run, the model log files are archived to the `archive` directory and will no longer be found in the _control_ directory. If they remain in the _control_ directory after the PBS job for a run has completed, it means the run has failed. ### Trouble-shooting @@ -277,7 +274,7 @@ This can help to isolate issues such as permissions problems accessing files and The modifications discussed in this section can change how the model and its components are configured, or the way the model is run by _payu_. -The `config.yaml` file located in the _control_ directory is the _payu_ configuration file, which controls the general model configuration. It contains several parts, some of which it is more likely will need modification, and others which are rarely changed without having a deep understanding of how the model is configured. +The `config.yaml` file located in the _control_ directory is the _payu_ configuration file, which controls the general model configuration. It contains several parts, some of which are more likely to need modification, and others which are rarely changed without having a deep understanding of how the model is configured. To find out more about configuration settings for the `config.yaml` file, refer to [how to configure your experiment with payu](https://payu.readthedocs.io/en/latest/config.html). From dfb62581302d6a2623d04bf5d764de7311b31cf9 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Wed, 18 Feb 2026 12:11:07 +1100 Subject: [PATCH 11/22] (#978) - A few more edits --- docs/models/run_a_model/payu.md | 50 ++++++++++++++++----------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index a7806f1fd..aac8cfe73 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -1,5 +1,5 @@ [PBS job]: https://opus.nci.org.au/display/Help/4.+PBS+Jobs -[Run a Model]: /models/run_a_model/index.md +[Run a Model]: /models/run_a_model # Run models using payu @@ -13,7 +13,7 @@ This page summarises the _payu_ capabilities that are most commonly required to - [the setup of _payu_](#prerequisites) - [running a _payu_-based experiment](#run-the-experiment) - [monitoring a _payu_-based experiment on _Gadi_](#monitor-the-experiment) -- [modifying a _payu_-based configuration for the most commonly customised aspects](#edit-a-model-components-configuration) +- [modifying a _payu_-based configuration for the most commonly customised aspects](#edit-a-payu-configuration) !!! info This page is to be used in conjunction with the [Run a Model][Run a Model] page for the chosen configuration. The Run a Model page will give information specific to that model (for example, additional requirements or configuration names and locations) as well as any information on any configurations customisation that is particular to that model. @@ -33,11 +33,11 @@ A configuration is defined by: - a given model version and build - a given set of input files (ancillaries, forcings, restarts) -- a specific set of physical and modelling options for each model component used by this model +- a given set of physical and modelling options for each model component used by this model Changing any one of these items creates a new configuration -An experiment is a series of runs of a configuration that covers a longer time period. +An experiment is a series of runs of a configuration to cover a longer time period. ### Data organisation and _payu_'s directories designation @@ -46,14 +46,14 @@ An experiment is a series of runs of a configuration that covers a longer time p A representation of the data organisation for _payu_ is given in the following diagram: -![payu directory structure](/docs/assets/payu_directory_structure.png){: class="img-contain white-background round-edges with-padding" loading="lazy"} +![payu directory structure](/docs/assets/payu_directory_structure.png){: class="example-img" loading="lazy"} -This design was chosen to separate the small files that define the configuration and the larger binary output and input files needed for a realisation of a configuration. This ensures the configuration definition is easy to back up and share. It also optimises the use of different filesystems on high-performance computers. It also ensures several experiments that share common executables and input data to be run simultaneously. +This design was chosen to separate the small files that define the configuration and the larger binary output and input files needed for a realisation of a configuration. This ensures the configuration definition is easy to back up and share. It also optimises the use of different filesystems on high-performance computers. Finally, this layout ensures several experiments that share common executables and input data to be run simultaneously. As shown on the diagram, the general layout of a _payu_-supported model run consists of two main directories: - The _control_ directory contains the model configuration and is where the model is run from. -- The _laboratory_ directory contains all data from _payu_ experiments using a same model. It is typically `/scratch/$PROJECT/$USER/` and is created by _payu_. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your default project and your username respectively. +- The _laboratory_ directory contains all data from _payu_ experiments using a same model. By default, it is `/scratch/$PROJECT/$USER/`. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your default project and your username respectively. See the section on [modifying the PBS resources](#modify-pbs-resources) to learn how to change the _laboratory_ location. On _Gadi_, the _control_ directory can be in your `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The quotas for `$HOME` are low and strict, which limits what can be stored there, so it is not suitable for larger files. @@ -62,12 +62,12 @@ Inside the _laboratory_ directory, there are two areas: - `work` → for temporary storage of files needed by the model while it runs. _payu_ creates and removes directories and files in this directory upon successful completion of runs. It is left untouched in case of error to facilitate the identification of the cause of the model failure - `archive` → for storing the output following each successful run. The output, log and restart files are automatically transferred from `work` to `archive` upon successful completion of runs. -Within each of the `work` and `archive` directories, _payu_ automatically creates a unique subdirectory for each experiment. Outputs and restarts are stored in subfolders within the `archive` directory, subdivided for each run of the model. Output and restart folders are called `outputXXX` and `restartXXX`, respectively, where _XXX_ is the run number starting from `000`. Model components are separated into subdirectories within the output and restart directories. +Within each of the `work` and `archive` directories, _payu_ automatically creates a unique subdirectory for each experiment. Output and restart subfolders are called `outputXXX` and `restartXXX`, respectively, where _XXX_ is the run number starting from `000`. Model components are separated into subdirectories within the output and restart directories. The `archive` and `work` directories for an experiment are most easily accessed through the symbolic links created in the _control_ directory. !!! warning - Files on the `/scratch` drive, such as the _laboratory_ directory, might get deleted if not accessed for several days and the `/scratch` drive is limited in space. For these reasons, all model runs which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data). + Files on the `/scratch` drive, such as the _laboratory_ directory, might get deleted if not accessed for several days and the `/scratch` drive is limited in space. For these reasons, all model runs which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data-to-long-term-storage). ## Prerequisites @@ -82,7 +82,7 @@ The `archive` and `work` directories for an experiment are most easily accessed For more information on joining specific NCI projects, refer to [How to connect to a project](https://opus.nci.org.au/display/Help/How+to+connect+to+a+project). !!! warning - Different model configurations will likely require you to join additional projects. Please refer to the [Run a Model][Run a Model] page of your chosen configuration for the list of additional projects. + Different model configurations will likely require you to **join additional projects**. Please refer to the [Run a Model][Run a Model] page of your chosen configuration for the list of additional projects. ## Payu setup @@ -114,9 +114,9 @@ Then, you can get the chosen configuration using `payu clone`. For example, say you want to do a sensitivity experiment to the diffusivity in ACCESS-OM2 using the configuration `release-1deg_jra55_ryf`. You decide to: - `` and ``: base your experiment off the branch, `release-1deg_jra55_ryf`, from the repository, `https://github.com/ACCESS-NRI/access-om2-configs` -- ``: store the configurations under `~/access-om2/` +- ``: store the all your ACCESS-OM2 configurations under `~/access-om2/` - ``: name your experiment `diffuse_test1-1deg_jra55_ryf` -- ``: store the experiment under `diffuse_exps-1deg_jra55_ryf` +- ``: store the configurations for this research project under `diffuse_exps-1deg_jra55_ryf` To get the configuration as chosen, run: @@ -136,7 +136,7 @@ To run the configuration, execute the following command from within the `control payu run -This will submit a single job to the queue. Refer to the [Run a Model][Run a Model] page for your chosen model to learn how to set the length of the simulation. +This will submit a single job to the queue. !!! tip `payu run` will error out if a non-empty `work` directory for your experiment already exists (from a failed attempt or from running [`payu setup`](#trouble-shooting)).
@@ -149,7 +149,7 @@ To conduct an experiment, use the `-n` option to submit a series of runs until t payu run -n -This will run the configuration `number-of-runs` consecutive times for the configured run length. This way, the *total experiment length* will be `run-length * number-of-runs`. +This will run the configuration `number-of-runs` consecutive times for the configured run length. This way, the *total experiment length* will be `run-length * number-of-runs`. The `run-length`, or length of each individual run, is set in the configuration. The way to set the length of each run is specific to each model, refer to the [Run a Model][Run a Model] page for your chosen model to learn how to modify the length of each run. For example, to run an experiment for a total of 50 years with a run length of 5 years, the `number-of-runs` should be set to `10`: @@ -163,7 +163,7 @@ _payu_ provides the `payu status` command for monitoring jobs (see [documentatio `payu status` is available in _payu_ versions 1.2.0 and later. This command does not yet support monitoring post-processing jobs from the configuration, e.g. `payu collate` and `payu sync`. -You can also use the PBS `job-ID` to monitor the job using the PBS commands available from NCI. +Alternatively, you can also use the PBS `job-ID` to monitor the job using the PBS commands available from NCI. To print out information on the status of a specific job, you can execute the following command: ``` @@ -276,7 +276,7 @@ The modifications discussed in this section can change how the model and its com The `config.yaml` file located in the _control_ directory is the _payu_ configuration file, which controls the general model configuration. It contains several parts, some of which are more likely to need modification, and others which are rarely changed without having a deep understanding of how the model is configured. -To find out more about configuration settings for the `config.yaml` file, refer to [how to configure your experiment with payu](https://payu.readthedocs.io/en/latest/config.html). +To find out more about configuration settings for the `config.yaml` file, refer to [how to configure your experiment with payu](https://payu.readthedocs.io/en/stable/config.html). ### Change run length @@ -287,7 +287,7 @@ Adjusting the duration of the model run is one of the most common change to appl ### Start the run from a specific restart file {: id='specific-restart'} -To configure the experiment to start from specific restart files, add a [`restart:` entry](https://payu.readthedocs.io/en/latest/config.html#miscellaneous) to the `config.yaml` file, specifying the path to a folder containing existing restart files. +To configure the experiment to start from specific restart files, add a [`restart:` entry](https://payu.readthedocs.io/en/stable/config.html#miscellaneous) to the `config.yaml` file, specifying the path to a folder containing existing restart files. Or, to do this automatically when setting up an experiment, add the `-r` flag to the `payu clone` command. !!! warning @@ -346,7 +346,7 @@ sync: - '*.nc.*' - 'iceh.????-??-??.nc' ``` -To enable syncing, change `enable` to `True`, and set `path` to a location on `/g/data`, where _payu_ will copy output and restart folders. A sensible `path` could be: `/g/data/$PROJECT/$USER//experiment_name/`. +To enable syncing, change `enable` to `True`, and set `path` to a location on `/g/data`, where _payu_ will copy output and restart folders. A sensible `path` could be: `/g/data/$PROJECT/$USER///`. ### Pruning model restarts @@ -390,11 +390,11 @@ The most recent sequential restarts are retained, and only deleted after a perma If `restart_freq` is set to `5YS` (5 years), _payu_ will keep: - restart000: 01/01/2000 - - restart002: 01/01/2006 (first restart >= 01/01/2005) - - restart004: 01/01/2012 (first restart >= 01/01/2011) - - restart005: 01/01/2015 (keeps immediate restarts < 01/01/2017) + - restart002: 01/01/2006 (first restart date on or after 01/01/2005) + - restart004: 01/01/2012 (first restart date on or after 01/01/2011) + - restart005: 01/01/2015 (keeps immediate restarts before 01/01/2017) -For more information, check [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/latest/config.html#model). +For more information, check [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/stable/config.html#model). ### Other configuration options @@ -444,9 +444,9 @@ A dictionary to run scripts or subcommands at various stages of a _payu_ submiss - `error` gets called if the model does not run correctly and returns an error code. - `run` gets called after the model successful execution, but prior to model output archive. -- `sync` gets called at the start of the sync pbs job. For more information refer to [Syncing output data](#syncing-output-data). +- `sync` gets called at the start of the sync pbs job. For more information refer to [Syncing output data](#syncing-output-data-to-long-term-storage). -For more information about specific `userscripts` fields, check the relevant section of [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/latest/config.html#postprocessing). +For more information about specific `userscripts` fields, check the relevant section of [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/stable/config.html#postprocessing). #### Postscripts {: .no-toc } Postprocessing scripts that run after _payu_ has completed all steps of each run (for example, with `payu run -n 10`, the postscript will run 10 times). Scripts that might alter the output directory, for example, can be run as postscripts. These run in PBS jobs separate from the main model simulation. @@ -470,4 +470,4 @@ Each of the model components contains additional configuration options that are These options are typically useful to modify the physics used in the model, the input data, or the model variables saved in the output files. These configuration options are specified in files located inside a subfolder of the _control_ directory, named according to the submodel's `name` specified in the `config.yaml` `submodels` section (e.g., configuration options for the _ocean_ component are in the `ocean` sub-directory).
-To modify these options please refer to the configurations documentation of the respective model component. See the [Run a Model][Run a Model] page for your chosen model for a link to the configurations documentation. The configurations documentations are provided in collaboration with the research community to provide useful scientific information about a model's configurations and components. +To modify these options please refer to the configurations documentation of the respective model component, found on the [Run a Model][Run a Model] page for your chosen model. From 7106ace2e91b9c61b7e86b03e2b186633abe9a7d Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Wed, 18 Feb 2026 12:22:42 +1100 Subject: [PATCH 12/22] Update diagram for payu directory structure --- docs/assets/payu_directory_structure.png | Bin 32295 -> 98547 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/assets/payu_directory_structure.png b/docs/assets/payu_directory_structure.png index e2a8efe8b92d898886d52dd1877a2f48d047842d..76f9a6b15f20962d696b3c7a5efd5dda27e93e1d 100644 GIT binary patch literal 98547 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 literal 32295 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
ihN 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 tU^MlfC$Pbde~#d8=V;~TZs7>~mu Date: Wed, 18 Feb 2026 14:29:26 +1100 Subject: [PATCH 13/22] Fixing image link --- docs/models/run_a_model/payu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index aac8cfe73..c30acc2f8 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -46,7 +46,7 @@ An experiment is a series of runs of a configuration to cover a longer time peri A representation of the data organisation for _payu_ is given in the following diagram: -![payu directory structure](/docs/assets/payu_directory_structure.png){: class="example-img" loading="lazy"} +![payu directory structure](/assets/payu_directory_structure.png){: class="example-img" loading="lazy"} This design was chosen to separate the small files that define the configuration and the larger binary output and input files needed for a realisation of a configuration. This ensures the configuration definition is easy to back up and share. It also optimises the use of different filesystems on high-performance computers. Finally, this layout ensures several experiments that share common executables and input data to be run simultaneously. From 48a3a9475f927f6bb6e0f69330f92c6de31e4fe2 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Tue, 24 Feb 2026 16:01:54 +1100 Subject: [PATCH 14/22] (#978) - edits for review comments --- docs/models/run_a_model/payu.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index c30acc2f8..16d44824e 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -16,7 +16,7 @@ This page summarises the _payu_ capabilities that are most commonly required to - [modifying a _payu_-based configuration for the most commonly customised aspects](#edit-a-payu-configuration) !!! info - This page is to be used in conjunction with the [Run a Model][Run a Model] page for the chosen configuration. The Run a Model page will give information specific to that model (for example, additional requirements or configuration names and locations) as well as any information on any configurations customisation that is particular to that model. + This page is to be used in conjunction with the [Run a Model][Run a Model] page for the chosen configuration. The Run a Model page will give information specific to that model (for example, additional information on configuration names and locations) as well as information on configuration customisations that are particular to that model. For in-depth information about _payu_, check its [technical documentation](https://payu.readthedocs.io/en/stable/). @@ -44,18 +44,22 @@ An experiment is a series of runs of a configuration to cover a longer time peri !!! info `payu` will create all the directories it needs. They do not need to be created beforehand. +The data organisation for _payu_ was chosen to separate the small files that define the configuration and the larger binary output and input files needed for a realisation of a configuration. This ensures the configuration definition is easy to back up and share. It also optimises the use of different filesystems on high-performance computers. Finally, this layout ensures several experiments that share common executables and input data can be run simultaneously. + A representation of the data organisation for _payu_ is given in the following diagram: + + + ![payu directory structure](/assets/payu_directory_structure.png){: class="example-img" loading="lazy"} -This design was chosen to separate the small files that define the configuration and the larger binary output and input files needed for a realisation of a configuration. This ensures the configuration definition is easy to back up and share. It also optimises the use of different filesystems on high-performance computers. Finally, this layout ensures several experiments that share common executables and input data to be run simultaneously. As shown on the diagram, the general layout of a _payu_-supported model run consists of two main directories: - The _control_ directory contains the model configuration and is where the model is run from. - The _laboratory_ directory contains all data from _payu_ experiments using a same model. By default, it is `/scratch/$PROJECT/$USER/`. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your default project and your username respectively. See the section on [modifying the PBS resources](#modify-pbs-resources) to learn how to change the _laboratory_ location. -On _Gadi_, the _control_ directory can be in your `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The quotas for `$HOME` are low and strict, which limits what can be stored there, so it is not suitable for larger files. +On _Gadi_, the _control_ directory can be in your `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The _control_ directory only contains text files and symlinks, and therefore fits easily within the 10GB limit placed on home directories. The _laboratory_ directory is on `/scratch` where there is lots more space available for large model output. Inside the _laboratory_ directory, there are two areas: @@ -67,7 +71,7 @@ Within each of the `work` and `archive` directories, _payu_ automatically create The `archive` and `work` directories for an experiment are most easily accessed through the symbolic links created in the _control_ directory. !!! warning - Files on the `/scratch` drive, such as the _laboratory_ directory, might get deleted if not accessed for several days and the `/scratch` drive is limited in space. For these reasons, all model runs which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data-to-long-term-storage). + Files on the `/scratch` drive, such as the _laboratory_ directory, might get deleted if not accessed for several days. All experiments which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data-to-long-term-storage). ## Prerequisites @@ -106,8 +110,8 @@ To get a local copy of a configuration, you need to: - identify the `` and `` name the configuration is stored under on GitHub. See the information on the [Run a Model][Run a Model] page of your chosen model for this step. - decide where on Gadi to store all your _payu_ experiments, ``, typically a folder under $HOME. This directory must exist before running _payu_. -- decide on a name for your experiment, ``. It is recommended to choose a descriptive name. -- decide on a directory name to store the experiment, `` (created by _payu_). The `control` directory is a git repository. Experiments are saved as branches in this repository, making it possible to use the same `control` directory for several experiments. For this reason, we recommend to always set the ``. For more information refer to this [payu tutorial](https://forum.access-hive.org.au/t/access-om2-payu-tutorial/1750#select-experiment-12). +- decide on a name for your experiment, ``. It is recommended to choose a descriptive name, specific to your experiment. +- decide on a directory name to store the experiment, `` (created by _payu_). The `control` directory is a git repository. Experiments are saved as branches in this repository, making it possible to use the same `control` directory for several experiments. For this reason, we recommend to always set the ``. For more information refer to this [payu tutorial](https://forum.access-hive.org.au/t/access-om2-payu-tutorial/1750#select-experiment-12). Then, you can get the chosen configuration using `payu clone`. @@ -115,7 +119,7 @@ For example, say you want to do a sensitivity experiment to the diffusivity in A - `` and ``: base your experiment off the branch, `release-1deg_jra55_ryf`, from the repository, `https://github.com/ACCESS-NRI/access-om2-configs` - ``: store the all your ACCESS-OM2 configurations under `~/access-om2/` -- ``: name your experiment `diffuse_test1-1deg_jra55_ryf` +- ``: name your experiment `diffuse_test1-1deg_jra55_ryf` - ``: store the configurations for this research project under `diffuse_exps-1deg_jra55_ryf` To get the configuration as chosen, run: @@ -282,9 +286,6 @@ To find out more about configuration settings for the `config.yaml` file, refer Adjusting the duration of the model run is one of the most common change to apply. However, models follow different ways to adapt the duration of the run. Please refer to the [Run a Model][Run a Model] page of the model of your choice for information
- - - ### Start the run from a specific restart file {: id='specific-restart'} To configure the experiment to start from specific restart files, add a [`restart:` entry](https://payu.readthedocs.io/en/stable/config.html#miscellaneous) to the `config.yaml` file, specifying the path to a folder containing existing restart files. From 8b7ced4bb28a863c2bac8d5f53716a1bd51e43f2 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Mon, 2 Mar 2026 16:27:44 +1100 Subject: [PATCH 15/22] (#978) - start of edits from review --- docs/models/run_a_model/payu.md | 35 ++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index 16d44824e..ea3b76f4e 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -7,7 +7,7 @@ [_payu_](https://github.com/payu-org/payu) is a workflow manager tool for running numerical models in supercomputing environments. It is an open-source software, distributed under an Apache 2.0 Licence. -This page summarises the _payu_ capabilities that are most commonly required to run an ACCESS model's configuration on the _Gadi_ supercomputer. This page presents generic information on: +This page summarises the _payu_ capabilities that are most commonly required to run ACCESS models on the _Gadi_ supercomputer. This page presents generic information on: - [terminology for _payu_-based experiments](#terminology) - [the setup of _payu_](#prerequisites) @@ -16,7 +16,7 @@ This page summarises the _payu_ capabilities that are most commonly required to - [modifying a _payu_-based configuration for the most commonly customised aspects](#edit-a-payu-configuration) !!! info - This page is to be used in conjunction with the [Run a Model][Run a Model] page for the chosen configuration. The Run a Model page will give information specific to that model (for example, additional information on configuration names and locations) as well as information on configuration customisations that are particular to that model. + This page is to be used in conjunction with the [Run a Model][Run a Model] page for the chosen model. The Run a Model page provides model-specific information, including configuration names and locations. It also describes configuration customizations that apply specifically to the chosen model. For in-depth information about _payu_, check its [technical documentation](https://payu.readthedocs.io/en/stable/). @@ -26,25 +26,27 @@ Before explaining how _payu_ works for the ACCESS models, it is worth explaining ### Configuration versus experiment -These terms are not interchangeable although they are closely related. +The terms _configuration_ and _experiment_ are not interchangeable although they are closely related. -A configuration defines a specific way to run the model it relates to. +A _configuration_ defines a specific way to run the model it relates to. A configuration is defined by: -- a given model version and build -- a given set of input files (ancillaries, forcings, restarts) -- a given set of physical and modelling options for each model component used by this model +- model version and build (model executable(s)) +- set of input files (ancillaries, forcings, restarts) +- set of physical and modelling options for each [model component](/models/model_components) (namelists, configuration files and MPI layout) -Changing any one of these items creates a new configuration +Changing any one of these elements creates a new configuration -An experiment is a series of runs of a configuration to cover a longer time period. +An _experiment_ is a realisation of a configuration: a series of sequential runs that generate model data over a span of model time. ### Data organisation and _payu_'s directories designation !!! info - `payu` will create all the directories it needs. They do not need to be created beforehand. + _payu_ creates all the directories it needs. Therefore, they do not need to be created beforehand. -The data organisation for _payu_ was chosen to separate the small files that define the configuration and the larger binary output and input files needed for a realisation of a configuration. This ensures the configuration definition is easy to back up and share. It also optimises the use of different filesystems on high-performance computers. Finally, this layout ensures several experiments that share common executables and input data can be run simultaneously. +The data organisation for _payu_ was chosen to separate the smaller text files that define a _configuration_ and the larger binary input and output files needed for an _experiment_. + +This means the _configuration_ definition can be tracked with git, and so is easy to back up and share. It also optimises the use of different filesystems on high-performance computers. Finally, this layout ensures several _experiments_ that share common executables and input data can be run simultaneously. A representation of the data organisation for _payu_ is given in the following diagram: @@ -54,14 +56,15 @@ A representation of the data organisation for _payu_ is given in the following d ![payu directory structure](/assets/payu_directory_structure.png){: class="example-img" loading="lazy"} -As shown on the diagram, the general layout of a _payu_-supported model run consists of two main directories: +As shown in the diagram, the general layout of a _payu_-supported model run consists of two main directories: -- The _control_ directory contains the model configuration and is where the model is run from. -- The _laboratory_ directory contains all data from _payu_ experiments using a same model. By default, it is `/scratch/$PROJECT/$USER/`. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your default project and your username respectively. See the section on [modifying the PBS resources](#modify-pbs-resources) to learn how to change the _laboratory_ location. +- The _control_ directory contains the model configuration and is the directory from which the model run is started. + {: #control-directory } +- The _laboratory_ directory contains all data from _payu_ experiments of the same model. By default, it is `/scratch/$PROJECT/$USER/`. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your [default project](/getting_started/set_up_nci_account/#change-default-project-on-gadi) and your username respectively. See the section on [modifying the PBS resources](#modify-pbs-resources) to learn how to change the _laboratory_ location. -On _Gadi_, the _control_ directory can be in your `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The _control_ directory only contains text files and symlinks, and therefore fits easily within the 10GB limit placed on home directories. The _laboratory_ directory is on `/scratch` where there is lots more space available for large model output. +On _Gadi_, it is good practice to put experiment _control_ directories in your `$HOME` directory as this is the only filesystem that is actively backed-up. There is a 10GB limit for home directories, but the _control_ directory only contains text files and symlinks, and so uses relatively little space (<1MB). The _laboratory_ directory is on `/scratch` which is optimised for fast I/O for large data and where there is adequate space available for large model output. -Inside the _laboratory_ directory, there are two areas: +Inside the _laboratory_ directory, there are two subdirectories of particular interest: - `work` → for temporary storage of files needed by the model while it runs. _payu_ creates and removes directories and files in this directory upon successful completion of runs. It is left untouched in case of error to facilitate the identification of the cause of the model failure - `archive` → for storing the output following each successful run. The output, log and restart files are automatically transferred from `work` to `archive` upon successful completion of runs. From 65203318022cca647072481a7e35136dad6f8813 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Wed, 22 Apr 2026 10:55:59 +1000 Subject: [PATCH 16/22] (#978) - More changes from review --- docs/models/run_a_model/payu.md | 95 ++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 44 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index ea3b76f4e..3504d4344 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -1,7 +1,7 @@ [PBS job]: https://opus.nci.org.au/display/Help/4.+PBS+Jobs [Run a Model]: /models/run_a_model -# Run models using payu +# Run Models Using Payu ## About @@ -74,7 +74,7 @@ Within each of the `work` and `archive` directories, _payu_ automatically create The `archive` and `work` directories for an experiment are most easily accessed through the symbolic links created in the _control_ directory. !!! warning - Files on the `/scratch` drive, such as the _laboratory_ directory, might get deleted if not accessed for several days. All experiments which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data-to-long-term-storage). + Files on the `/scratch` drive, such as the _laboratory_ directory, might be deleted if not accessed for several days. All experiments which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data-to-long-term-storage). ## Prerequisites @@ -122,7 +122,7 @@ For example, say you want to do a sensitivity experiment to the diffusivity in A - `` and ``: base your experiment off the branch, `release-1deg_jra55_ryf`, from the repository, `https://github.com/ACCESS-NRI/access-om2-configs` - ``: store the all your ACCESS-OM2 configurations under `~/access-om2/` -- ``: name your experiment `diffuse_test1-1deg_jra55_ryf` +- ``: name your branch `diffuse_test1-1deg_jra55_ryf` - ``: store the configurations for this research project under `diffuse_exps-1deg_jra55_ryf` To get the configuration as chosen, run: @@ -139,15 +139,49 @@ To get the configuration as chosen, run: To verify everything is set correctly, it is recommended to first test the configuration as-is. -To run the configuration, execute the following command from within the `control` directory: +You can test all the paths and setup are correct by running `payu setup` from the `control` directory: + + payu setup + + + payu setup + laboratory path: /scratch/\$PROJECT/\$USER/access-om2 + binary path: /scratch/\$PROJECT/\$USER/access-om2/bin + input path: /scratch/\$PROJECT/\$USER/access-om2/input + work path: /scratch/\$PROJECT/\$USER/access-om2/work + archive path: /scratch/\$PROJECT/\$USER/access-om2/archive + Loading input manifest: manifests/input.yaml + Loading restart manifest: manifests/restart.yaml + Loading exe manifest: manifests/exe.yaml + Setting up atmosphere + Setting up ocean + Setting up ice + Setting up access-om2 + Checking exe and input manifests + Updating full hashes for 3 files in manifests/exe.yaml + Creating restart manifest + Writing manifests/restart.yaml + Writing manifests/exe.yaml + + +This command: + + - creates the _laboratory_ and `work` directories based on the experiment configuration + - generates manifests + - reports useful information to the user, such as the location of the _laboratory_ where the `work` and `archive` directories are located + +This can help to isolate issues such as permission problems accessing files and directories, missing files or malformed/incorrect paths. - payu run + +To test the configuration, execute the following command from within the `control` directory: + + payu run -f This will submit a single job to the queue. !!! tip - `payu run` will error out if a non-empty `work` directory for your experiment already exists (from a failed attempt or from running [`payu setup`](#trouble-shooting)).
- You can add the `-f` option to `payu run` to let the model run in all cases and delete any existing data under `work`. + `payu run` will error out if a non-empty `work` directory for your experiment already exists (from a failed attempt or from running [`payu setup`].
+ The `-f` option to `payu run` lets the model run in all cases and delete any existing data under `work`. ### Run the experiment @@ -242,40 +276,12 @@ You can examine the contents of these files to check on the status of a run as i !!! warning At the end of a successful run, the model log files are archived to the `archive` directory and will no longer be found in the _control_ directory. If they remain in the _control_ directory after the PBS job for a run has completed, it means the run has failed. -### Trouble-shooting -If _payu_ doesn't run correctly for some reason, a good first step is to run the following command from within the _control_ directory: - payu setup -This command will: - - - create the _laboratory_ and `work` directories based on the experiment configuration - - generate manifests - - report useful information to the user, such as the location of the _laboratory_ where the `work` and `archive` directories are located - - payu setup - laboratory path: /scratch/\$PROJECT/\$USER/access-om2 - binary path: /scratch/\$PROJECT/\$USER/access-om2/bin - input path: /scratch/\$PROJECT/\$USER/access-om2/input - work path: /scratch/\$PROJECT/\$USER/access-om2/work - archive path: /scratch/\$PROJECT/\$USER/access-om2/archive - Loading input manifest: manifests/input.yaml - Loading restart manifest: manifests/restart.yaml - Loading exe manifest: manifests/exe.yaml - Setting up atmosphere - Setting up ocean - Setting up ice - Setting up access-om2 - Checking exe and input manifests - Updating full hashes for 3 files in manifests/exe.yaml - Creating restart manifest - Writing manifests/restart.yaml - Writing manifests/exe.yaml - -This can help to isolate issues such as permissions problems accessing files and directories, missing files or malformed/incorrect paths. + ## Edit a _payu_ configuration @@ -419,9 +425,9 @@ The `name` field, for the model section, is not actually used for the configurat #### Submodels {: .no-toc } -Coupled models deploy multiple submodels, a.k.a. the model components. +Coupled models typically deploy multiple submodels, a.k.a. the model components. -This section of the _payu_ configuration file specifies the submodels, the configuration options required to execute the model correctly and the location of all inputs required for this submodel. +This section of the _payu_ configuration file specifies the submodels, the configuration options required to execute the model component correctly and the location of all inputs required for this submodel. #### Runlog {: .no-toc } @@ -429,7 +435,8 @@ This section of the _payu_ configuration file specifies the submodels, the confi ```yaml runlog: true ``` -When running a new configuration, _payu_ automatically commits changes with _git_ if `runlog` is set to `true`. + +When running an experiment, if `runlog` is set to `true`, _payu_ saves a history of the experiment. It does this using _git_, by automatically committing changes to the control directory repository. !!! warning This should not be changed as it is an essential part of the provenance of an experiment.
@@ -444,10 +451,10 @@ userscripts: sync: /g/data/vk83/apps/om2-scripts/concatenate_ice/concat_ice_daily.sh ``` -A dictionary to run scripts or subcommands at various stages of a _payu_ submission: +They are used to run scripts or subcommands at various stages of a _payu_ submission: -- `error` gets called if the model does not run correctly and returns an error code. -- `run` gets called after the model successful execution, but prior to model output archive. +- `error` gets called if the model does not run correctly and exits with an error. +- `run` gets called after each model run successful execution, but prior to archiving the model output. If using `payu -n` for automatic resubmission, it is run for each submission. - `sync` gets called at the start of the sync pbs job. For more information refer to [Syncing output data](#syncing-output-data-to-long-term-storage). For more information about specific `userscripts` fields, check the relevant section of [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/stable/config.html#postprocessing). @@ -473,5 +480,5 @@ qsub_flags: -W umask=027 Each of the model components contains additional configuration options that are read in when the model component is running.
These options are typically useful to modify the physics used in the model, the input data, or the model variables saved in the output files. -These configuration options are specified in files located inside a subfolder of the _control_ directory, named according to the submodel's `name` specified in the `config.yaml` `submodels` section (e.g., configuration options for the _ocean_ component are in the `ocean` sub-directory).
-To modify these options please refer to the configurations documentation of the respective model component, found on the [Run a Model][Run a Model] page for your chosen model. +These configuration options are specified in files located inside a subfolder of the _control_ directory, named according to the submodel's `name` specified in the `config.yaml` [`submodels` section](#submodels) (e.g., configuration options for the _ocean_ component are in the `ocean` sub-directory).
+To modify these options, please refer to the configurations documentation of the respective model component, found on the [Run a Model][Run a Model] page for your chosen model. From cb1d220ad178e974aa4641e9c56b730c00300700 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Wed, 22 Apr 2026 15:17:13 +1000 Subject: [PATCH 17/22] (#978) - Addressed bigger review comments. --- docs/models/run_a_model/payu.md | 49 +++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index 3504d4344..5751eceb6 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -59,7 +59,7 @@ A representation of the data organisation for _payu_ is given in the following d As shown in the diagram, the general layout of a _payu_-supported model run consists of two main directories: - The _control_ directory contains the model configuration and is the directory from which the model run is started. - {: #control-directory } + {: #control-directory }. This directory contains information to manage the simulation, it also contains the scientific options for each model component that define the physics used in the model component or the diagnostics saved by the model component. These configuration options are specified in files located inside a subfolder of the _control_ directory, named according to the submodel's `name` specified in the `config.yaml` [`submodels` section](#submodels). To modify these options please refer to the configurations documentation of the respective model component, found on the [Run a Model][Run a Model] page for your chosen model. - The _laboratory_ directory contains all data from _payu_ experiments of the same model. By default, it is `/scratch/$PROJECT/$USER/`. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your [default project](/getting_started/set_up_nci_account/#change-default-project-on-gadi) and your username respectively. See the section on [modifying the PBS resources](#modify-pbs-resources) to learn how to change the _laboratory_ location. On _Gadi_, it is good practice to put experiment _control_ directories in your `$HOME` directory as this is the only filesystem that is actively backed-up. There is a 10GB limit for home directories, but the _control_ directory only contains text files and symlinks, and so uses relatively little space (<1MB). The _laboratory_ directory is on `/scratch` which is optimised for fast I/O for large data and where there is adequate space available for large model output. @@ -74,15 +74,15 @@ Within each of the `work` and `archive` directories, _payu_ automatically create The `archive` and `work` directories for an experiment are most easily accessed through the symbolic links created in the _control_ directory. !!! warning - Files on the `/scratch` drive, such as the _laboratory_ directory, might be deleted if not accessed for several days. All experiments which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more refer to [Syncing output data](#syncing-output-data-to-long-term-storage). + Files on the `/scratch` drive, such as the _laboratory_ directory, might be deleted if not accessed for several days. All experiments which are to be kept should be moved to `/g/data/` by enabling the `sync` step in _payu_. To know more, refer to [Syncing output data](#syncing-output-data-to-long-term-storage). -## Prerequisites +## Prerequisites for _payu_ - **NCI account**
- Before running an ACCESS model, you need to [Set Up your NCI Account](/getting_started/set_up_nci_account). + Before running a _payu_ experiment, you need to [Set Up your NCI Account](/getting_started/set_up_nci_account). - **Join NCI projects**
- Join the following projects by requesting membership on their respective NCI project pages: + Join the following project by requesting membership on its NCI project page: - [vk83](https://my.nci.org.au/mancini/project/vk83/join) @@ -126,11 +126,34 @@ For example, say you want to do a sensitivity experiment to the diffusivity in A - ``: store the configurations for this research project under `diffuse_exps-1deg_jra55_ryf` To get the configuration as chosen, run: - - mkdir -p ~/access-om2/ - cd ~/access-om2/ - payu clone -b diffuse_test1-1deg_jra55_ryf -B release-1deg_jra55_ryf https://github.com/ACCESS-NRI/access-om2-configs diffuse_exps-1deg_jra55_ryf - cd diffuse_exps-1deg_jra55_ryf + + + mkdir -p ~/access-om2/ + cd ~/access-om2/ + payu clone + Welcome to the Payu Clone Wizard! + Press 'Ctrl+C' at any time to exit. + ? Please enter the URL of the repository, or the local path of a configuration you want to clone: (e.g., https://github.com/payu-org/bowl1.git or /path/to/local/experiment; 'Tab' to browse, '/' to enter folder) https://github.com/ACCESS-NRI/access-om2-configs + ? Do you want to clone the repo based on: An existing branch + ? Please enter the name of the branch you want to clone ('Tab' to browse all branches): release-1deg_jra55_ryf + ? How would you like to name your local experiment directory? diffuse_exps-1deg_jra55_ryf + ? Is this a new experiment? (If yes, payu will create a new branch.) Yes + ? What would you like to name your new branch (Note: this won't be shared to the online repository automatically) diffuse_test1-1deg_jra55_ryf + ? Do you want to specify a custom restart path? (If no, the default restart/initial conditions will be used.) No + Running command: + `payu clone -B release-1deg_jra55_ryf -b diffuse_test1-1deg_jra55_ryf https://github.com/ACCESS-NRI/access-om2-configs diffuse_exps-1deg_jra55_ryf` + Cloned repository from https://github.com/ACCESS-NRI/access-om2-configs to directory: /home/561/\$USER/payu-control/access-om2/ diffuse_exps-1deg_jra55_ryf + Created and checked out new branch: diffuse_test1-1deg_jra55_ryf + laboratory path: /scratch/\$PROJECT/\$USER/access-om2 + binary path: /scratch/\$PROJECT/\$USER/access-om2/bin + input path: /scratch/\$PROJECT/\$USER/access-om2/input + work path: /scratch/\$PROJECT/\$USER/access-om2/work + archive path: /scratch/\$PROJECT/\$USER/access-om2/archive + Updated metadata. Experiment UUID: 14058c5c-d0dd-49dd-841a-cbec42b7391e + Added archive symlink to /scratch/\$PROJECT/\$USER/access-om2/archive/diffuse_exps-1deg_jra55_ryf-diffuse_test1-1deg_jra55_ryf-14058c5c + To change directory to control directory run: + cd diffuse_exps-1deg_jra55_ryf + !!! tip Anyone using a configuration is advised to clone only a single branch (as shown in the example above) and not the entire repository. @@ -477,8 +500,6 @@ qsub_flags: -W umask=027 ## Edit a model components' configuration -Each of the model components contains additional configuration options that are read in when the model component is running.
-These options are typically useful to modify the physics used in the model, the input data, or the model variables saved in the output files. +To modify the physics used by a model component, the input data or the model variables saved in the output, you will need to modify the model component's configuration files. These are located inside a subfolder of the _control_ directory, named according to the submodel's `name` specified in the `config.yaml` [`submodels` section](#submodels). -These configuration options are specified in files located inside a subfolder of the _control_ directory, named according to the submodel's `name` specified in the `config.yaml` [`submodels` section](#submodels) (e.g., configuration options for the _ocean_ component are in the `ocean` sub-directory).
-To modify these options, please refer to the configurations documentation of the respective model component, found on the [Run a Model][Run a Model] page for your chosen model. +For more details about these options, please refer to the configurations documentation of the respective model component, found on the [Run a Model][Run a Model] page for your chosen model. From eed62a82f6e095a830a6047f544290e91c6ee4a0 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Wed, 22 Apr 2026 15:48:53 +1000 Subject: [PATCH 18/22] (#978) - Add colours to `payu clone` output for readability --- docs/css/access-nri.css | 11 +++++++++++ docs/models/run_a_model/payu.md | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/docs/css/access-nri.css b/docs/css/access-nri.css index fc93fac3e..82af83d8c 100644 --- a/docs/css/access-nri.css +++ b/docs/css/access-nri.css @@ -1214,6 +1214,17 @@ img.terminal-switch:hover ~ .terminal-switch-tooltip { .git-cyan { color: #00C6C7; } +.payu-yellow { + color:#ecff1e; +} +.payu-red { + color: #b78683; +} +.payu-dark-yellow { + color: #f9bd26; +} + + /* =============================================================== General styling for html tabs diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index 5751eceb6..627fc0cfd 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -131,17 +131,17 @@ To get the configuration as chosen, run: mkdir -p ~/access-om2/ cd ~/access-om2/ payu clone - Welcome to the Payu Clone Wizard! - Press 'Ctrl+C' at any time to exit. - ? Please enter the URL of the repository, or the local path of a configuration you want to clone: (e.g., https://github.com/payu-org/bowl1.git or /path/to/local/experiment; 'Tab' to browse, '/' to enter folder) https://github.com/ACCESS-NRI/access-om2-configs - ? Do you want to clone the repo based on: An existing branch - ? Please enter the name of the branch you want to clone ('Tab' to browse all branches): release-1deg_jra55_ryf - ? How would you like to name your local experiment directory? diffuse_exps-1deg_jra55_ryf - ? Is this a new experiment? (If yes, payu will create a new branch.) Yes - ? What would you like to name your new branch (Note: this won't be shared to the online repository automatically) diffuse_test1-1deg_jra55_ryf - ? Do you want to specify a custom restart path? (If no, the default restart/initial conditions will be used.) No - Running command: - `payu clone -B release-1deg_jra55_ryf -b diffuse_test1-1deg_jra55_ryf https://github.com/ACCESS-NRI/access-om2-configs diffuse_exps-1deg_jra55_ryf` + Welcome to the Payu Clone Wizard! + Press 'Ctrl+C' at any time to exit. + ? Please enter the URL of the repository, or the local path of a configuration you want to clone: (e.g., https://github.com/payu-org/bowl1.git or /path/to/local/experiment; 'Tab' to browse, '/' to enter folder) https://github.com/ACCESS-NRI/access-om2-configs + ? Do you want to clone the repo based on: An existing branch + ? Please enter the name of the branch you want to clone ('Tab' to browse all branches): release-1deg_jra55_ryf + ? How would you like to name your local experiment directory? diffuse_exps-1deg_jra55_ryf + ? Is this a new experiment? (If yes, payu will create a new branch.) Yes + ? What would you like to name your new branch (Note: this won't be shared to the online repository automatically) diffuse_test1-1deg_jra55_ryf + ? Do you want to specify a custom restart path? (If no, the default restart/initial conditions will be used.) No + Running command: + \`payu clone -B release-1deg_jra55_ryf -b diffuse_test1-1deg_jra55_ryf https://github.com/ACCESS-NRI/access-om2-configs diffuse_exps-1deg_jra55_ryf\` Cloned repository from https://github.com/ACCESS-NRI/access-om2-configs to directory: /home/561/\$USER/payu-control/access-om2/ diffuse_exps-1deg_jra55_ryf Created and checked out new branch: diffuse_test1-1deg_jra55_ryf laboratory path: /scratch/\$PROJECT/\$USER/access-om2 From 5c3a4586696c335b917d988af23ae3e6f3d5128e Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Fri, 24 Apr 2026 16:35:13 +1000 Subject: [PATCH 19/22] Use `base_path` instead of `path` for sync option New `base_path` option is safer since payu will create a uniq folder for the experiment. --- docs/models/run_a_model/payu.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index 627fc0cfd..bea2c8a86 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -372,14 +372,14 @@ This feature is controlled by the following section in the `config.yaml` file: # Sync options for automatically copying data from ephemeral scratch space to # longer term storage sync: - enable: False # set path below and change to true + enable: False # set base_path below and change to true restart: True - path: none # Set to location on /g/data or a remote server and path (rsync syntax) + base_path: none # Final sync location will be // exclude: - '*.nc.*' - 'iceh.????-??-??.nc' ``` -To enable syncing, change `enable` to `True`, and set `path` to a location on `/g/data`, where _payu_ will copy output and restart folders. A sensible `path` could be: `/g/data/$PROJECT/$USER///`. +To enable syncing, change `enable` to `True`, and set `base_path` to a location on `/g/data`. _payu_ will copy output and restart folders to `/` to avoid overwriting data from other experiments by mistake. A sensible `base_path` could be: `/g/data/$PROJECT/$USER/`. ### Pruning model restarts From f249ed51b97c2a540ff33c308f4de9499e38ccbc Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Fri, 24 Apr 2026 16:38:40 +1000 Subject: [PATCH 20/22] Update instructions for custom restart path in payu.md Clarify instructions for specifying a custom restart path during experiment setup. --- docs/models/run_a_model/payu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index bea2c8a86..c118eddaf 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -321,7 +321,7 @@ Adjusting the duration of the model run is one of the most common change to appl ### Start the run from a specific restart file {: id='specific-restart'} To configure the experiment to start from specific restart files, add a [`restart:` entry](https://payu.readthedocs.io/en/stable/config.html#miscellaneous) to the `config.yaml` file, specifying the path to a folder containing existing restart files. -Or, to do this automatically when setting up an experiment, add the `-r` flag to the `payu clone` command. +Or, to do this automatically when setting up an experiment using `payu clone` interactive, give the restart path when prompted: `Do you want to specify a custom restart path?`. !!! warning In some cases, if the supplied restart file is not fully compatible with the model configuration, experiments using a custom restart file may require additional manual adjustments to run correctly. From 11d4654cd7a47c0e842dee71c5c34588b75db126 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Mon, 4 May 2026 16:53:56 +1000 Subject: [PATCH 21/22] (#978) - responses to reviews --- docs/models/run_a_model/payu.md | 63 +++++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index c118eddaf..6c2108c14 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -5,7 +5,7 @@ ## About -[_payu_](https://github.com/payu-org/payu) is a workflow manager tool for running numerical models in supercomputing environments. It is an open-source software, distributed under an Apache 2.0 Licence. +[_payu_](https://github.com/payu-org/payu) is a workflow manager tool for running numerical models in supercomputing environments. It is an open-source software package, distributed under an Apache 2.0 Licence. This page summarises the _payu_ capabilities that are most commonly required to run ACCESS models on the _Gadi_ supercomputer. This page presents generic information on: @@ -55,14 +55,13 @@ A representation of the data organisation for _payu_ is given in the following d ![payu directory structure](/assets/payu_directory_structure.png){: class="example-img" loading="lazy"} - As shown in the diagram, the general layout of a _payu_-supported model run consists of two main directories: - The _control_ directory contains the model configuration and is the directory from which the model run is started. - {: #control-directory }. This directory contains information to manage the simulation, it also contains the scientific options for each model component that define the physics used in the model component or the diagnostics saved by the model component. These configuration options are specified in files located inside a subfolder of the _control_ directory, named according to the submodel's `name` specified in the `config.yaml` [`submodels` section](#submodels). To modify these options please refer to the configurations documentation of the respective model component, found on the [Run a Model][Run a Model] page for your chosen model. + This directory contains information to manage the simulation and the scientific options that define the algorithms used in the model component or the diagnostics saved by the model component. If a model has only one model component, the files with the scientific options are located directly in the _control_ directory. If the model has several model components, the files are locate inside subfolders of the _control_ directory named according to the submodel's `name` specified in the `config.yaml` [`submodels` section](#submodels). To modify these options please refer to the configurations documentation of the respective model component, found on the [Run a Model][Run a Model] page for your chosen model. - The _laboratory_ directory contains all data from _payu_ experiments of the same model. By default, it is `/scratch/$PROJECT/$USER/`. `$PROJECT` and `$USER` are environment variables on _Gadi_ that points to your [default project](/getting_started/set_up_nci_account/#change-default-project-on-gadi) and your username respectively. See the section on [modifying the PBS resources](#modify-pbs-resources) to learn how to change the _laboratory_ location. -On _Gadi_, it is good practice to put experiment _control_ directories in your `$HOME` directory as this is the only filesystem that is actively backed-up. There is a 10GB limit for home directories, but the _control_ directory only contains text files and symlinks, and so uses relatively little space (<1MB). The _laboratory_ directory is on `/scratch` which is optimised for fast I/O for large data and where there is adequate space available for large model output. +On _Gadi_, it is good practice to put experiment _control_ directories in your `$HOME` directory as this is the only filesystem that is actively backed-up. There is a 10GB limit for home directories, but the _control_ directory only contains text files and symlinks, and so uses relatively little space (<1MB). The _laboratory_ directory is on `/scratch` which is optimised for fast reading and writing of large data and where there is adequate space available for large model output. Inside the _laboratory_ directory, there are two subdirectories of particular interest: @@ -112,17 +111,17 @@ All model configurations are hosted in a git repository on GitHub, and each conf To get a local copy of a configuration, you need to: - identify the `` and `` name the configuration is stored under on GitHub. See the information on the [Run a Model][Run a Model] page of your chosen model for this step. -- decide where on Gadi to store all your _payu_ experiments, ``, typically a folder under $HOME. This directory must exist before running _payu_. -- decide on a name for your experiment, ``. It is recommended to choose a descriptive name, specific to your experiment. +- decide where on Gadi to store all your _payu_ experiments, ``, typically a folder under `$HOME`. This directory must exist before running _payu_. - decide on a directory name to store the experiment, `` (created by _payu_). The `control` directory is a git repository. Experiments are saved as branches in this repository, making it possible to use the same `control` directory for several experiments. For this reason, we recommend to always set the ``. For more information refer to this [payu tutorial](https://forum.access-hive.org.au/t/access-om2-payu-tutorial/1750#select-experiment-12). +- decide on a name for your experiment, ``. It is recommended to choose a descriptive name, specific to your experiment. Note that the experiment name will be formed using the _control_ directory's name and this `` name. Then, you can get the chosen configuration using `payu clone`. For example, say you want to do a sensitivity experiment to the diffusivity in ACCESS-OM2 using the configuration `release-1deg_jra55_ryf`. You decide to: - `` and ``: base your experiment off the branch, `release-1deg_jra55_ryf`, from the repository, `https://github.com/ACCESS-NRI/access-om2-configs` -- ``: store the all your ACCESS-OM2 configurations under `~/access-om2/` -- ``: name your branch `diffuse_test1-1deg_jra55_ryf` +- ``: store all your ACCESS-OM2 configurations under `~/access-om2/` +- ``: name your branch `diffuse_test1` - ``: store the configurations for this research project under `diffuse_exps-1deg_jra55_ryf` To get the configuration as chosen, run: @@ -156,13 +155,13 @@ To get the configuration as chosen, run: !!! tip - Anyone using a configuration is advised to clone only a single branch (as shown in the example above) and not the entire repository. + Anyone using a configuration is advised to clone only a single branch (as shown in the example above) and not the entire repository. ### Test the configuration To verify everything is set correctly, it is recommended to first test the configuration as-is. -You can test all the paths and setup are correct by running `payu setup` from the `control` directory: +You can test the setup and paths are correct by running `payu setup` from the _control_ directory: payu setup @@ -226,6 +225,43 @@ _payu_ provides the `payu status` command for monitoring jobs (see [documentatio !!! note `payu status` is available in _payu_ versions 1.2.0 and later. This command does not yet support monitoring post-processing jobs from the configuration, e.g. `payu collate` and `payu sync`. +Example output from `payu status` for a running simulation: + +``` +======================================== +Run: 8 + Job ID: running_example.gadi-pbs + Run ID: xxxx + Stage: model-run + Current Expt Time: 1950-10-01T00:00:00 + Exit Status: 0 (Success) + Model Exit Code: 0 (Success) + Output Log: /home/189/USER/expt.o100 + Error Log: /home/189/USER/expt.3100 + Job File: /scratch/\$PROJECT/USER/archive/expt-branch—6dhash/payu_jobs/8/run/running_example.gadi-pbs.json +======================================== +``` + +Example output from `payu status` for an archived simulation: + +``` +======================================== +Run: 8 + Job ID: archive_example.gadi-pbs + Run ID: xxxx + Stage: archive + Total Queue Time: 0h 1m 7s + Model Finish Time: 1950-10-01T00:00:00 + Exit Status: 0 (Success) + Model Exit Code: 0 (Success) + Output Log: /home/189/USER/expt.o100 + Error Log: /home/189/USER/expt.3100 + Job File: /scratch/\$PROJECT/USER/archive/expt-branch—6dhash/payu_jobs/8/run/archive_example.gadi-pbs.json +======================================== +``` + +To monitor the current queue time of a queued job, use `payu status --update`. + Alternatively, you can also use the PBS `job-ID` to monitor the job using the PBS commands available from NCI. @@ -321,7 +357,7 @@ Adjusting the duration of the model run is one of the most common change to appl ### Start the run from a specific restart file {: id='specific-restart'} To configure the experiment to start from specific restart files, add a [`restart:` entry](https://payu.readthedocs.io/en/stable/config.html#miscellaneous) to the `config.yaml` file, specifying the path to a folder containing existing restart files. -Or, to do this automatically when setting up an experiment using `payu clone` interactive, give the restart path when prompted: `Do you want to specify a custom restart path?`. +Or to do this automatically when setting up an experiment using `payu clone` interactive, give the restart path when prompted: `Do you want to specify a custom restart path?`. !!! warning In some cases, if the supplied restart file is not fully compatible with the model configuration, experiments using a custom restart file may require additional manual adjustments to run correctly. @@ -448,11 +484,10 @@ The `name` field, for the model section, is not actually used for the configurat #### Submodels {: .no-toc } -Coupled models typically deploy multiple submodels, a.k.a. the model components. +Coupled models may deploy the model components as multiple submodels. This section of the _payu_ configuration file specifies the submodels, the configuration options required to execute the model component correctly and the location of all inputs required for this submodel. - #### Runlog {: .no-toc } ```yaml @@ -478,7 +513,7 @@ They are used to run scripts or subcommands at various stages of a _payu_ submis - `error` gets called if the model does not run correctly and exits with an error. - `run` gets called after each model run successful execution, but prior to archiving the model output. If using `payu -n` for automatic resubmission, it is run for each submission. -- `sync` gets called at the start of the sync pbs job. For more information refer to [Syncing output data](#syncing-output-data-to-long-term-storage). +- `sync` gets called at the start of the sync PBS job. For more information refer to [Syncing output data](#syncing-output-data-to-long-term-storage). For more information about specific `userscripts` fields, check the relevant section of [_payu_ Configuration Settings documentation](https://payu.readthedocs.io/en/stable/config.html#postprocessing). From 77eb63d3f9a1521b9cefa13d8f24d91707cb26a5 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Tue, 2 Jun 2026 16:37:23 +1000 Subject: [PATCH 22/22] Replace diagram PNG with SVG --- docs/assets/payu_directory_structure.png | Bin 98547 -> 0 bytes docs/assets/payu_directory_structure.svg | 1 + docs/models/run_a_model/payu.md | 2 +- 3 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 docs/assets/payu_directory_structure.png create mode 100644 docs/assets/payu_directory_structure.svg diff --git a/docs/assets/payu_directory_structure.png b/docs/assets/payu_directory_structure.png deleted file mode 100644 index 76f9a6b15f20962d696b3c7a5efd5dda27e93e1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98547 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 diff --git a/docs/assets/payu_directory_structure.svg b/docs/assets/payu_directory_structure.svg new file mode 100644 index 000000000..0e78bed2d --- /dev/null +++ b/docs/assets/payu_directory_structure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/models/run_a_model/payu.md b/docs/models/run_a_model/payu.md index 6c2108c14..ca005c865 100644 --- a/docs/models/run_a_model/payu.md +++ b/docs/models/run_a_model/payu.md @@ -53,7 +53,7 @@ A representation of the data organisation for _payu_ is given in the following d -![payu directory structure](/assets/payu_directory_structure.png){: class="example-img" loading="lazy"} +![payu directory structure](/assets/payu_directory_structure.svg){: class="example-img" loading="lazy"} As shown in the diagram, the general layout of a _payu_-supported model run consists of two main directories: