Resource DetectionΒΆ

The resource manager can detect system resources, and partition these to workers. The MPI Executor accesses the resources available to the current worker when launching tasks.

Node-lists are detected by an environment variable on the following systems:

Scheduler

Nodelist Env. variable

SLURM

SLURM_NODELIST

COBALT

COBALT_PARTNAME

LSF

LSB_HOSTS/LSB_MCPU_HOSTS

PBS

PBS_NODEFILE

Flux

FLUX_URI

Flux is detected via the FLUX_URI environment variable, but unlike the other schedulers above, the nodelist itself is obtained by running flux resource list rather than parsing an environment variable directly.

These environment variable names can be modified via the resource_info libE_specs option.

On other systems, you may have to supply a node list in a file called node_list in your run directory. For example, on the ALCF system Cooley, the session node list can be obtained as follows:

cat $COBALT_NODEFILE > node_list

Resource detection can be disabled by setting libE_specs["disable_resource_manager"] = True, and users can supply run configuration options on the Executor submit line.

This will usually work sufficiently on systems that have application-level scheduling and queuing (e.g., jsrun). However, on many cluster and multi-node systems, if the built-in resource manager is disabled, then runs without a hostlist or machinefile supplied may be undesirably scheduled to the same nodes.

System detection for resources can be overridden using the resource_info libE_specs option.