Is Open MPI Valgrind-clean or how can I identify real errors?
This issue has been raised many times on the mailing list, e.g., here or here. There are many situations, where Open MPI purposefully does not initialize and subsequently communicates memory, e.g., by calling writev. Furthermore, several cases are known, where memory is not properly freed upon MPI_Finalize. 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, starting with v1.5, Open MPI provides a so-called Valgrind-suppression file, that can be passed on the command line: mpirun -np 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.