12.7. Using Valgrind to Find Open MPI Application Errors

The Valgrind utilities may be useful in identifying application logic errors. However, there are many situations where Open MPI purposefully does not initialize and subsequently communicate memory, e.g., by calling writev(2). Furthermore, several cases are known where memory is not properly freed when MPI is finalized.

This certainly does not help distinguishing real errors from false positives. Valgrind provides functionality to suppress errors and warnings from certain function contexts.

In an attempt to ease debugging using Valgrind, Open MPI provides a Valgrind suppression file, that can be passed on the command line:

shell$ mpirun -n 2 valgrind --suppressions=$PREFIX/share/openmpi/openmpi-valgrind.supp

More information on suppression files and how to generate them can be found in Valgrind’s documentation.