################### Variables reference ################### Autosubmit uses a variable substitution system to facilitate the development of the templates. These variables can be used on templates with the syntax ``%VARIABLE_NAME%``. All configuration variables that are not related to the current job or platform are available by accessing first their parents, e.g. ``%PROJECT.PROJECT_TYPE% or %DEFAULT.EXPID%``. You can review all variables at any given time by using the :ref:`report ` command, as illustrated below. .. code-block:: console :caption: Example usage of ``autosubmit report`` $ autosubmit report $expid -all The command will save the list of variables available to a file in the experiment area. The groups of variables of Autosubmit are detailed in the next sections on this page. .. note:: All the variable tables are displayed in alphabetical order. .. note:: Custom configuration files (e.g. ``my-file.yml``) may contain configuration like this example: .. code-block:: yaml MYAPP: MYPARAMETER: 42 ANOTHER_PARAMETER: 1984 If you configure Autosubmit to include this file with the rest of your configuration, then those variables will be available to each job as ``%MYAPP.MYPARAMETER%`` and ``%MYAPP.ANOTHER_PARAMETER%``. Job variables ============= These variables are relatives to the current job. These variables appear in the output of the :ref:`report ` command with the pattern ``JOBS.${JOB_ID}.${JOB_VARIABLE}=${VALUE}``. They can be used in templates with ``%JOB_VARIABLE%``. .. autosubmit-variables:: job The following variables are present only in jobs that contain a date (e.g. ``RUNNING=date``). .. autosubmit-variables:: chunk Custom directives ----------------- There are job variables that Autosubmit automatically converts into directives for your batch server. For example, ``NUMTHREADS`` will be set in a Slurm platform as ``--SBATCH --cpus-per-task=$NUMTHREADS``. However, the variables in Autosubmit do not contain all the directives available in each platform like Slurm. For values that do not have a direct variable, you can use ``CUSTOM_DIRECTIVES`` to define them in your target platform. For instance, to set the number of GPU's in a Slurm job, you can use ``CUSTOM_DIRECTIVES=--gpus-per-node=10``. Platform variables ================== These variables are relative to the platforms defined in each job configuration. The table below shows the complete set of variables available in the current platform. These variables appear in the output of the :ref:`report ` command with the pattern ``JOBS.${JOB_ID}.${PLATFORM_VARIABLE}=${VALUE}``. They can be used in templates with ``%PLATFORM_VARIABLE%``. A series of variables is also available in each platform, and appear in the output of the :ref:`report ` command with the pattern ``JOBS.${JOB_ID}.PLATFORMS.${PLATFORM_ID}.${PLATFORM_VARIABLE}=${VALUE}``. They can be used in templates with ``PLATFORMS.%PLATFORM_ID%.%PLATFORM_VARIABLE%``. .. autosubmit-variables:: platform .. note:: The variables ``_USER``, ``_PROJ`` and ``_BUDG`` have no value on the LOCAL platform. Certain variables (e.g. ``_RESERVATION``, ``_EXCLUSIVITY``) are only available for certain platforms (e.g. MareNostrum). A set of variables for the experiment's default platform are also available. .. TODO: Some variables do not exist anymore, like HPCHOST, HPCUSER, HPCDUG, etc. .. list-table:: :widths: 25 75 :header-rows: 1 * - Variable - Description * - **HPCARCH** - Default HPC platform name. * - **HPCHOST** - Default HPC platform url. * - **HPCUSER** - Default HPC platform user. * - **HPCPROJ** - Default HPC platform project. * - **HPCBUDG** - Default HPC platform budget. * - **HPCTYPE** - Default HPC platform scheduler type. * - **HPCVERSION** - Default HPC platform scheduler version. * - **SCRATCH_DIR** - Default HPC platform scratch folder path. * - **HPCROOTDIR** - Default HPC platform experiment's folder path. Other variables ================= .. autosubmit-variables:: config .. autosubmit-variables:: default .. autosubmit-variables:: experiment .. autosubmit-variables:: project .. note:: Depending on your project type other variables may be available. For example, if you choose Git, then you should have ``%PROJECT_ORIGIN%``. If you choose Subversion, then you will have ``%PROJECT_URL%``. Performance Metrics variables ============================= These variables apply only to the :ref:`report ` subcommand. .. list-table:: :widths: 25 75 :header-rows: 1 * - Variable - Description * - **ASYPD** - Actual simulated years per day. * - **CHSY** - Core hours per simulated year. * - **JPSY** - Joules per simulated year. * - **Parallelization** - Number of cores requested for the simulation job. * - **RSYPD** - Raw simulated years per day. * - **SYPD** - Simulated years per day. .. FIXME: this link is broken, and should probably not be under wuruchi's .. gitlab account. .. For more information about these metrics please visit .. https://earth.bsc.es/gitlab/wuruchi/autosubmitreact/-/wikis/Performance-Metrics.