12.7. 使用Valgrind检测Open MPI应用程序错误

Valgrind工具可能有助于识别应用程序逻辑错误。然而,在许多情况下,Open MPI会故意不初始化并随后传递内存,例如通过调用writev(2)。此外,已知在某些情况下,当MPI终止时内存未被正确释放。

这无疑无助于区分真正的错误与误报。Valgrind提供了抑制特定函数上下文中错误和警告的功能。

为了简化使用Valgrind进行调试的过程,Open MPI提供了一个Valgrind抑制文件,可以通过命令行传递:

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

有关抑制文件及其生成方式的更多信息,请参阅Valgrind的文档