2

mpi4pyを使用して、python2.7のUbuntu 14.04 LTSマシンで実行していたスクリプトを作成しました。ここに最初からのスニペットがあります:

from mpi4py import MPI
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()
print comm.Get_size()

古いコンピューターで実行するmpiexec -n 3 python2.7 foo.pyと、答えが得られます。

3
3
3

最近、ソフトウェアを新しい Ubuntu 14.04 LTS サーバーに移行し始めました。そこで同じコマンドを実行すると、答えが得られます。

1
1
1

私の MPI の知識が不十分なため、どこを見ればよいかわかりませんが、明らかに何かが間違っています。MPI のバージョンを確認しようとしmpiexec --versionましたが、古いコンピューターで実行すると次のように返されます。

HYDRA build details:
    Version:                                 1.4.1p1
    Release Date:                            Thu Sep  1 13:53:02 CDT 2011
    CC:                              gcc
    CXX:                             c++
    F77:                             gfortran
    F90:                             f95
    Configure options:                       '--enable-shared' '--prefix=/opt/anaconda1anaconda2anaconda3' '--disable-option-checking' 'CC=gcc' 'CFLAGS= -O2' 'LDFLAGS= ' 'LIBS=-lrt -lpthread ' 'CPPFLAGS= -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpl/include -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpl/include -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/openpa/src -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/openpa/src -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/ch3/include -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/ch3/include -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/common/datatype -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/common/datatype -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/common/locks -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/common/locks -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/ch3/channels/nemesis/include -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/ch3/channels/nemesis/include -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/ch3/channels/nemesis/nemesis/include -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/ch3/channels/nemesis/nemesis/include -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/ch3/channels/nemesis/nemesis/utils/monitor -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/mpid/ch3/channels/nemesis/nemesis/utils/monitor -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/util/wrappers -I/home/ilan/aroot/work/mpich2-1.4.1p1/src/util/wrappers'
    Process Manager:                         pmi
    Launchers available:                      ssh rsh fork slurm ll lsf sge manual persist
    Topology libraries available:              hwloc plpa
    Resource management kernels available:    user slurm ll lsf sge pbs
    Checkpointing libraries available:
    Demux engines available:                  poll select

新しいコンピューターで実行すると、答えが得られます。

mpiexec (OpenRTE) 1.6.5

Report bugs to http://www.open-mpi.org/community/help/

ここで別の MPI 実装を実行しているため、問題が発生する可能性がありますか? どうやってそれを伝えますか?それともpython側の問題ですか?Python がまったく認識していないだけで、3 つのプロセスが開始されているようです。後者は、異なる MPI 実装を使用する mpi4py と mpiexec が原因である可能性があることを認識しています。

which mpiexecどちらかのマシンで実行すると、次のように返されます。

/home/pmj27/anaconda2/bin/mpiexec

ランニングmpi4py.get_config()リターン:

{'mpicxx': '/home/pmj27/anaconda2/bin/mpicxx', 'mpif77': '/home/pmj27/anaconda2/bin/mpif77', 'mpicc': '/home/pmj27/anaconda2/bin/mpicc', 'mpif90': '/home/pmj27/anaconda2/bin/mpif90'}
4

0 に答える 0