Frequently Asked Questions#

The experiment directories fill up my quota on the home directory. What can I do?

There are different options:

  • You can share the ICON model and/or Python virtual environment by running the init script with the --share option (see here for details).

  • You can set the place where to put the directories. To do so, modify SCRATCH_DIR (and possibly SCRATCH_PROJECT_DIR, which defaults to PROJECT) in conf/common/platforms.yml. The expid directories will be placed in /%SCRATCH_DIR%/%SCRATCH_PROJECT_DIR%/%USER%/.

  • You can move/archive/remove old experiments. However, make sure to keep all necessary information. You can also re-use a moved directory, if the scratch directory is properly updated. The only issue that arise is when recompiling the model: in this case only a complete new build is possible, no incremental build.

Is there an easy way to convert an existing namelist to a yaml file?

The easiest is with the f90nml python package to read in the nml and write it as yaml. It provides a command line interface:

f90nml --format yaml input.nml output.yml

Alternatively, there is a workaround based on the sed command:

sed -e '1 i\NAMELIST:' -e "/^\&[[:alpha:]]*/s/[[:space:]]*$/:/" -e "/^\&[[:alpha:]]*/s/\&/  /" -e "/^\/[[:space:]]*/s/.*//" -e "/.*=.*/s/^[[:space:]]*/    /" -e "/.*=.*/s/[[:space:]]*=/:/" -e 's/!/#/g' namelist.nml > namelist_new.yml

This command adds the required NAMELIST section, replaces ampersand & by an intendation and adds the colon and replaces all equal signs with the required colons. Afterwards only few changes have to be done:

  • All lists have to be made to lists by embracing them with square brackets [ ... ].

  • Boolean values have to be converted to False and True, e.g. by case-insensitive search and replace.

  • If there are multiple output groups output_nml, add a unique suffix to each of them, e.g. output_nml-1, output_nml-2

  • Placeholders (esp. bash variables ${...}) might need to be replaced.

Autosubmit reports that my ssh connection is not password-less.

Performing ssh user@hpc.arch.itectu.re works:

Sometimes Autosubmit can hang up on these connections, if once some error occurred, when logging in. Logging off and on (from the machine where Autosubmit runs on) usually solves this issue.

Performing ssh user@hpc.arch.itectu.re does not work:

Check your ssh key and that you have set up the ssh-agent (`ssh-add -l` list all currently unlocked keys). Remember, that setting up the ssh-agent has to be done again each time you log on.:::

Autosubmit create fails. How can I resolve it?

If autosubmit create <expid> results in [ERROR] Trace: 'str' object has no attribute 'items', you can delete the file <expid>/conf/metadata/experiment_data.yml and repeat autosubmit create <expid>. Alternatively, upgrade your experiment to use an Autosubmit version >=4.1.

This is a current error in the Autosubmit configparser reading in the previous configuration.

A job has failed, I have resolved it. How can I rerun the job?

If you did not update the configuration, you can just set the status of all failed jobs to ‘ready’ and run the experiment again:

autosubmit setstatus <expid> -fs FAILED -t READY -s -np
autosubmit run <expid>

The setstatus command of Autosubmit offers further flexibility on setting the job status, for further info there is a short overview and the official documentation.

If the configuration did change, the above should also work (run checks for an updated configuration). If it does not work, you have to create your workflow again (autosubmit create <expid>) and set all jobs that are already completed to the completed state with autosubmit setstatus.

Job error: “module: command not found”

This error usually comes if not all bash initialization files are correctly processed on login. Specifically, the file /etc/bashrc has to be sourced, which is by default done by the (user-local) file ~/.bashrc (which again is sourced by ~/.bash_profile). If one of the latter files is created by hand by a user, this might cause problems.

We strongly recommend, that /etc/skel/.bashrc is taken as the base for all user ~/.bashrc files to prevent this. User modifications can then be added to it.

I want to re-use my configuration. Do I have to copy everything by hand?

No. The easiest way to do so is to branch the cloned git repository, push the configuration and pull it in the new experiment. Follow these instructions to do so.