环境:windows 10, anaconda python=3.6
mpi4py是mpi的python接口,并不是mpi本身,所以首先要安装一个 MPI 实现软件,最好能支持 MPI-3 标准,并且最好是动态编译的。比较常用的 MPI 实现软件有 OpenMPI,MPICH 等。
这里下载openMPI的windows版本安装包OpenMPI_v1.6.2-2_win64.exe,和Microsoft MPI,将其Bin文件夹所在路径添入环境变量path。(不清楚是否两个都需要装,这里我两个都装了)
安装mpi4py的方法
前期依赖软件安装好后,具体说明一下怎么安装mpi4py,博客上有很多种方法,但是我都失败了。。。所以才有了这篇博客
第一种错误方法(不是绝对错,但是我装了用不了)
用pip install mpi4py,安装没有报错,conda list也能看到mpi4py成功安装,但是当运行测试文件时,from mpi4py import MPI会报错,说找不到MPI,然而我们已经安装MPI了,不知道为什么找不到,因此不得不放弃pip安装方式
第二种方式
conda install --channel https://conda.anaconda.org/dhirschfeld mpi4py
这个方法可以成功,但是注意,必须是在python 2.7版本上,我在python 3.6版本上一直都安装报错,说pre-link等有问题。
python 2.7是可以成功安装的,并且测试也没有问题,可是环境一定要求是python 3.6时,就真的给跪了。
第三种方法(也是我在python 3.6成功安装的方法)
pip和conda都安装失败,只好转向源文件安装了,在https://bitbucket.org/mpi4py/mpi4py/downloads/上下载mpi4py-2.0.0.tar.gz,也许下载mpi4py-3.0.0.tar.gz也可以,我没有尝试,我看conda安装成功的版本是1.2.2,所以为保险起见就下了个低版本。。。
接下来依次运行下面的命令,这是参考于官网https://mpi4py.readthedocs.io/en/stable/install.html的安装方式,每执行一句都会输出很多很多话,其中还有“无法打开输入文件”等信息,不要慌张,执行完所有命令后,conda list看有没有mpi4py,假如有多半是安装成功了,运行一下测试文件看一下就知道了。
$ tar -zxf mpi4py-X.Y.tar.gz $ cd mpi4py-X.Y $ python setup.py build $ python setup.py build --mpi=other_mpi $ python setup.py install
测试方法
mpiexec -n 4 python C:UsersYourNameDocumentsPythonYourMPItest.py
测试代码
from mpi4py import MPI comm = MPI.COMM_WORLD size = comm.Get_size() rank = comm.Get_rank() node_name = MPI.Get_processor_name() # get the name of the node
祝各位安装顺利!~