2012-06-18 40 views
0

我有一个幼稚的问题: 我编一个版本1.4.4的openmpi的。与Valgrind:了openmpi用的valgrind(我能和MPI编译Ubuntu的发行版?)

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

我想做记忆体检查。

通常对于debuggin(和运行)我的openmpi编译它在Ubuntu与

CC =   mpic++ 
CCFLAGS = -g 

配电台的问题是,我可以编译我的代码只是Ubuntu的发行版MPI 1.4.3,然后用这个modified运行(valgrind)mpirun版本:

mpirun -np 8 valgrind .... 

回答

3

你总是可以做到mpirun -np 8 valgrind ...位与任何MPI实现任何的valgrind。但是,您不会(当然)获得内置于OpenMPI安装中的memchecker的全部好处,您可以使用启用memcheck并指向您的valgrind构建的memchecker。

还要注意,如果你这样做,你可能会得到很多误报从Valgrind的在MPI程序;您可以通过为您的股票Ubuntu OpenMPI构建valgrind MPI包装器来改进此问题,如Valgrind manual中所述。

但至于编译代码与一个MPI分布和另一运行它,那只能导致问题,无论是整体搭配/无Valgrind的事情。在实践中,OpenMPI 1.4.3和1.4.4非常相似,它可能会工作,但我不会推荐它,因为它只是引入了不确定性 - 无论如何你运行valgrind的原因是为了找出问题,对?介绍可能出现问题的新地方是没有意义的。