win10系统python编程使用MPI实现分布式计算(mpi4py)

参考

https://zhuanlan.zhihu.com/p/157804393?from_voters_page=true
https://www.cnblogs.com/starryxsky/p/10344344.html

什么是MPI?

MPI (Message Passing Interface)是一套标准,不是一个软件。事实上它是一套并行运算中信息传递和处理的标准,在这个标准之上,编程者可以很方便地组织自己的并行程序。

这套标准有很多种实现,比如C++,Fortran,Python的mpi4py,Matlab-MPI等等。在这些程序中调用响应的库来实现程序的并行化。

mpi4py是mpi的python接口,并不是mpi本身,所以首先要安装一个 MPI 实现软件,最好能支持 MPI-3 标准,并且最好是动态编译的。比较常用的 MPI 实现软件有 OpenMPI,MPICH 等。

安装MPI所需的环境

1. 安装openMPI

windows版本安装包OpenMPI_v1.6.2-2_win64.exe

2. 安装VSCompiler

进入微软下载链接,下载生成工具,然后直接双击进行安装。
安装

3. 安装mpi4py

废话:使用conda或者pip直接安装mpi4py遇到了很多错误,比如使用conda安装时,只适用于python2.7,无法在python3.x上安装。所以直接看下面能在python3.8上成功的方法吧。

官网选择一个版本下载(我选的3.0),本地解压后,打开cmd(最好以管理员方式打开)执行以下命令。

cd 你解压后的文件夹位置(如D://mpi4py-3.0.0)
conda activate 你的conda环境名字(如果不是conda环境请忽略)
python setup.py build
python setup.py build --mpi=other_mpi
python setup.py install

执行完这些命令后,可以执行conda list看看有没有mpi4py包,有的话,MPI就配置成功了!

4. 安装MS-MPI(可选)

如果报如下错误,则需要安装MS-MPI,若连接失效请从这里进入。

 “mpi.h”: No such file or directory

注意,msi和exe都下载安装。
在这里插入图片描述

测试

新建一个python文件test.py

from mpi4py import MPI

comm = MPI.COMM_WORLD
size = comm.Get_size()
rank = comm.Get_rank()

if rank == 0:
    msg = 'Hello, world'
    comm.send(msg, dest=1)
elif rank == 1:
    s = comm.recv()
    print("rank %d: %s" % (rank, s))
else:
    print("rank %d: idle" % (rank))

在cmd中执行MPI命令:

mpiexec -np 8 python test.py

可以看到运行结果:

rank 2: idle
rank 6: idle
rank 4: idle
rank 7: idle
rank 5: idle
rank 3: idle
rank 1: Hello, world

可以说明MPI正确地启动了8个进程, 并且给引为1的进程发送了“Hello World”,而后该进程接收到了这个信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪的期许

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值