【问题标题】:Microsoft MPI and mpi4py 3.0.0, python 3.7.1 is it currently possible at all?Microsoft MPI 和 mpi4py 3.0.0、python 3.7.1 目前有可能吗?
【发布时间】:2019-06-20 13:34:09
【问题描述】:

在尝试了所有可以想象和无法想象的事情之后,我感到非常沮丧,他们的 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。

【问题讨论】:

    标签: python mpi mpi4py


    【解决方案1】:

    我已经让它与 3.7.0 一起使用...

    我从https://www.microsoft.com/en-us/download/details.aspx?id=57467下载了MSMPI 我运行了这两个文件,然后将其添加到 PATH (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,所以它可能会挂接到一些你没有的库中......

    【讨论】:

    • 我也是。我有所有的路径,你可以在日志中看到。唯一可能的解释(除了 MS 开发人员的错误)可能是我链接的库太多并且它们以某种方式发生冲突。它显然不应该依赖于商业 Visual Studio IDE,而应该只依赖于我已经安装的编译器和 SDK。
    • 我遇到了类似的问题。尝试下载 mpi4py 源并从那里构建。在构建过程中,我可以看到它找到了正确的 msmpi 路径,但安装仍然给我同样的 DLL not found 错误。
    • 这对我也有用。事实证明,即使安装了最新的 WIndows 更新和安装了 10.x 的以上链接,我也会使用 MPI 7.x。我以前的 mpi2py 安装给我“ImportError:DLL 加载失败:找不到指定的过程。”所以我先卸载了它,然后按照这里的步骤操作。
    【解决方案2】:

    我终于让它工作了:

    1. 确保从 Microsoft MPI for v10 下载并安装 msmpisdk.msi 和 msmpisetup.exe。
    2. 将 C:\Program Files (x86)\Microsoft SDKs\MPI 和 C:\Program Files\Microsoft MPI\Bin 添加到系统 PATH。
    3. (可选)重启cmd窗口并重新安装mpi4py

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 2018-03-27
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      • 2018-08-21
      • 2020-01-18
      • 2011-12-08
      • 1970-01-01
      相关资源
      最近更新 更多