2

Cray XC30 で VASP 5.3.5 を実行すると、次のエラーが表示されます。

Rank 4 [Mon Jun  1 14:58:35 2015] [c1-0c0s2n0] Fatal error in PMPI_Allgatherv:  Invalid buffer pointer, error stack:
PMPI_Allgatherv(1235): MPI_Allgatherv(sbuf=0x49ead730, scount=1536,  MPI_DOUBLE_COMPLEX, rbuf=0x49e95730, rcounts=0x494cdba0, displs=0x494d7360, 
MPI_DOUBLE_COMPLEX, comm=0x84000007) failed
PMPI_Allgatherv(1183): Buffers must not be aliased. Consider using MPI_IN_PLACE or setting MPICH_NO_BUFFER_ALIAS_CHECK

6 か月前にコンパイルされた実行可能ファイルには存在しません。ここで何が起こっているのですか?

Cray MPICH2 7.1.1、Cray LibSci 13.0.1、および FFTW 3.3.4.1 で GCC 4.9.2 を使用しています。

4

1 に答える 1

3

これは、MPI コレクティブで重複しないバッファーを厳密に適用するようになった MPICH2 ライブラリーの変更によるものです。

理想的には、バッファーがオーバーラップしないように呼び出しを変更するか、MPI 呼び出しで MPI_IN_PLACE を指定して、MPI 標準に準拠するようにコードを変更する必要があります。

ただし、次のように設定することで、以前のバージョンの Cray MPICH2 と同じ動作に戻すことができます。

export MPICH_NO_BUFFER_ALIAS_CHECK=1

コードを実行する前に (bash では、通常、VASP への aprun 呼び出しの前に、ジョブ送信スクリプトでこれを行います)。

この問題は、VASP 5 だけでなく VASP 4 でも見られることに注意してください。

于 2015-06-01T14:15:36.507 に答える