MPI Resources Module

Manages libensemble resources related to MPI tasks launched from nodes.

exception mpi_resources.MPIResourcesException

Resources module exception

mpi_resources.get_MPI_variant()

Returns MPI base implementation

Returns:

mpi_variant – MPI variant ‘aprun’ or ‘jsrun’ or ‘msmpi’ or ‘mpich’ or ‘openmpi’ or ‘srun’

Return type:

str

mpi_resources.get_MPI_runner(mpi_runner=None)

Return whether mpirun is openmpi or mpich

Return type:

str

mpi_resources.task_partition(num_procs, num_nodes, procs_per_node, machinefile=None)

Takes provided nprocs/nodes/ranks and outputs working configuration of procs/nodes/ranks or error

Parameters:
  • num_procs (int | None) –

  • num_nodes (int | None) –

  • procs_per_node (int | None) –

  • machinefile (str | None) –

Return type:

Tuple[None, None, None] | Tuple[int, int, int]

mpi_resources.get_resources(resources, num_procs=None, num_nodes=None, procs_per_node=None, hyperthreads=False)

Reconciles user-supplied options with available worker resources to produce run configuration.

Detects resources available to worker, checks whether an existing user-supplied config is valid, and fills in any missing config information (i.e., num_procs/num_nodes/procs_per_node)

User-supplied config options are honored, and an exception is raised if these are infeasible.

mpi_resources.create_machinefile(resources, machinefile=None, num_procs=None, num_nodes=None, procs_per_node=None, hyperthreads=False)

Creates a machinefile based on user-supplied config options, completed by detected machine resources

Parameters:
  • resources (resources.Resources) –

  • machinefile (str | None) –

  • num_procs (int) –

  • num_nodes (int | None) –

  • procs_per_node (int | None) –

  • hyperthreads (bool) –

Return type:

Tuple[bool, None, int, int]

mpi_resources.get_hostlist(resources, num_nodes=None)

Creates a hostlist based on user-supplied config options.

completed by detected machine resources