2

ストレージの問題に遭遇しましたが、うまくいきましたが、今はうまくいきません。

2台のコンピューター間でタウプロファイリングを使用してOpenMPIプログラムを実行しています。mpirun がリモート ホストで tau_exec プログラムを実行できないようです。パーミッションの問題でしょうか?

 cluster@master:~/software/mpi_in_30_source/test2$ mpirun -np 2 --hostfile hostfile -d           tau_exec -v -T MPI,TRACE,PROFILE ./hello.exe
 [master:19319] procdir: /tmp/openmpi-sessions-cluster@master_0/4568/0/0
 [master:19319] jobdir: /tmp/openmpi-sessions-cluster@master_0/4568/0
 [master:19319] top: openmpi-sessions-cluster@master_0
 [master:19319] tmp: /tmp
 [slave2:06777] procdir: /tmp/openmpi-sessions-cluster@slave2_0/4568/0/1
 [slave2:06777] jobdir: /tmp/openmpi-sessions-cluster@slave2_0/4568/0
 [slave2:06777] top: openmpi-sessions-cluster@slave2_0
 [slave2:06777] tmp: /tmp
 [master:19319] [[4568,0],0] node[0].name master daemon 0 arch ff000200
 [master:19319] [[4568,0],0] node[1].name slave2 daemon 1 arch ff000200
 [slave2:06777] [[4568,0],1] node[0].name master daemon 0 arch ff000200
 [slave2:06777] [[4568,0],1] node[1].name slave2 daemon 1 arch ff000200
 [master:19319] Info: Setting up debugger process table for applications
   MPIR_being_debugged = 0
   MPIR_debug_state = 1
   MPIR_partial_attach_ok = 1
   MPIR_i_am_starter = 0
   MPIR_proctable_size = 2
   MPIR_proctable:
     (i, host, exe, pid) = (0, master,      /home/cluster/software/mpi_in_30_source/test2/tau_exec, 19321)
     (i, host, exe, pid) = (1, slave2,      /home/cluster/software/mpi_in_30_source/test2/tau_exec, 0)
 --------------------------------------------------------------------------
 mpirun was unable to launch the specified application as it could not find an executable:

 Executable: tau_exec
 Node: slave2

 while attempting to start process rank 1.
 --------------------------------------------------------------------------
 [slave2:06777] sess_dir_finalize: job session dir not empty - leaving
 [slave2:06777] sess_dir_finalize: job session dir not empty - leaving
 [master:19319] sess_dir_finalize: job session dir not empty - leaving
 [master:19319] sess_dir_finalize: proc session dir not empty - leaving
 orterun: exiting with status -123

スレーブ2:

cluster@slave2:~/software/mpi_in_30_source/test2$ tau_exec -T MPI,TRACE,PROFILE ./hello.exe
hello MPI user: from process = 0 on machine=slave2, of NCPU=1 processes
cluster@slave2:~/software/mpi_in_30_source/test2$ which tau_exec
/home/cluster/tools/tau-2.22.2/arm_linux/bin/tau_exec

したがって、両方のノードで動作する tau_exec があります。tau_exec なしで mpirun を実行すると、すべてが機能します。

cluster@master:~/software/mpi_in_30_source/test2$ mpirun -np 2 --hostfile hostfile  ./hello.exe
hello MPI user: from process = 0 on machine=master, of NCPU=2 processes
hello MPI user: from process = 1 on machine=slave2, of NCPU=2 processes
4

4 に答える 4

2

おそらく、MPICH2 だけでなく openMPI が既にインストールされているため、root として以下のコマンドを実行する必要があります。

root~# update-alternatives --config mpirun

代替の mpirun (/usr/bin/mpirun を提供) には 2 つの選択肢があります。

セレクション | パス | プライオリティ | 状態

  • *0 | /usr/bin/mpirun.openmpi | 50 | オートモード
  • 1 | /usr/bin/mpirun.mpich2 | 40 | 手動モード
  • 2 | /usr/bin/mpirun.openmpi | 50 | 手動モード

Enter キーを押して現在の選択を保持するか [*]、または選択番号を入力します: 1

次に、上記のようにMPICHバージョンを選択して、正常に実行する必要があります。

于 2014-02-14T15:22:59.173 に答える
2

出力ファイルに名前を付けようとしたときに、このようなエラーが発生したことがあります。

    mpirun -n <number> a.out

それが私のために働いた方法です!

于 2013-11-04T21:43:36.453 に答える