MACHINE_SPEC_FILE
Overview
CIME looks at the XML node MACHINE_SPEC_FILE
in the config_files.xml file to identify supported out-of-the-box machines for the target model. The node has the following contents:
Entry
The following is an entry for MACHINES_SPEC_FILE
in config_files.xml
.
Only a single value is required.
<entry id="MACHINES_SPEC_FILE">
<type>char</type>
<default_value>$SRCROOT/cime_config/machines/config_machines.xml</default_value>
<group>case_last</group>
<file>env_case.xml</file>
<desc>File containing machine specifications for the target model primary component (for documentation only - DO NOT EDIT)</desc>
<schema>$CIMEROOT/CIME/data/config/xml_schemas/config_machines.xsd</schema>
</entry>
You can supplement what is in the MACHINES_SPEC_FILE by adding a config_machines.xml file to your CIME config directory.
Contents
Schema Definition
Version 3
The following is an example of a version 3.0 config_machines.xml
file. Version 3.0 breaks machine definitions into separate directories.
<config_machines version="3.0">
<NODENAME_REGEX>
<value MACH="docker">docker</value>
...
</NODENAME_REGEX>
<default_run_suffix>
...
</default_run_suffix>
</config_machines>
For each NODENAME_REGEX
entry, there should be a directory named by the value of the MACH
attribute.
In these directories is where the machines config_machines.xml
, config_batch.xml
, and .*.cmake
are stored.
The config_machines.xml
XML will only contain the machine
portion and will omit the NODENAME_REGEX
element.
Version 2
The following is an example of a version 2.0 config_machines.xml
file. This format provides a monolithic file for all machine definitions.
<config_machines version="2.0">
<machine MACH="docker">
<DESC>Docker</DESC>
<OS>LINUX</OS>
<PROXY />
<COMPILERS>gnu,gnuX</COMPILERS>
<MPILIBS>openmpi</MPILIBS>
<PROJECT>CIME</PROJECT>
<SAVE_TIMING_DIR>/storage/timings</SAVE_TIMING_DIR>
<SAVE_TIMING_DIR_PROJECTS>CIME</SAVE_TIMING_DIR_PROJECTS>
<CIME_OUTPUT_ROOT>/storage/cases</CIME_OUTPUT_ROOT>
<DIN_LOC_ROOT>/storage/inputdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/storage/inputdata-clmforc</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/storage/archive/$CASE</DOUT_S_ROOT>
<BASELINE_ROOT>/storage/baselines/$COMPILER</BASELINE_ROOT>
<CCSM_CPRNC>/storage/tools/cprnc</CCSM_CPRNC>
<GMAKE>make</GMAKE>
<GMAKE_J>4</GMAKE_J>
<TESTS>e3sm_developer</TESTS>
<BATCH_SYSTEM>none</BATCH_SYSTEM>
<SUPPORTED_BY>boutte3@llnl.gov</SUPPORTED_BY>
<MAX_TASKS_PER_NODE>8</MAX_TASKS_PER_NODE>
<MAX_MPITASKS_PER_NODE>8</MAX_MPITASKS_PER_NODE>
<mpirun mpilib="openmpi">
<executable>mpiexec</executable>
<arguments>
<arg name="ntasks">-n {{ total_tasks }}</arg>
<arg name="oversubscribe">--oversubscribe</arg>
</arguments>
</mpirun>
<module_system type="none" />
<RUNDIR>$CASEROOT/run</RUNDIR>
<EXEROOT>$CASEROOT/bld</EXEROOT>
<environment_variables>
<env name="OMPI_ALLOW_RUN_AS_ROOT">1</env>
<env name="OMPI_ALLOW_RUN_AS_ROOT_CONFIRM">1</env>
<env name="NETCDF_C_PATH">/opt/conda</env>
<env name="NETCDF_FORTRAN_PATH">/opt/conda</env>
</environment_variables>
</machine>
...
</config_machines>
XML Elements
General
Note
There are some elements; SAVE_TIMING_DIR
, SAVE_TIMING_DIR_PROJECTS
, TESTS
that are model-specific and are not required.
Element |
Description |
---|---|
DESC |
A text description of the machine. |
NODENAME_REGEX |
A regular expression used to identify the machine. |
NODE_FAIL_REGEX |
A regular expression to identify node failures. |
MPIRUN_RETRY_REGEX |
A regular expression to identify MPI run retries. |
MPIRUN_RETRY_COUNT |
The number of times to retry MPI runs. |
OS |
The machine’s operating system. |
PROXY |
Optional HTTP proxy for internet access. |
COMPILERS |
Compilers supported on the machine. |
MPILIBS |
MPI libraries supported on the machine. Multiple values may be defined by the compiler attribute. |
PROJECT |
A project or account number used for batch jobs. |
CHARGE_ACCOUNT |
The charge account for the project. |
SAVE_TIMING_DIR |
Directory for archiving timing output. |
SAVE_TIMING_DIR_PROJECTS |
Projects whose jobs archive timing output. |
CIME_OUTPUT_ROOT |
Base directory for case output. |
CIME_HTML_ROOT |
Directory for HTML output. |
CIME_URL_ROOT |
URL root for CIME. |
DIN_LOC_ROOT |
Location of the input data directory. |
DIN_LOC_ROOT_CLMFORC |
Location for CLM forcing data. |
DOUT_S_ROOT |
Root directory of short-term archive files. |
BASELINE_ROOT |
Root directory for system test baseline files. |
CCSM_CPRNC |
Location of the cprnc tool. |
PERL5LIB |
Perl library path. |
GMAKE |
GNU-compatible make tool. |
GMAKE_J |
Number of threads for gmake. |
TESTS |
List of tests to run on the machine. |
NTEST_PARALLEL_JOBS |
Number of parallel jobs for testing. |
BATCH_SYSTEM |
Batch system used on the machine. |
ALLOCATE_SPARE_NODES |
Allocate spare nodes. |
SUPPORTED_BY |
Contact information for support. |
MAX_TASKS_PER_NODE |
Maximum number of tasks per node. Multiple values may be defined by the compiler attribute. |
MEM_PER_TASK |
Memory per task. Multiple values may be defined by the compiler attribute. |
MAX_MEM_PER_NODE |
Maximum memory per node. Multiple values may be defined by the compiler attribute. |
MAX_GPUS_PER_NODE |
Maximum GPUs per node. Multiple values may be defined by the compiler attribute. |
MAX_MPITASKS_PER_NODE |
Maximum MPI tasks per node. Multiple values may be defined by the compiler attribute. |
MAX_CPUTASKS_PER_GPU_NODE |
Maximum CPU tasks per GPU node. Multiple values may be defined by the compiler attribute. |
MPI_GPU_WRAPPER_SCRIPT |
MPI GPU wrapper script. Multiple values may be defined by the compiler attribute. |
COSTPES_PER_NODE |
Cost per node. |
PROJECT_REQUIRED |
Indicates if a project is required. |
RUNDIR |
Directory for running the case. |
EXEROOT |
Directory for executable files. |
TEST_TPUT_TOLERANCE |
Throughput tolerance for tests. |
TEST_MEMLEAK_TOLERANCE |
Memory leak tolerance for tests. |
MAX_GB_OLD_TEST_DATA |
Maximum GB of old test data. |
MPI
There can be multiple mpirun
elements. The combination of attributes makes them unique.
Element |
Description |
---|---|
mpirun |
Top-level element can contain |
aprun_mode |
If |
executable |
The executable to run. |
arguments |
Arguments to the MPI executable. |
arg |
Argument to the MPI executable. |
run_exe |
Overrides the |
run_misc_suffix |
Overrides the |
<mpirun compiler="" queue="" mpilib="" threaded="" unit_testing="" comp_interface="">
<aprun_mode></aprun_mode>
<executable></executable>
<arguments>
<arg position="" name=""></arg>
</arguments>
<run_exe></run_exe>
<run_misc_suffix></run_misc_suffix>
</mpirun>
Aprun
The <aprun_mode>
element can be one of the following. The default value is ignore
.
ignore
will cause CIME to ignore its aprun module and join the values found in<arguments>
.default
will use CIME’s aprun module to generate arguments.override
behaves the same asdefault
except it will use<arguments>
to mutate the generated arguments. When using this mode aposition
attribute can be placed on<arg>
tags to specify how it’s used.
The position
attribute on <arg>
can take one of the following values. The default value is per
.
global
causes the value of the<arg>
element to be used as a global argument foraprun
.per
causes the value of the<arg>
element to be appended to each separate binary’s arguments.
Example using override
:
<executable>aprun</executable>
<aprun_mode>override</aprun_mode>
<arguments>
<arg position="global">-e DEBUG=true</arg>
<arg>-j 20</arg>
</arguments>
Sample command output:
aprun -e DEBUG=true ... -j 20 e3sm.exe : ... -j 20 e3sm.exe
Module System
Element |
Description |
---|---|
module_system |
Top-level element can contain |
init_path |
Path to the module system initialization. |
cmd_path |
Path to the module system commands. |
modules |
Can have multiple where the combination of |
command |
Command to run where |
<module_system type="" allow_error="">
<init_path lang="">
</init_path>
<cmd_path lang="">
</cmd_path>
<modules compiler="" DEBUG="" PIO_VERSION="" mpilib="" comp_interface="" gpu_type="">
<command name="">
</command>
</modules>
</module_system>
Environment Variables
Element |
Description |
---|---|
environment_variables |
Can have multiple where the |
env |
Can have multiple where the combination of |
<environment_variables compiler="" mpilib="">
<env name="" source=""></env>
</environment_variables>
Resource Limits
Element |
Description |
---|---|
resource_limits |
Can have multiple where the |
resource |
Defines the resource name and value. Can have multiples where name makes them unique. |
<resource_limits DEBUG="" mpilib="" compiler="" unit_testing="">
<resource name=""></resource>
</resource_limits>
Schema
Version 3.0
<!-- Generated with generate_xmlschema.py ../CIME/data/config/xml_schemas/config_machines_version3.xsd config_machines on 2025-03-01 -->
<!-- Attributes 'version' is optional-->
<!-- Occurrences min: 1 max: 1-->
<config_machines version="">
<!-- Occurrences min: 0 max: 1-->
<NODENAME_REGEX>
<!-- Attributes 'None' is None-->
<!-- Occurrences min: 1 max: Unlimited-->
<value None=""></value>
</NODENAME_REGEX>
<!-- Attributes 'MACH' is required-->
<!-- Occurrences min: 0 max: Unlimited-->
<machine MACH="">
<!-- Occurrences min: 1 max: 1-->
<DESC></DESC>
<!-- Occurrences min: 0 max: 1-->
<NODE_FAIL_REGEX></NODE_FAIL_REGEX>
<!-- Occurrences min: 0 max: 1-->
<MPIRUN_RETRY_REGEX></MPIRUN_RETRY_REGEX>
<!-- Occurrences min: 0 max: 1-->
<MPIRUN_RETRY_COUNT></MPIRUN_RETRY_COUNT>
<!-- Occurrences min: 1 max: 1-->
<OS></OS>
<!-- Occurrences min: 0 max: 1-->
<PROXY></PROXY>
<!-- Occurrences min: 1 max: 1-->
<COMPILERS></COMPILERS>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 1 max: Unlimited-->
<MPILIBS compiler=""></MPILIBS>
<!-- Occurrences min: 0 max: 1-->
<PROJECT></PROJECT>
<!-- Occurrences min: 0 max: 1-->
<CHARGE_ACCOUNT></CHARGE_ACCOUNT>
<!-- Occurrences min: 0 max: 1-->
<SAVE_TIMING_DIR></SAVE_TIMING_DIR>
<!-- Occurrences min: 0 max: 1-->
<SAVE_TIMING_DIR_PROJECTS></SAVE_TIMING_DIR_PROJECTS>
<!-- Occurrences min: 1 max: 1-->
<CIME_OUTPUT_ROOT></CIME_OUTPUT_ROOT>
<!-- Occurrences min: 0 max: 1-->
<CIME_HTML_ROOT></CIME_HTML_ROOT>
<!-- Occurrences min: 0 max: 1-->
<CIME_URL_ROOT></CIME_URL_ROOT>
<!-- Occurrences min: 1 max: 1-->
<DIN_LOC_ROOT></DIN_LOC_ROOT>
<!-- Occurrences min: 0 max: 1-->
<DIN_LOC_ROOT_CLMFORC></DIN_LOC_ROOT_CLMFORC>
<!-- Occurrences min: 1 max: 1-->
<DOUT_S_ROOT></DOUT_S_ROOT>
<!-- Occurrences min: 0 max: 1-->
<BASELINE_ROOT></BASELINE_ROOT>
<!-- Occurrences min: 0 max: 1-->
<CCSM_CPRNC></CCSM_CPRNC>
<!-- Occurrences min: 0 max: 1-->
<PERL5LIB></PERL5LIB>
<!-- Occurrences min: 0 max: 1-->
<GMAKE></GMAKE>
<!-- Occurrences min: 0 max: 1-->
<GMAKE_J></GMAKE_J>
<!-- Occurrences min: 0 max: 1-->
<TESTS></TESTS>
<!-- Occurrences min: 0 max: 1-->
<NTEST_PARALLEL_JOBS></NTEST_PARALLEL_JOBS>
<!-- Occurrences min: 1 max: 1-->
<BATCH_SYSTEM></BATCH_SYSTEM>
<!-- Occurrences min: 0 max: 1-->
<ALLOCATE_SPARE_NODES></ALLOCATE_SPARE_NODES>
<!-- Occurrences min: 1 max: 1-->
<SUPPORTED_BY></SUPPORTED_BY>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 1 max: Unlimited-->
<MAX_TASKS_PER_NODE compiler=""></MAX_TASKS_PER_NODE>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 0 max: 1-->
<MEM_PER_TASK compiler=""></MEM_PER_TASK>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 0 max: 1-->
<MAX_MEM_PER_NODE compiler=""></MAX_MEM_PER_NODE>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 0 max: 1-->
<MAX_GPUS_PER_NODE compiler=""></MAX_GPUS_PER_NODE>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 1 max: Unlimited-->
<MAX_MPITASKS_PER_NODE compiler=""></MAX_MPITASKS_PER_NODE>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 0 max: Unlimited-->
<MAX_CPUTASKS_PER_GPU_NODE compiler=""></MAX_CPUTASKS_PER_GPU_NODE>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 0 max: 1-->
<MPI_GPU_WRAPPER_SCRIPT compiler=""></MPI_GPU_WRAPPER_SCRIPT>
<!-- Occurrences min: 0 max: 1-->
<COSTPES_PER_NODE></COSTPES_PER_NODE>
<!-- Occurrences min: 0 max: 1-->
<PROJECT_REQUIRED></PROJECT_REQUIRED>
<!-- Attributes 'compiler' is optional,'queue' is optional,'mpilib' is optional,'threaded' is optional,'unit_testing' is optional,'comp_interface' is optional-->
<!-- Occurrences min: 1 max: Unlimited-->
<mpirun compiler="" queue="" mpilib="" threaded="" unit_testing="" comp_interface="">
<!-- Occurrences min: 0 max: 1-->
<aprun_mode></aprun_mode>
<!-- Occurrences min: 1 max: 1-->
<executable></executable>
<!-- Occurrences min: 0 max: 1-->
<arguments>
<!-- Attributes 'None' is None-->
<!-- Occurrences min: 0 max: Unlimited-->
<arg None="">
<!-- Occurrences min: 0 max: Unlimited-->
</arg>
</arguments>
<!-- Occurrences min: 0 max: 1-->
<run_exe></run_exe>
<!-- Occurrences min: 0 max: 1-->
<run_misc_suffix></run_misc_suffix>
</mpirun>
<!-- Attributes 'type' is required,'allow_error' is optional-->
<!-- Occurrences min: 1 max: 1-->
<module_system type="" allow_error="">
<!-- Attributes 'lang' is required-->
<!-- Occurrences min: 0 max: Unlimited-->
<init_path lang="">
</init_path>
<!-- Attributes 'lang' is required-->
<!-- Occurrences min: 0 max: Unlimited-->
<cmd_path lang="">
</cmd_path>
<!-- Attributes 'compiler' is optional,'DEBUG' is optional,'PIO_VERSION' is optional,'mpilib' is optional,'comp_interface' is optional,'gpu_type' is optional-->
<!-- Occurrences min: 0 max: Unlimited-->
<modules compiler="" DEBUG="" PIO_VERSION="" mpilib="" comp_interface="" gpu_type="">
<!-- Attributes 'name' is required-->
<!-- Occurrences min: 1 max: Unlimited-->
<command name="">
</command>
</modules>
</module_system>
<!-- Occurrences min: 0 max: 1-->
<RUNDIR></RUNDIR>
<!-- Occurrences min: 0 max: 1-->
<EXEROOT></EXEROOT>
<!-- Occurrences min: 0 max: 1-->
<TEST_TPUT_TOLERANCE></TEST_TPUT_TOLERANCE>
<!-- Occurrences min: 0 max: 1-->
<TEST_MEMLEAK_TOLERANCE></TEST_MEMLEAK_TOLERANCE>
<!-- Occurrences min: 0 max: 1-->
<MAX_GB_OLD_TEST_DATA></MAX_GB_OLD_TEST_DATA>
<!-- Attributes 'None' is None-->
<!-- Occurrences min: 0 max: Unlimited-->
<environment_variables None="">
<!-- Attributes 'name' is optional,'source' is optional-->
<!-- Occurrences min: 1 max: Unlimited-->
<env name="" source="">
</env>
</environment_variables>
<!-- Attributes 'DEBUG' is optional,'mpilib' is optional,'compiler' is optional,'unit_testing' is optional-->
<!-- Occurrences min: 0 max: Unlimited-->
<resource_limits DEBUG="" mpilib="" compiler="" unit_testing="">
<!-- Attributes 'name' is required-->
<!-- Occurrences min: 1 max: Unlimited-->
<resource name="">
</resource>
</resource_limits>
</machine>
<!-- Occurrences min: 0 max: 1-->
<default_run_suffix>
<!-- Occurrences min: 1 max: 1-->
<default_run_exe></default_run_exe>
<!-- Occurrences min: 1 max: 1-->
<default_run_misc_suffix></default_run_misc_suffix>
</default_run_suffix>
</config_machines>
Version 2.0
<!-- Generated with generate_xmlschema.py ../CIME/data/config/xml_schemas/config_machines.xsd config_machines on 2025-03-01 -->
<!-- Attributes 'version' is optional-->
<!-- Occurrences min: 1 max: 1-->
<config_machines version="">
<!-- Attributes 'MACH' is required-->
<!-- Occurrences min: 1 max: Unlimited-->
<machine MACH="">
<!-- Occurrences min: 1 max: 1-->
<DESC></DESC>
<!-- Occurrences min: 0 max: 1-->
<NODENAME_REGEX></NODENAME_REGEX>
<!-- Occurrences min: 0 max: 1-->
<NODE_FAIL_REGEX></NODE_FAIL_REGEX>
<!-- Occurrences min: 0 max: 1-->
<MPIRUN_RETRY_REGEX></MPIRUN_RETRY_REGEX>
<!-- Occurrences min: 0 max: 1-->
<MPIRUN_RETRY_COUNT></MPIRUN_RETRY_COUNT>
<!-- Occurrences min: 1 max: 1-->
<OS></OS>
<!-- Occurrences min: 0 max: 1-->
<PROXY></PROXY>
<!-- Occurrences min: 1 max: 1-->
<COMPILERS></COMPILERS>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 1 max: Unlimited-->
<MPILIBS compiler=""></MPILIBS>
<!-- Occurrences min: 0 max: 1-->
<PROJECT></PROJECT>
<!-- Occurrences min: 0 max: 1-->
<CHARGE_ACCOUNT></CHARGE_ACCOUNT>
<!-- Occurrences min: 0 max: 1-->
<SAVE_TIMING_DIR></SAVE_TIMING_DIR>
<!-- Occurrences min: 0 max: 1-->
<SAVE_TIMING_DIR_PROJECTS></SAVE_TIMING_DIR_PROJECTS>
<!-- Occurrences min: 1 max: 1-->
<CIME_OUTPUT_ROOT></CIME_OUTPUT_ROOT>
<!-- Occurrences min: 0 max: 1-->
<CIME_HTML_ROOT></CIME_HTML_ROOT>
<!-- Occurrences min: 0 max: 1-->
<CIME_URL_ROOT></CIME_URL_ROOT>
<!-- Occurrences min: 1 max: 1-->
<DIN_LOC_ROOT></DIN_LOC_ROOT>
<!-- Occurrences min: 0 max: 1-->
<DIN_LOC_ROOT_CLMFORC></DIN_LOC_ROOT_CLMFORC>
<!-- Occurrences min: 1 max: 1-->
<DOUT_S_ROOT></DOUT_S_ROOT>
<!-- Occurrences min: 0 max: 1-->
<BASELINE_ROOT></BASELINE_ROOT>
<!-- Occurrences min: 0 max: 1-->
<CCSM_CPRNC></CCSM_CPRNC>
<!-- Occurrences min: 0 max: 1-->
<PERL5LIB></PERL5LIB>
<!-- Occurrences min: 0 max: 1-->
<GMAKE></GMAKE>
<!-- Occurrences min: 0 max: 1-->
<GMAKE_J></GMAKE_J>
<!-- Occurrences min: 0 max: 1-->
<TESTS></TESTS>
<!-- Occurrences min: 0 max: 1-->
<NTEST_PARALLEL_JOBS></NTEST_PARALLEL_JOBS>
<!-- Occurrences min: 1 max: 1-->
<BATCH_SYSTEM></BATCH_SYSTEM>
<!-- Occurrences min: 0 max: 1-->
<ALLOCATE_SPARE_NODES></ALLOCATE_SPARE_NODES>
<!-- Occurrences min: 1 max: 1-->
<SUPPORTED_BY></SUPPORTED_BY>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 1 max: Unlimited-->
<MAX_TASKS_PER_NODE compiler=""></MAX_TASKS_PER_NODE>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 0 max: 1-->
<MEM_PER_TASK compiler=""></MEM_PER_TASK>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 0 max: 1-->
<MAX_MEM_PER_NODE compiler=""></MAX_MEM_PER_NODE>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 0 max: 1-->
<MAX_GPUS_PER_NODE compiler=""></MAX_GPUS_PER_NODE>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 1 max: Unlimited-->
<MAX_MPITASKS_PER_NODE compiler=""></MAX_MPITASKS_PER_NODE>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 0 max: Unlimited-->
<MAX_CPUTASKS_PER_GPU_NODE compiler=""></MAX_CPUTASKS_PER_GPU_NODE>
<!-- Attributes 'compiler' is optional-->
<!-- Occurrences min: 0 max: 1-->
<MPI_GPU_WRAPPER_SCRIPT compiler=""></MPI_GPU_WRAPPER_SCRIPT>
<!-- Occurrences min: 0 max: 1-->
<COSTPES_PER_NODE></COSTPES_PER_NODE>
<!-- Occurrences min: 0 max: 1-->
<PROJECT_REQUIRED></PROJECT_REQUIRED>
<!-- Attributes 'compiler' is optional,'queue' is optional,'mpilib' is optional,'threaded' is optional,'unit_testing' is optional,'comp_interface' is optional-->
<!-- Occurrences min: 1 max: Unlimited-->
<mpirun compiler="" queue="" mpilib="" threaded="" unit_testing="" comp_interface="">
<!-- Occurrences min: 0 max: 1-->
<aprun_mode></aprun_mode>
<!-- Occurrences min: 1 max: 1-->
<executable></executable>
<!-- Occurrences min: 0 max: 1-->
<arguments>
<!-- Attributes 'None' is None-->
<!-- Occurrences min: 0 max: Unlimited-->
<arg None="">
<!-- Occurrences min: 0 max: Unlimited-->
</arg>
</arguments>
<!-- Occurrences min: 0 max: 1-->
<run_exe></run_exe>
<!-- Occurrences min: 0 max: 1-->
<run_misc_suffix></run_misc_suffix>
</mpirun>
<!-- Attributes 'type' is required,'allow_error' is optional-->
<!-- Occurrences min: 1 max: 1-->
<module_system type="" allow_error="">
<!-- Attributes 'lang' is required-->
<!-- Occurrences min: 0 max: Unlimited-->
<init_path lang="">
</init_path>
<!-- Attributes 'lang' is required-->
<!-- Occurrences min: 0 max: Unlimited-->
<cmd_path lang="">
</cmd_path>
<!-- Attributes 'compiler' is optional,'DEBUG' is optional,'PIO_VERSION' is optional,'mpilib' is optional,'comp_interface' is optional,'gpu_type' is optional-->
<!-- Occurrences min: 0 max: Unlimited-->
<modules compiler="" DEBUG="" PIO_VERSION="" mpilib="" comp_interface="" gpu_type="">
<!-- Attributes 'name' is required-->
<!-- Occurrences min: 1 max: Unlimited-->
<command name="">
</command>
</modules>
</module_system>
<!-- Occurrences min: 0 max: 1-->
<RUNDIR></RUNDIR>
<!-- Occurrences min: 0 max: 1-->
<EXEROOT></EXEROOT>
<!-- Occurrences min: 0 max: 1-->
<TEST_TPUT_TOLERANCE></TEST_TPUT_TOLERANCE>
<!-- Occurrences min: 0 max: 1-->
<TEST_MEMLEAK_TOLERANCE></TEST_MEMLEAK_TOLERANCE>
<!-- Occurrences min: 0 max: 1-->
<MAX_GB_OLD_TEST_DATA></MAX_GB_OLD_TEST_DATA>
<!-- Attributes 'None' is None-->
<!-- Occurrences min: 0 max: Unlimited-->
<environment_variables None="">
<!-- Attributes 'name' is optional,'source' is optional-->
<!-- Occurrences min: 1 max: Unlimited-->
<env name="" source="">
</env>
</environment_variables>
<!-- Attributes 'DEBUG' is optional,'mpilib' is optional,'compiler' is optional,'unit_testing' is optional-->
<!-- Occurrences min: 0 max: Unlimited-->
<resource_limits DEBUG="" mpilib="" compiler="" unit_testing="">
<!-- Attributes 'name' is required-->
<!-- Occurrences min: 1 max: Unlimited-->
<resource name="">
</resource>
</resource_limits>
</machine>
<!-- Occurrences min: 0 max: 1-->
<default_run_suffix>
<!-- Occurrences min: 1 max: 1-->
<default_run_exe></default_run_exe>
<!-- Occurrences min: 1 max: 1-->
<default_run_misc_suffix></default_run_misc_suffix>
</default_run_suffix>
</config_machines>