我想从 python 脚本启动并行进程(并且,为了测试,交互式,但不是从 ipython),跨两个不同版本的 python,并从mpi4py
. 这两个版本是(分别适用于 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.
size
交互式启动python时如何获得> 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.
--------------------------------------------------------------------------
任何想法为什么?谢谢!