Linux と Intel MPI を 2 台のマシンにインストールしました。
(1) 24 コア (Intel Xeon X7542 X 4) を搭載したかなり古い (~8 年前の) SuperMicro サーバー。メモリ32GB。OS:CentOS7.5
(2) 32 コア (Intel Xeon Gold 6130 X 2) を搭載した新しい HP ProLiant DL380 サーバー。メモリ64GB。OS: OpenSUSE Leap 15
OS と Intel MPI をインストールした後、Intel MPI ベンチマークをコンパイルして実行しました。
$ mpirun -np 4 ./IMB-EXT
IMB-EXT と IMB-RMA を実行しているときに同じエラーが発生するのは非常に驚くべきことですが、OS とすべてが異なります (Intel MPI ベンチマークのコンパイルに使用される GCC バージョンも異なります。CentOS では GCC 6.5 を使用しました。 0 で、OpenSUSE では GCC 7.3.1 を使用しました)。
CentOS マシンでは、次のようになります。
#---------------------------------------------------
# Benchmarking Unidir_Put
# #processes = 2
# ( 2 additional processes waiting in MPI_Barrier)
#---------------------------------------------------
#
# MODE: AGGREGATE
#
#bytes #repetitions t[usec] Mbytes/sec
0 1000 0.05 0.00
4 1000 30.56 0.13
8 1000 31.53 0.25
16 1000 30.99 0.52
32 1000 30.93 1.03
64 1000 30.30 2.11
128 1000 30.31 4.22
OpenSUSE マシンでは、
#---------------------------------------------------
# Benchmarking Unidir_Put
# #processes = 2
# ( 2 additional processes waiting in MPI_Barrier)
#---------------------------------------------------
#
# MODE: AGGREGATE
#
#bytes #repetitions t[usec] Mbytes/sec
0 1000 0.04 0.00
4 1000 14.40 0.28
8 1000 14.04 0.57
16 1000 14.10 1.13
32 1000 13.96 2.29
64 1000 13.98 4.58
128 1000 14.08 9.09
mpirun を使用しない場合 (IMB-EXT を実行するプロセスが 1 つしかないことを意味します)、ベンチマークは実行されますが、Unidir_Put は >=2 プロセスを必要とするため、あまり役に立ちません。 MPI_Put と MPI_Get を使用すると、(私の経験から) 予想よりも非常に遅くなります。また、OpenSUSE マシンで MVAPICH を使用しても役に立ちませんでした。出力は次のとおりです。
#---------------------------------------------------
# Benchmarking Unidir_Put
# #processes = 2
# ( 6 additional processes waiting in MPI_Barrier)
#---------------------------------------------------
#
# MODE: AGGREGATE
#
#bytes #repetitions t[usec] Mbytes/sec
0 1000 0.03 0.00
4 1000 17.37 0.23
8 1000 17.08 0.47
16 1000 17.23 0.93
32 1000 17.56 1.82
64 1000 17.06 3.75
128 1000 17.20 7.44
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= PID 49213 RUNNING AT iron-0-1
= EXIT CODE: 139
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal 11)
This typically refers to a problem with your application.
Please see the FAQ page for debugging suggestions
更新: OpenMPI をテストしましたが、問題なく動作しました (ただし、私のアプリケーションは openmpi の使用を推奨していませんが、Intel MPI または MVAPICH が機能しない理由はまだわかりません...)
#---------------------------------------------------
# Benchmarking Unidir_Put
# #processes = 2
# ( 2 additional processes waiting in MPI_Barrier)
#---------------------------------------------------
#
# MODE: AGGREGATE
#
#bytes #repetitions t[usec] Mbytes/sec
0 1000 0.06 0.00
4 1000 0.23 17.44
8 1000 0.22 35.82
16 1000 0.22 72.36
32 1000 0.22 144.98
64 1000 0.22 285.76
128 1000 0.30 430.29
256 1000 0.39 650.78
512 1000 0.51 1008.31
1024 1000 0.84 1214.42
2048 1000 1.86 1100.29
4096 1000 7.31 560.59
8192 1000 15.24 537.67
16384 1000 15.39 1064.82
32768 1000 15.70 2086.51
65536 640 12.31 5324.63
131072 320 10.24 12795.03
262144 160 12.49 20993.49
524288 80 30.21 17356.93
1048576 40 81.20 12913.67
2097152 20 199.20 10527.72
4194304 10 394.02 10644.77
これらのサーバーに MPI をインストールしたり、OS をインストールしたりする際に何か不足している可能性はありますか? 実際、OSが問題だと思いますが、どこから始めればよいかわかりません...
事前にどうもありがとう、
ジェー