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的文档。