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=1before 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 eachlauncherprocess. 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
launcherprocess. This way, an application which uses OpenMP or PThreads can still use multiple threads without those threads migrating to hardware contexts which belong to otherlauncherprocesses.
- 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_NODELISTenv. 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).