自定义boost python模块内置mpi



原则上,是否有可能使用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战斗吗?这方面似乎没有太多的文档,所以我有点不知道该怎么做。或者,如果我在某个地方遗漏了一些文档,那么URL将非常感谢。

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

最新更新