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