LaunchMON is a software infrastructure that enables HPC run-time tools to co-locate tool daemons with a parallel job. Its API allows a tool to identify all the remote processes of a job and to scalably launch daemons into the relevant nodes.
LaunchMON requires the following packages to build
libelf
boost
boost-devel
libgcrypt >= 1.4.5
libgcrypt-devel >= 1.4.5
libgpg-error >= 1.7.0
# for secure handshake
munge
The following is the simplest way to configure, build and install the LaunchMON package from the source checked out from this repo.
If you are building from a distribution, skip to step (2).
(1) cd
into the root directory of this package
(2) Bootstrap the package:
% ./bootstrap
(3) Configure:
% ./configure --prefix=/foo/tool/lmon --with-test-rm=slurm
For example, the above configuration command will configure the package. The optional --prefix switch will set /foo/tool/lmon as the prefix directory for installation; the optional --with-test-rm will configure test cases to be built for SLURM resource manager (RM).
./configure --help
prints other available configuration
options.
(4) Build:
% make
will build the package directly within the source tree.
(5) Install:
% make install
(6) Smoke test:
% make check
will build the test codes in the test/src directory within the source tree.
cd test/src
directory under the source directory
and run test.launch_1
and test.attach_1
as your smoke tests.
Note that these test cases assume that you alreay have an
allocation (or interactive partition) under the invoking
shell so that RM job launcher (e.g. srun) can launch
and execute a parallel target application. Also ensure that '.' is in
your $PATH when you run the smoke test scripts.
LaunchMON and its dependencies are also packaged via the Spack package manager. It can be installed with the following commands:
git clone https://github.com/spack/spack.git
cd spack
./bin/spack install launchmon