0

素朴な質問があります。Openmpi 1.4.4 のバージョンをコンパイルしました。Valgrind を使用:

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

メモリチェックをしたい。

通常、デバッグ(および実行)のために、UbuntuディストリビューションでOpenMPIでコンパイルします

CC =            mpic++
CCFLAGS =   -g

問題は、Ubuntu ディストリビューション MPI 1.4.3 だけでコードをコンパイルし、このmodified(valgrind) mpirun バージョンで実行できるかどうかです。

mpirun -np 8 valgrind ....

?

4

1 に答える 1

3

mpirun -np 8 valgrind ...任意の MPI 実装と任意の valgrind でいつでもビットを実行できます。しかし、memcheck を有効にして valgrind を指定して構築した OpenMPI インストールに組み込まれた memchecker の利点を (もちろん) 十分に活用することはできません。

これを行うと、MPI ルーチンの valgrind から多くの誤検知が発生する可能性があることに注意してください。Valgrind マニュアルで説明されているように、ストック Ubuntu OpenMPI 用の valgrind MPI ラッパーをビルドすることで、これを改善できます。

しかし、ある MPI ディストリビューションでコードをコンパイルし、別のディストリビューションで実行すると、valgrind の有無に関係なく、問題が発生するだけです。実際には、OpenMPI 1.4.3 と 1.4.4 は十分に類似しており、おそらく機能しますが、不確実性が生じるだけなのでお勧めしません。とにかく valgrind を実行している理由は、問題を追跡することです。右?問題が発生する可能性のある新しい場所を導入しても意味がありません。

于 2012-06-18T13:27:21.977 に答える