私はPythonスクリプトから(そして、テストのためにインタラクティブに、しかしipythonからではなく)、Pythonの2つの異なるバージョンにわたって並列プロセスを起動したいと思っており、mpi4py. 2 つのバージョンは (それぞれ 2 コアと 8 コア用):
Python 2.7.2 |EPD 7.2-2 (64-bit)| (default, Sep  7 2011, 16:31:15) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
と
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
最初のもの(ロープを学ぶため)では、インタラクティブに次のようになります。
from mpi4py import MPI
import sys
size = MPI.COMM_WORLD.Get_size()
print size
1
rank = MPI.COMM_WORLD.Get_rank()
print rank
0
これは私が望んでいるものではありません(そして、やっているmpirun/mpiexec pythonハングしているようです/何もしないようです)。しかし、もしそうなら:
mpiexec -n 5 python helloworld.py
の上
#!/usr/bin/env python
from mpi4py import MPI
import sys
size = MPI.COMM_WORLD.Get_size()
rank = MPI.COMM_WORLD.Get_rank()
name = MPI.Get_processor_name()
sys.stdout.write(
    "Hello, World! I am process %d of %d on %s.\n"
    % (rank, size, name))
私は得る
Hello, World! I am process 0 of 5 on localhost.
Hello, World! I am process 1 of 5 on localhost.
Hello, World! I am process 2 of 5 on localhost.
Hello, World! I am process 3 of 5 on localhost.
Hello, World! I am process 4 of 5 on localhost.
sizePython をインタラクティブに起動するときに > 0を取得するにはどうすればよいですか?
ちなみに、動作しないのではなく実行します./helloworld.py。python helloworld.py
localhost:demo jtlz2$ mpiexec -n 5 ./helloworld.py
--------------------------------------------------------------------------
Failed to find or execute the following executable:
Host:       localhost
Executable: ./helloworld.py
Cannot continue.
--------------------------------------------------------------------------
理由はありますか?ありがとう!