0

MPICH を使用する MPI fortran アプリケーションがあります。これを使用すると、問題なく起動/実行できます。

mpiexec -n 16 -f $PBS_NODEFILE   $PBS_O_WORKDIR/myMODEL.a

上記の例では、クラスターの各ノードに 8 つの CPU がある場合、2 つのノードを要求しています。

問題は、/home がヘッド ノードを介して計算ノードにマウントされている NFS であり、これらのディスクへの I/O が非常に遅いことです。さらに、私のアプリケーションには多くの I/O があり、経験上、ヘッド ノードへの NFS マウント ディスクへの過剰な I/O により、ヘッド ノードがロックされ (これは悪いことです)、完全に応答しなくなる可能性があります。

クラスタ システムには、各ノードの各 JOB 用にローカルにマウントされたディスクがあり (環境変数 TMPDIR を使用してこのディレクトリにアクセスできます)、ジョブをこのディスクで実行する必要があります。これを知っていれば、私の戦略は非常に単純です。

  1. ファイルを /home から $TMPDIR に移動します
  2. $TMPDIR でシミュレーションを開始します
  3. モデルが停止したら、アプリケーションからの出力を /home に戻します

上記のすべての手順を実行し、クラスター システム (PBS/Torque) を 1 つのノードだけに要求する場合、問題はありません。

 #!/bin/csh

 #PBS -N TESTE
 #PBS -o stdout_file.out
 #PBS -e stderr_file.err
 #PBS -l walltime=00:01:00
 #PBS -q debug
 #PBS -l mem=512mb
 #PBS -l nodes=1:ppn=8

 set NCPU        = `wc -l < $PBS_NODEFILE`
 set NNODES      = `uniq $PBS_NODEFILE | wc -l`

 cd $TMPDIR
 cp $PBS_O_WORKDIR/myMODEL.a ./myMODEL.a
 mpiexec -n $NCPU -f $PBS_NODEFILE   ./myMODEL.a

しかし、複数のノードを尋ねると

 #!/bin/csh

 #PBS -N TESTE
 #PBS -o stdout_file.out
 #PBS -e stderr_file.err
 #PBS -l walltime=00:01:00
 #PBS -q debug
 #PBS -l mem=512mb
 #PBS -l nodes=2:ppn=8

 set NCPU        = `wc -l < $PBS_NODEFILE`
 set NNODES      = `uniq $PBS_NODEFILE | wc -l`

 cd $TMPDIR
 cp $PBS_O_WORKDIR/myMODEL.a ./myMODEL.a
 mpiexec -n $NCPU -f $PBS_NODEFILE   ./myMODEL.a

次のエラーが発生しました。

[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69): ファイル /state/ で execvp エラーが発生しましたpartition1/74127.beach.colorado.edu/myMODEL.a (そのようなファイルやディレクトリはありません)

[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69): ファイル /state/ で execvp エラーが発生しましたpartition1/74127.beach.colorado.edu/myMODEL.a (そのようなファイルやディレクトリはありません)

[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69): ファイル /state/ で execvp エラーが発生しましたpartition1/74127.beach.colorado.edu/myMODEL.a (そのようなファイルやディレクトリはありません)

[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69): ファイル /state/ で execvp エラーが発生しましたpartition1/74127.beach.colorado.edu/myMODEL.a (そのようなファイルやディレクトリはありません)

[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69): ファイル /state/ で execvp エラーが発生しましたpartition1/74127.beach.colorado.edu/myMODEL.a (そのようなファイルやディレクトリはありません)

[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69): ファイル /state/ で execvp エラーが発生しましたpartition1/74127.beach.colorado.edu/myMODEL.a (そのようなファイルやディレクトリはありません)

[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69): ファイル /state/ で execvp エラーが発生しましたpartition1/74127.beach.colorado.edu/myMODEL.a (そのようなファイルやディレクトリはありません)

[proxy:0:1@compute-4-5.local] HYDU_create_process (/tmp/mvapich2-1.8.1/src/pm/hydra/utils/launch/launch.c:69): ファイル /state/ で execvp エラーが発生しましたpartition1/74127.beach.colorado.edu/myMODEL.a (そのようなファイルやディレクトリはありません)

[proxy:0:0@compute-0-1.local] HYD_pmcd_pmip_control_cmd_cb (/tmp/mvapich2-1.8.1/src/pm/hydra/pm/pmiserv/pmip_cb.c:955): アサート (!closed) に失敗しました

[proxy:0:0@compute-0-1.local] HYDT_dmxu_poll_wait_for_event (/tmp/mvapich2-1.8.1/src/pm/hydra/tools/demux/demux_poll.c:77): コールバックがエラー ステータスを返しました

[proxy:0:0@compute-0-1.local] main (/tmp/mvapich2-1.8.1/src/pm/hydra/pm/pmiserv/pmip.c:226): イベントを待っている demux エンジン エラー

[mpiexec@compute-0-1.local] HYDT_bscu_wait_for_completion (/tmp/mvapich2-1.8.1/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c:70): プロセスの 1 つが異常終了しました。中止する

[mpiexec@compute-0-1.local] HYDT_bsci_wait_for_completion (/tmp/mvapich2-1.8.1/src/pm/hydra/tools/bootstrap/src/bsci_wait.c:23): ランチャーが完了待ちエラーを返しました

[mpiexec@compute-0-1.local] HYD_pmci_wait_for_completion (/tmp/mvapich2-1.8.1/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c:191): ランチャーが完了待ちエラーを返しました

[mpiexec@compute-0-1.local] main (/tmp/mvapich2-1.8.1/src/pm/hydra/ui/mpich/mpiexec.c:405): 完了待ちのプロセス マネージャー エラー

私は何を間違っていますか?

4

1 に答える 1

3

mvapich が 2 番目のノードでプロセスを開始しているときに、実行可能ファイルが見つからないように見えます。mpiexec の前に以下を追加して、実行可能ファイルと必要なものをノード スクラッチ ディレクトリにコピーしてみてください。私は csh ユーザーではないので、これをもっとうまくできるかもしれません。

foreach n ( `uniq $PBS_NODEFILE` )
    scp $PBS_O_WORKDIR/myMODEL.a $n:$TMPDIR
end
于 2014-08-27T13:15:52.877 に答える