python - Microsoft MPI 和 mpi4py 3.0.0、python 3.7.1 目前是否可行?

标签 python mpi mpi4py

在尝试了一整周所有能想象和难以想象的事情之后,我感到非常沮丧,似乎他们的 SDK ( https://www.microsoft.com/en-us/download/details.aspx?id=57467 ) 缺少了一些东西:

C:\Anaconda3\PCbuild\amd64 /LIBPATH:build\temp.win-amd64-3.7 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763
.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\um\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft SDKs\MPI\Lib\x64" msmpi.lib /EXPORT:PyInit_MPI build\temp.win-amd64-3.
7\Release\src/MPI.obj /OUT:build\lib.win-amd64-3.7\mpi4py\MPI.cp37-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.7\Release\src\MPI.cp37-win_amd64.lib
    MPI.obj : warning LNK4197: export 'PyInit_MPI' specified multiple times; using first specification
       Creating library build\temp.win-amd64-3.7\Release\src\MPI.cp37-win_amd64.lib and object build\temp.win-amd64-3.7\Release\src\MPI.cp37-win_amd64.exp
    MPI.obj : error LNK2001: unresolved external symbol MPI_Ireduce_scatter
    MPI.obj : error LNK2001: unresolved external symbol MPI_Iallgatherv
    MPI.obj : error LNK2001: unresolved external symbol MPI_Iexscan
    MPI.obj : error LNK2001: unresolved external symbol MPI_Iscan
    MPI.obj : error LNK2001: unresolved external symbol MPI_Ialltoallw
    MPI.obj : error LNK2001: unresolved external symbol MPI_Ireduce_scatter_block
    MPI.obj : error LNK2001: unresolved external symbol MPI_Ialltoall
    MPI.obj : error LNK2001: unresolved external symbol MPI_Ialltoallv
    MPI.obj : error LNK2001: unresolved external symbol MPI_Reduce_scatter_block
    build\lib.win-amd64-3.7\mpi4py\MPI.cp37-win_amd64.pyd : fatal error LNK1120: 9 unresolved externals
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1120

如果真的不可能让它工作,那么请告诉我应该使用哪种 MPI 发行版而不是 Microfost MPI,因为 https://www.mpich.org/downloads/不提供任何 Windows 替代方案。

P.S.:mpi4py 2.0.0 与 python 3.7 不兼容(至少 Anaconda 告诉我是这样),所以我宁愿选择 MPICH 的另一个发行版(如果有的话),也不愿降级我的 python。

最佳答案

我已经可以在 3.7.0 上使用它了...

我从 https://www.microsoft.com/en-us/download/details.aspx?id=57467 下载了 MSMPI 我运行了这两个文件,然后将其添加到路径中 (C:\Program Files (x86)\Microsoft SDKs\MPI)

然后我只使用了python -m pip install mpi4py

要运行 MPI 程序,我使用 mpiexec -n [number of cores] python .\filename

我在 Windows 10 中的 AMD A-10 9600P 上运行。

我确实安装了 Visual Studio,因此它可能会连接到一些您没有的库...

关于python - Microsoft MPI 和 mpi4py 3.0.0、python 3.7.1 目前是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54386910/

相关文章:

python - 使用 mpi4py 在计算集群上并行化 'for' 循环

python - 使用 SelectKBest 的问题 [scikit-learn]

python - 将 Python datetime.datetime 对象插入 MySQL

python 2.7 : can I make Matplotlib display values like Plotly?

c - MPI_Abort() 与 exit()

python - 使用 mpi4py 分析并行化的 python 脚本

python - 无法在 BeautifulSoup 中获得正确的链接

c - MPI_Barrier 不在循环内工作

c - mpi中的矩阵乘法和全局归约运算

python - 如何在 Windows 8 中正确安装 mpi4py?