diff --git a/docs/reference.rst b/docs/reference.rst index d8e18bd244..f2d89afaf8 100644 --- a/docs/reference.rst +++ b/docs/reference.rst @@ -93,6 +93,7 @@ Launchers parsl.launchers.SrunMPILauncher parsl.launchers.GnuParallelLauncher parsl.launchers.MpiExecLauncher + parsl.launchers.MpiRunLauncher parsl.launchers.JsrunLauncher parsl.launchers.WrappedLauncher diff --git a/docs/userguide/configuring.rst b/docs/userguide/configuring.rst index f3fe5cc407..a57e815fe7 100644 --- a/docs/userguide/configuring.rst +++ b/docs/userguide/configuring.rst @@ -536,12 +536,27 @@ Center's **Expanse** supercomputer. The example is designed to be executed on th .. literalinclude:: ../../parsl/configs/expanse.py +Improv (Argonne LCRC) +--------------------- + +.. image:: https://www.lcrc.anl.gov/sites/default/files/styles/965_wide/public/2023-12/20231214_114057.jpg?itok=A-Rz5pP9 + +**Improv** is a PBS Pro based supercomputer at Argonne's Laboratory Computing Resource +Center (LCRC). The following snippet is an example configuration that uses `parsl.providers.PBSProProvider` +and `parsl.launchers.MpiRunLauncher` to run on multinode jobs. + +.. literalinclude:: ../../parsl/configs/improv.py + + .. _configuring_nersc_cori: Perlmutter (NERSC) ------------------ NERSC provides documentation on `how to use Parsl on Perlmutter `_. +Perlmutter is a Slurm based HPC system and parsl uses `parsl.providers.SlurmProvider` with `parsl.launchers.SrunLauncher` +to launch tasks onto this machine. + Frontera (TACC) --------------- @@ -599,6 +614,8 @@ Polaris (ALCF) :width: 75% ALCF provides documentation on `how to use Parsl on Polaris `_. +Polaris uses `parsl.providers.PBSProProvider` and `parsl.launchers.MpiExecLauncher` to launch tasks onto the HPC system. + Stampede2 (TACC) diff --git a/parsl/configs/improv.py b/parsl/configs/improv.py new file mode 100644 index 0000000000..8a40282829 --- /dev/null +++ b/parsl/configs/improv.py @@ -0,0 +1,34 @@ +from parsl.config import Config +from parsl.executors import HighThroughputExecutor +from parsl.launchers import MpiRunLauncher +from parsl.providers import PBSProProvider + +config = Config( + executors=[ + HighThroughputExecutor( + label="Improv_multinode", + max_workers_per_node=32, + provider=PBSProProvider( + account="YOUR_ALLOCATION_ON_IMPROV", + # PBS directives (header lines), for example: + # scheduler_options='#PBS -l mem=4gb', + scheduler_options='', + + queue="compute", + + # Command to be run before starting a worker: + # **WARNING** Improv requires an openmpi module to be + # loaded for the MpiRunLauncher. Add additional env + # load commands to this multiline string. + worker_init=''' +module load gcc/13.2.0; +module load openmpi/5.0.3-gcc-13.2.0; ''', + launcher=MpiRunLauncher(), + + # number of compute nodes allocated for each block + nodes_per_block=2, + walltime='00:10:00' + ), + ), + ], +)