Jean Zay : MUST

Description

MUST is a tool that detects usage errors of MPI library MPI during the program execution.

Usage

The module command provides access to MUST :

$ module av must
  must/1.6-mpi

In order to use the version 1.6-mpi, you have to use this following command :

$ module load must/1.6-mpi

When the module is loaded, the usage of MUST is done in two steps:

  1. Run of your program with mustrun;
  2. Visualisation of the report.

Execution

The execution in interactive mode or in batch mode is made with the mustrun command :

$ module load must/1.6-mpi
$ mustrun --must:mpiexec srun --must:np -n -n 5 my_exe

Note: the elapsed time overhead due to MUST can be very important. By adding the option –must:nocrash this overhead becomes low, but this option doesn't work if the program crashes.

Important: MUST uses an additional MPI process in order to observe the MPI behaviour of the program. Thus , it is necessary to reserve one additional task (i.e. CPU) in the slurm script to run your code with mustrun command.

Visualisation of results

MUST write a file in HTML format MUST_output.html at the end of the execution. This file could be view with any web browser.

Documentation

  • The documentation of MUST