Configuration details, setup and sharing#
Experiment configuration#
Since the beginning, Autosubmit has always been composed of five files in the folder $expid/conf that define the experiment configuration.
However, from Autosubmit 4, the configuration is no longer bound to one specific location. And it is composed of YAML files.
This document will teach you how to set up an experiment configuration using the different available methods and what Autosubmit expects to find in the configuration.
Standard configuration structure#
The standard configuration is the one that is used by default. It is composed of five files in the folder $expid/conf that define the experiment configuration.
This configuration is generated by the expid command without any optional flag or when using the -dm flag.
The following table summarizes what configuration files Autosubmit expects and what parameters you can define.
File |
Content |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
It is worth mentioning that for Autosubmit 4, these files are seen as one. Therefore, the sections and parameters can be defined in any of the files.
Note
The version.yml file is automatically generated by Autosubmit. It is not necessary to create it.
Note
Autosubmit only admits the use of the .yml and .yaml ( lowercase ) extensions for the configuration files.
Advanced configuration structure and restrictions#
From Autosubmit4, the configuration structure can be split into multiple locations and different files.
The experiment must have a *-minimal.yml file in the $expid/conf folder. This file is used to define the location of the configuration files and can be generated by the expid command when using the -min flag.
This location can be defined by the user in the DEFAULT.CONFIG_DIR parameter inside a file ending with minimal.yml or minimal.yaml file.
You would define the model-specific parameters inside your git or local repository. So when you push/pull the changes from git, they will be updated automatically.
You would define the experiment-specific parameters under $expid/conf.
You would define your user-specific parameters, for example, platform user, in a different location.
Advanced configuration - Full dummy example (reproducible)#
#Create a new experiment.
autosubmit expid -min -repo https://earth.bsc.es/gitlab/ces/auto-advanced_config_example -b main -conf as_conf -d "Test minimal conf"
# expid=a04b
dbeltran@bsces107894: cd ~/autosubmit/a04b
dbeltran@bsces107894:~/autosubmit/a04b$ ls conf
minimal.yml
cat ~/autosubmit/conf/minimal.yml
CONFIG:
AUTOSUBMIT_VERSION: "4.0.0b"
DEFAULT:
EXPID: "a04b"
HPCARCH: "local"
#ADD, note that %PROJDIR% is an special AS_PLACEHOLDER that points to the expid folder.
#hint: use %PROJDIR% to point to the project folder (where the project is cloned)
CUSTOM_CONFIG: "%PROJDIR%/as_conf"
PROJECT:
PROJECT_TYPE: "git"
PROJECT_DESTINATION: "git_project"
GIT:
PROJECT_ORIGIN: "https://earth.bsc.es/gitlab/ces/auto-advanced_config_example"
PROJECT_BRANCH: "main"
PROJECT_COMMIT: ""
PROJECT_SUBMODULES: ""
# Download the git project to obtain the distributed configuration
dbeltran@bsces107894: autosubmit refresh a04b
# Check the downloaded model-configuration
dbeltran@bsces107894:~/autosubmit/a04b$ ls proj/git_project/as_conf/
autosubmit_<EXPID>.yml expdef.yml jobs.yml platforms.yml
Model configuration is distributed at git.
dbeltran@bsces107894:~/autosubmit/a04b$ cat ~/as_user_conf/platforms.yml
Platforms:
MARENOSTRUM4:
USER: bsc32xxx
QUEUE: debug
MAX_WALLCLOCK: "02:00"
marenostrum_archive:
USER: bsc32xxx
transfer_node:
USER: bsc32xxx
transfer_node_bscearth000:
USER: dbeltran
bscearth000:
USER: dbeltran
nord3:
USER: bsc32xxx
ecmwf-xc40:
USER: c3d
Note
The user configuration is not distributed, it is a local file that must be edited by the user.
# Create and run the experiment, since it contains all the info!
autosubmit create a04b # if $expid/proj doesn't exists
autosubmit refresh a04b
autosubmit run a04b
The following figure shows the flow of the execution.
22 Advanced configuration example#