8 つのノードがあり、各ノードに 8 つのコアがあるクラスターで openMPI-1.6 を使用しています。このコマンドを使用してアプリケーションを実行しています。
/path/to/mpirun --mca btl self,sm,tcp --hostfile $PBS_NODEFILE -np $num_core /path/to/application
実験を行ったところ、次のデータが得られました。
num node | num core per node | total core | exe time of application |
1 2 2 8.5 sec
1 4 4 5.3 sec
1 8 8 7.1 sec
2 1 2 11 sec
2 2 4 9.5 sec
2 4 8 44 sec //this is too slow
ご覧のとおり、最後の行 (2 ノード、8 コア) の実行時間は他の行よりも遅すぎます。複数のノードを使用するとオーバーヘッドが発生すると想定しましたが、この指数関数的な低下は予想していませんでした。
私の質問は、複数のノードを使用するクラスターでジョブを実行するために欠落している openMPI パフォーマンス パラメーターはありますか? mca btl self,sm,tcp
パラメータは、ノード内の通信には shared-memory オプションを自動的に使用し、ノードの外部に送信される通信には 'tcp' オプションを使用すると仮定しました。私はそれを正しく理解していますか?
アプリケーションを知らずに判断するのは難しいことは承知していますが、アプリケーションに依存しない一般的なパラメータ チューニングを求めています。