Microsoft MPI и mpi4py 3.0.0, python 3.7.1 в настоящее время это вообще возможно? - PullRequest
0 голосов
/ 27 января 2019

Я очень расстроен после целой недели пробовать все мыслимые и немыслимые, кажется, что в их 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.

PS: mpi4py 2.0.0 несовместим с Python 3.7(по крайней мере, Anaconda говорит мне об этом), поэтому я лучше выберу другой дистрибутив MPICH (если он есть), чем понизлю мой питон.

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Наконец-то все заработало:

  1. Убедитесь, что вы загружаете и устанавливаете msmpisdk.msi и msmpisetup.exe из Microsoft MPI для v10.
  2. Добавьте оба C: \ Program Files (x86) \ Microsoft SDK \ MPI и C: \ Program Files \ Microsoft MPI \ Bin для системного PATH.
  3. (Необязательно) Перезапустите окно cmd и переустановите mpi4py
0 голосов
/ 13 февраля 2019

У меня это работает с 3.7.0 ...

Я скачал MSMPI с https://www.microsoft.com/en-us/download/details.aspx?id=57467 Я запустил оба файла, затем добавил его в PATH (C: \ Program Files (x86) \ Microsoft SDKs \ MPI)

Я тогда просто использовал python -m pip install mpi4py

Чтобы запустить программу MPI, я тогда использую mpiexec -n [number of cores] python .\filename

Я использую AMD A-10 9600P в Windows 10.

У меня установлена ​​Visual Studio, поэтому возможно, что он подключается к некоторым библиотекам, которых у вас нет ...

...