小编Hrv*_*eko的帖子

如何使用MS HPC Server 2008 R2的MPI堆栈成功编译mpi4py?

故事就这样了:我需要一个用于Python的MPI包装器。

我知道这里有mpi4py。对于当前的工作,我(主要)使用Python和Windows,我想使用Microsoft HPC群集包,可以访问一些运行Win 2008 Server的“强大”计算机。值得一提的是,除了Win经验之外,我在MPI和其他方面确实有* nix的经验,但这是解决此问题的有意思的地方。

当我遇到适用于Visual Studio的Python工具时,我对mpi4py的兴趣再次增强。那是一些很棒的东西。任何喜欢Visual Studio和Python的人都应该尝试一下。很好的工作,以及出色的调试器。

PTVS的文档页面指出,mpi4py的安装非常简单……对于ActiveState Python,这似乎是事实。但是,如果您不使用ActiveState的Python,而是使用python.org中的“正常” Python发行版,那么您似乎有点不走运。

我的开发机器是带有Win7 64位和Python 2.6的笔记本电脑,具有64位和32位版本。我已经安装了MS HPC Pack 2008 R2 MS MPI和SDK。我安装了Visual Studio 2008和2010,对所有内容进行了修补。

没有二进制安装程序,并且知道Unix MPI如何对与其链接的MPI版本极为挑剔,所以我想构建自己的mpi4py。mpi4py基本上依赖于具有将python调用绑定到MPI库的MPI .dll(实际上是.pyd)。

轻松安装mpi4py和建立该库失败-无法指向MPI库。好的,没问题,我下载了mpi4py tarball,将其解压缩并更改了mpi.cfg文件,使其指向正确的文件夹:

# Microsoft MPI example
# ---------------------
[msmpi]
define_macros = MS_MPI=1
mpi_dir = $CCP_HOME
include_dirs = %(mpi_dir)s\Inc
libraries = msmpi
library_dirs = %(mpi_dir)s\lib\i386
Run Code Online (Sandbox Code Playgroud)

MS MPI安装程序将注册一个环境变量CCP_HOME,该环境变量指向Pack的确切安装位置。名称“ CCP”必须从被称为Microsoft Compute Cluster Pack的日期开始保留下来。已将其传递给原始的mpi4py开发人员。

在此之后,编译可以顺利通过,但我无法链接-有三个未解决的外部变量:

MPI.obj : error LNK2019: unresolved external symbol _MPI_Type_create_f90_integer@8 referenced in ...
MPI.obj : error LNK2019: unresolved external …
Run Code Online (Sandbox Code Playgroud)

python hpc mpi

5
推荐指数
1
解决办法
2306
查看次数

标签 统计

hpc ×1

mpi ×1

python ×1