init - Initialize the tool#

This command initializes the E4S Container Launcher by generating a profile for the first MPI library found in the environment.


e4s-cl init [ OPTIONS ] [ COMMAND ]


Positional arguments#


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.


Name of the profile to create or overwrite


Container technology to use for this profile


Identifier for the image to use when launching the container


Script to run in the container before execution


Path to a Wi4MPI installation to use for this profile

MPI analysis options#

These arguments influence the analysis.


Path to a MPI installation to use for this profile


Process launcher executable to use; default is mpirun


Arguments to use with the process launcher


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 installation to target. e4s-cl will search for a launcher and libraries in this folder. If not supplied, the environment is used.


MPI launcher to use. Defaults to mpirun.


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.


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