MUST

MUST is a correctness checker for MPI programs. It offers detailed information on possible problems with a piece of code.

This page demonstrates usage on our systems and offers a short tour of some of the functionality – please see the website for more details on the project webpage.

Basic usage

Before using, please execute the following to make the software available:


module add must

Optional step, recompile the MPI program with the -g compiler flag (will allow MUST to include source file line information in its output), e.g.


mpicc -g -o example_program example_program.c

mpif90 -g -o example_program example_program.f90

For the simplest method of running the software, an additional MPI process is required to run the correctness checks.

Short, undemanding runs on a login node (here running example_program with 4 MPI ranks):


mustrun -np 5 ./example_program

This should create directories called must_temp , MUST_Output-files and a file called MUST_Output.html in the current working directory. Either view MUST_Output.html on a login node with a web browser, or transfer the files to your desktop first.

It is advisable to delete must_temp , MUST_Output-files and MUST_Output.html before each run of the tool.