openmpi with valgrind(我可以在Ubuntu发行版中用MPI编译吗?)

时间:2012-06-18 06:16:23

标签: mpi valgrind openmpi

我有一个天真的问题: 我编译了Openmpi 1.4.4的一个版本。与Valgrind:

./configure --prefix=/opt/openmpi-1.4.4/ --enable-debug --enable-memchecker --with-valgrind=/usr....

我想做记忆检查。

通常用于debuggin(和运行)我在Ubuntu分发中用OpenMPI编译它

CC =            mpic++
CCFLAGS =   -g

问题是,我可以使用Ubuntu发行版MPI 1.4.3编译我的代码,然后使用此modified(valgrind)mpirun版本运行:

mpirun -np 8 valgrind ....

1 个答案:

答案 0 :(得分:3)

您可以随时使用任何MPI实现和任何valgrind执行mpirun -np 8 valgrind ...位。但是,当然,您不会(通常)获得内置于OpenMPI安装中的memchecker的全部好处,该安装是在启用memcheck并指向valgrind的情况下构建的。

另请注意,如果你这样做,你可能会在MPI例程中从valgrind那里得到很多误报;你可以通过为你的股票Ubuntu OpenMPI构建valgrind MPI包装器来改进它,如Valgrind manual中所述。

但是,对于使用一个MPI发行版编译代码并将其与另一个MPI发行版一起运行,这只能导致问题,无论整个有没有valgrind的东西。在实践中,OpenMPI 1.4.3和1.4.4足够相似,它可能会起作用,但我不推荐它,因为它只是引入了不确定性 - 而且你运行valgrind的原因无论如何都是为了追踪问题,对?引入一个可能出现问题的新地方是没有意义的。