Execution Environment (--execenv)#

High Performance Computing (HPC) Plugins#

SIERRA is capable of adapting its runtime infrastructure to a number of different HPC environments so that experiments can be run efficiently on whatever computational resources a researcher has access to. SIERRA makes the following assumptions about the HPC environments corresponding to the plugins listed on this page:

You may want to built e.g., ARGoS natively for your HPC cluster for maximum efficiency; if your HPC cluster is 1/2 Intel chips and 1/2 AMD chips, you may want to compile your Engine twice, natively on each chipset. If you do this, you can set SIERRA_ARCH prior to invoking SIERRA so that the correct invocation commands can be generated, depending on what the chipset is for the nodes you request for your HPC job. Similarly, you may want to build your Project .so (if your project is C/C++) natively on each different type of compute node SIERRA might be run on, for maximum efficiency.

Common HPC Cmdline Options#

sierra - CLI interface#

sierra [--exec-jobs-per-node EXEC_JOBS_PER_NODE] [--exec-devnull] [--exec-no-devnull]
       [--exec-resume] [--exec-strict]
sierra Stage 2 options#

Options for running experiments

  • --exec-jobs-per-node EXEC_JOBS_PER_NODE -

    Specify the maximum number of parallel jobs to run per allocated node. By default this is computed from the selected HPC environment for maximum throughput given the desired --n-runs and CPUs per allocated node. However, for some environments being able to override the computed default can be useful.

    (default: None)

  • --exec-devnull -

    Redirect ALL output from simulations to /dev/null. Useful for engine where you can't disable all INFO messages at compile time, and don't want to have to grep through lots of redundant stdout files to see if there were any errors.

  • --exec-no-devnull -

    Don't redirect ALL output from simulations to /dev/null. Useful for engines where you can't disable all INFO messages at compile time, and don't want to have to grep through lots of redundant stdout files to see if there were any errors.

  • --exec-resume -

    Resume a batch experiment that was killed/stopped/etc last time SIERRA was run.

  • --exec-strict -

    If passed, then if any experimental commands fail during stage 2 SIERRA will exit, rather than try to keep going and execute the rest of the experiments.

    Useful for:

    • "Correctness by construction" experiments, where you know if SIERRA doesn't crash and it makes it to the end of your batch experiment then none of the individual experiments crashed.

    • CI pipelines.

Prefect-based Plugins#

SIERRA is capable of adapting its runtime infrastructure to use Prefect flows so that experiments can be submitted to configured prefect servers, or run locally. The names of prefect plugins begin with prefectserver instead of prefect to avoid sys.path conflicts with the prefect package which will otherwise arise.

Real Robot Plugins#

SIERRA is capable of adapting its runtime infrastructure to a number of different robots.

Additional execution environments can be supported via New Execution Environment Plugin (--execenv).