- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
故事是这样的:我需要一个用于 Python 的 MPI 包装器。
我知道有 mpi4py .对于我(主要)使用 Python 和 Windows 的当前工作,我想使用 Microsoft HPC Cluster Pack,它可以访问一些运行 Win 2008 Server 的相当“强大”的机器。顺便提一下,除了 Win 经验之外,我确实有一些 *nix 经验,但对于这个问题来说,这是没有实际意义的。
当我遇到 Python Tools for Visual Studio 时,我对 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 调用绑定(bind)到 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
MS MPI 安装程序注册一个环境变量 CCP_HOME 指向包的确切安装位置。 “CCP”这个名字一定是从它被称为 Microsoft Compute Cluster Pack 的时候就遗留下来的)。必须将其传递给最初的 mpi4py 开发人员。
在此之后,编译顺利通过,但我无法链接 - 存在三个 Unresolved external 问题:
MPI.obj : error LNK2019: unresolved external symbol _MPI_Type_create_f90_integer@8 referenced in ...
MPI.obj : error LNK2019: unresolved external symbol _MPI_Type_create_f90_real@12 ...
MPI.obj : error LNK2019: unresolved external symbol _MPI_Type_create_f90_complex@12 ...
HPC 2008 R2 的 MS MPI msmpi.lib 似乎没有实现这些,所以我无法构建 MPI.pyd。
我可以尝试在 mpi4py C 源文件中注释掉这些,但我认为这不是正确的路径。
提前致谢!
最佳答案
我正在与@Hrvoje 和源代码的当前维护者交谈 https://code.google.com/p/mpi4py/
感谢大家的帮助。
我使用的是 Visual Studio 2012、Python 2.7.3(64 位)和 MPI4PY 1.3
更改如下:
mpi header 和库现在位于不同的位置 (MS HPC 2008 R2),因此我的 mpi.cfg 的 msmpi 部分现在看起来像这样:
[msmpi]
mpi_dir = $ProgramFiles\Microsoft HPC Pack 2008 R2
include_dirs = %(mpi_dir)s\inc
libraries = msmpi
#library_dirs = %(mpi_dir)s\lib\i386
library_dirs = %(mpi_dir)s\lib\amd64
因为 Python 构建环境寻找 Visual Studio 2008,所以我不得不手动添加它寻找的变量。它实际上指向一个 VS 2012 目录,但所有构建工具都是兼容的,所以它可以工作。这是我添加的内容。
VS90COMNTOOLS = C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\
除此之外,没有任何变化,setup.py 生成了 .exe 和 .msi,没有任何问题。
关于python - 如何使用 MS HPC Server 2008 R2 的 MPI 堆栈成功编译 mpi4py?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7151752/
我已经使用 MS Word 和一大堆表单字段创建了一个应用程序表单,并且我有一个 Access db,可以从这个 Word 文档中导入我需要的所有数据,这要归功于: http://msdn.micro
我试图找到一种将 Outlook 插件发布到办公商店的方法。但我发现我们只能发布 Office 应用程序,而不能发布 Office 商店的加载项。因此我想知道 Office 应用程序和 Office
我在 MS Reporting Services 服务器上部署了一份报告,工作正常。我可以使用 Microsoft 的报表查看器组件从 ASPX 页面毫无问题地 Access 它、设置报表参数等。效果
让我们再试一次。我发布这个是为了回答 2 个问题 MS Project 2007 是否需要 SharePoint(我希望没有)? 做 你喜欢 MS Project 开发团队 - 它是有用的还是 疼痛?
我正在执行这些星期六上午的任务之一,试图理解为什么为什么要在计算机注册表中搜索某些信息会花费大量时间,甚至迫使我停止该过程。使用这些注册表清理程序之一,我发现该代码花了数十分钟遍历如下行: HKEY_
从多年前开始,我就没有使用Access。 它能很好地解决什么样的问题,甚至比真正的RDBMS支持的Web应用程序更好? 它仍在积极开发吗?还是MS已经死了? 最大的局限性是什么? 更新: 应该使用什么
我们计划重新设计一个相当庞大的 MS Access 应用程序。有没有办法在同一应用程序上同时工作,或者是否可以合并同一文件的两个单独实例(不是数据,而是表单和代码)。现在 Access 包含数据,但在
我写了一些SQL命令来更正表中的字段。由于它是如此之小(也许我有点自大),我什至没有运行过一次,只是将其放入了更新包中供其他用户使用。 Dim SQL As String Dim rs As DAO.
它是Office自带的,是一个“中规中矩”的数据库,到今天这里有800多个问题,但我从来没有关注过它。 我失去了一些有趣的东西? 我说的是 MS-Access 作为用于快速原型(prototype)制
我有一个MS-Access数据库,该数据库已通过使用“用于Access的Microsoft SQL Server迁移助手2008”(aka SSMA)转换为使用SQL表并创建了链接表(因此,MS-Ac
我有一个 Excel 文件,其中包含从 Access 数据库(主数据库)导出的任务。然后,此 Excel 文件用作 MS Project 的导入文件。随后,MS Project 用于实际跟踪和报告,并
我正在尝试获取有关如何将 MS Project 2010 连接到 MS Project Server 2010 的教程或分步说明。 我已经在我的服务器上安装了 Server 2008 R2(64 位)
有没有办法像选择查询一样在查询中引用表单的组合框/文本框? 我通常在选择查询的条件中使用类似这样的东西: like forms!frmMain.qTitleofSomething&* (acces
我想创建一个表,其中包含 DOUBLE 实数类型的列。我可以在表设计 View 中找到数据类型 Number,但是没有 Double 或 single,Float.. 如何实现..? 我还需要 SQL
我环顾四周,发现了一些关于如何从字段的“描述”框中获取描述的 VBA 代码,但没有找到如何在表单属性中使用它的方法。 我希望出现一个 ControlTip,其中包含从数据库中的描述中带来的该字段的描述
我有一个难题。我已经开发了一个 Access 应用程序,我正准备分发它。我刚刚拆分了数据库。 (我知道,有人说我应该从一开始就把它分开开发……我没有)我也刚刚加密了后端数据库。在前端,我已链接到后端并
我制作了一个 MS Access 2013 数据库来跟踪有关交易网站的所有通信。与此问题相关的表和列是具有列 ID(编号)和链接(超链接)的广告,以及具有列广告的注释,其中包含广告 ID。链接字段包含
我与我不拥有且无法更改的数据库建立了 ODBC 连接。我要做的是使相关记录合并为一条记录。关系是一对多。 我有一个学生管理系统,想要导出一个提供自动标注服务(由调用收费)的调用列表。如果有多个学生住在
我在 Access 的表单中设置了一个文本框。该表单链接到一个表格。但是它自己的文本框是未绑定(bind)的,它用于简单地收集用户输入。但是,我无法编辑它所查看的值。 文本框未锁定。文本框可以在 VB
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .
我是一名优秀的程序员,十分优秀!