Launcher version 3.1
Launcher v 3.1. The new version includes:
- Automatic process binding and die partitioning - We're preparing for the many-core era by giving Launcher the ability to bind processes to cores or logical contexts (for hyperthreaded systems). Processor layout is determined by using the hwloc tools (https://www.open-mpi.org/projects/hwloc/). If you want to use process binding, then you MUST install this prerequisite.
- To use, set:
export LAUNCHER_BIND=1
before callingparamrun
- Launcher uses the values of
LAUNCHER_NHOSTS
,LAUNCHER_PPN
, and the information returned by hwloc to determine the number of contexts to give to eachlauncher
process. If you are using scheduler integration, these values will be determined through your scheduler's regular mechanisms. - The binding strategy is to provide the largest contiguous range of hardware contexts to each
launcher
process. This way, an application which uses OpenMP or PThreads can still use multiple threads without those threads migrating to hardware contexts which belong to otherlauncher
processes.
- To use, set:
- Changes to environment passing - For multi-node Launcher jobs, the environment of the master node is passed to all other nodes. We've excluded the
SLURM_NODELIST
env. variable from the passed environment in order to get around an issue when using zsh.
As always, feel free to submit issues and requests. If anyone wishes to get involved with the Launcher project with code contributions, documentation, telling others about launcher, let us know at the launcher-users group (https://groups.google.com/forum/#!forum/launcher-users).