MPI(Message-Passing-Interface)消息传递接口
1.MPI安装
python mpi安装mpi4py的python库
pip install mpi4py
下载MicrosoftWindowsMPI安装包网址:https://github.com/icepoint666/MPI中的MSMpiSetup.rar
安装后得到Bin文件夹:
将MicrosoftMPI/Bin文件夹路径添加到环境变量:
命令行输入mpiexec运行,出现帮助表示安装成功
2.试验代码
from mpi4py import MPI
comm = MPI.COMM_WORLD
comm_rank = comm.Get_rank()
comm_size = comm.Get_size()
print 'I'm the %d process of %d processes" % (comm_rank, comm_size)
2.点对点传输
点对点通信.其实就是最简单的进程A向进程B发送信息,而进程B向进程A接收信息.这是关于两个进程之间的通信.
示例代码:
#mpip2p.py
from mpi4py import MPI
comm = MPI.COMM_WORLD
comm_rank = comm.Get_rank()
comm_size = comm.Get_size()
data = [comm_rank]*5
comm.send(data,dest=(comm_rank+1)%comm_size)
data_recv =comm.recv(source=(comm_rank-1)%comm_size)
print "my rank is %d, and Ireceived:" %comm_rank
print data_recv
在命令行中输入命令
mpiexec -n 5 python mpip2p.py
执行结果:
my rank is 4, and Ireceived:
[3, 3, 3, 3, 3]
my rank is 3, and Ireceived:
[2, 2, 2, 2, 2]
my rank is 2, and Ireceived:
[1, 1, 1, 1, 1]
my rank is 0, and Ireceived:
[4, 4, 4, 4, 4]
my rank is 1, and Ireceived:
[0, 0, 0, 0, 0]