ParaStation MPI includes sophisticated functions to control the process
placement for newly created parallel and serial tasks.
These processes typically require a dedicated CPU (core).
Upon task startup, the environment
variables
PSI_NODES
,
PSI_HOSTS
and
PSI_HOSTFILE
are looked up (in this
order) to get a predefined node list. If not defined, all
currently known nodes are taken into account. Also, the variables
PSI_NODES_SORT
,
PSI_LOOP_NODES_FIRST
,
PSI_EXCLUSIVE
and
PSI_OVERBOOK
are observed.
Based on these variables and the list of currently active
processes, a sorted list of nodes is
constructed, defining the final node list for this new task.
Beside this environment variables, node reservations for users and groups are also observed. See psiadmin(1).
In addition, only available nodes will be used to start up processes. Currently not available nodes will be ignored.
Obeying all these restrictions, the processes constructing a
parallel task will be spawned on the nodes listed within the
final node list.
For SMP systems, all available CPUs (cores) on this node
may be used for consecutive ranks, depending on the environment
variable PSI_LOOP_NODES_FIRST
.
For administrative tasks not requiring a dedicated CPU (core), e.g. processes spawned using pssh, other strategies take place. As this type of processes are intended to run on dedicated nodes, predefined by the user, the described procedure will be circumvented and the processes will be run on the user-defined nodes.
For a detailed discussion of placing processes within ParaStation, please refer to process placement(7), ps_environment(5), pssh(8) and mpiexec(8).