/usr/...
ではなく、/commun/data/packages/openmpi/
でコンパイルされたopenmpiをインストールしました--with-sge
。
http://docs.oracle.com/cd/E19080-01/n1.grid.eng6/817-5677/6ml49n2c0/index.htmlに記載されているように、SGE に新しい PE を追加しました。
# /commun/data/packages/openmpi/bin/ompi_info | grep gridengine
MCA ras: gridengine (MCA v2.0, API v2.0, Component v1.6.3)
# qconf -sq all.q | grep pe_
pe_list make orte
SGE がなければ、プログラムは複数のプロセッサを使用して問題なく実行されます。
/commun/data/packages/openmpi/bin/orterun -np 20 ./a.out args
プログラムを SGE に提出したい
Open MPI FAQで、次のように読みました。
# Allocate a SGE interactive job with 4 slots
# from a parallel environment (PE) named 'orte'
shell$ qsh -pe orte 4
しかし、私の出力は次のとおりです。
qsh -pe orte 4
Your job 84550 ("INTERACTIVE") has been submitted
waiting for interactive job to be scheduled ...
Could not start interactive job.
mpirun
スクリプトに埋め込まれたコマンドも試しました:
$ cat ompi.sh
#!/bin/sh
/commun/data/packages/openmpi/bin/mpirun \
/path/to/a.out args
しかし、それは失敗します
$ cat ompi.sh.e84552
error: executing task of job 84552 failed: execution daemon on host "node02" didn't accept task
--------------------------------------------------------------------------
A daemon (pid 18327) died unexpectedly with status 1 while attempting
to launch so we are aborting.
There may be more information reported by the environment (see above).
This may be because the daemon was unable to find all the needed shared
libraries on the remote node. You may set your LD_LIBRARY_PATH to have the
location of the shared libraries on the remote nodes and this will
automatically be forwarded to the remote nodes.
--------------------------------------------------------------------------
error: executing task of job 84552 failed: execution daemon on host "node01" didn't accept task
--------------------------------------------------------------------------
mpirun noticed that the job aborted, but has no info as to the process
that caused that situation.
どうすればこれを修正できますか?
openmpi メーリング リストで回答してください: http://www.open-mpi.org/community/lists/users/2013/02/21360.php