環境: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:\Users\YourName\Documents\Python\YourMPItest.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
祝各位安裝順利!~