init - Initialize the tool#
This command initializes the E4S Container Launcher by generating a profile for the first MPI library found in the environment.
Usage#
e4s-cl init [ OPTIONS ] [ COMMAND ]
Arguments#
Positional arguments#
- COMMAND
The MPI command to analyze instead of the default values. You can use a launcher and arguments here. This is needed if the binaries the library produces are non-standard. Optional.
Common options#
These arguments’ values will be directly added to the created profile.
- --profile
Name of the profile to create or overwrite
- --backend
Container technology to use for this profile
- --image
Identifier for the image to use when launching the container
- --source
Script to run in the container before execution
- --wi4mpi
Path to a Wi4MPI installation to use for this profile
MPI analysis options#
These arguments influence the analysis.
- --mpi
Path to a MPI installation to use for this profile
- --launcher
Process launcher executable to use; default is
mpirun
- --launcher_args
Arguments to use with the process launcher
Description#
This command is intended to be run once for any given MPI library, and will create a profile to substitute that library in a container.
This is done by tracing the execution of a program using a given MPI library. The opened files and libraries will be detected, filtered, and stored in a profile.
It is highly encouraged to load the MPI library beforehand using the module system available (spack
/modules
/lmod
) to ensure the paths and dependencies are valid and loaded.
A profile name will be generated from the version of the found MPI library. Make sure it corresponds to the library you want to use, or continue to the below section.
Changing launcher and libraries#
e4s-cl can load an MPI library and run it without any other information. This is however a very generic operation that may fail on your system. The following options can be used to tune this process:
- --mpi
MPI installation to target. e4s-cl will search for a launcher and libraries in this folder. If not supplied, the environment is used.
- --launcher
MPI launcher to use. Defaults to
mpirun
.- --launcher_args
Options to pass to the MPI launcher. Defaults to the empty string.
Alternatively, you can override the above options by providing a full command to run. This will require to compile an executable beforehand.
The importance of inter-process communication
This process relies on the execution of a sample MPI program to discover its dependencies. In rare cases, a library will lazy-load network libraries, preventing them from being detected with a simple example. A message will appear in case some limitations were detected.
Examples#
Initializing using MPI resources from the environment:
module load mpich
e4s-cl init # Will use the launcher and library from the mpich module
Using srun
with special arguments:
module load cray-mpich-abi
e4s-cl init --launcher srun
--launcher_args "-A account-name -n 2 -N 2 -t 00:00:30"
Using a library installed on the system in /packages
:
e4s-cl init --mpi /packages/mpich --profile mpich
Using a fully formed command and an existing executable:
$ e4s-cl init srun -n X -N Y ./executable