0

原则上,是否可以使用 boost python 库在 C++ 中创建具有 MPI 功能的自定义 python 模块?所以我想知道我是否可以在库的一些函数中包含 MPI 功能,然后创建一个这样的 python 脚本:

import myModule

A = myModule.myClass()

A.doSomething()

其中 doSomething() 是一个具有并行化机会的函数。然后我会做

mpirun -np [NUM_PROCS] python my_script.py [OPTIONS]

并获得并行功能。如果这是可能的,我将如何去做?我的意思是显然我需要在我的模块的源代码中包含一些 MPI 库,但是我需要在 python 脚本中做一些事情以确保它并行运行吗?我必须与 GIL 战斗吗?似乎没有太多关于这方面的文档,所以我对如何去做有点无能为力。或者,如果我在某处遗漏了一些文档,我们将不胜感激。

4

1 回答 1

2

经过一些实验,可以做到这一点。该库需要用mpicxx编译,调用它的python脚本需要初始化mpi环境。比如我用mpi4py做MPI.COMM_WORLD。然后所有进程调用库函数,该函数可以包含控制进程之间数据流的代码。

于 2013-04-26T10:17:13.443 回答