Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有内置mpi的自定义boost python模块? 原则上,是否可以使用Boost Python库创建一个具有MPI功能的C++ Python模块?因此,我想知道是否可以在库的一些函数中包含MPI功能,然后创建如下python脚本: import myModule A = myModule.myClass() A.doSomething()_C++_Python_Boost_Mpi - Fatal编程技术网

具有内置mpi的自定义boost python模块? 原则上,是否可以使用Boost Python库创建一个具有MPI功能的C++ Python模块?因此,我想知道是否可以在库的一些函数中包含MPI功能,然后创建如下python脚本: import myModule A = myModule.myClass() A.doSomething()

具有内置mpi的自定义boost python模块? 原则上,是否可以使用Boost Python库创建一个具有MPI功能的C++ Python模块?因此,我想知道是否可以在库的一些函数中包含MPI功能,然后创建如下python脚本: import myModule A = myModule.myClass() A.doSomething(),c++,python,boost,mpi,C++,Python,Boost,Mpi,其中doSomething()是一个具有并行化机会的函数。那我就去 mpirun -np [NUM_PROCS] python my_script.py [OPTIONS] 并获得并行功能。如果这是可能的,我会怎么做?我的意思是,显然我需要在模块的源代码中包含一些MPI库,但是我需要在python脚本中做些什么来确保它并行运行吗?我必须和吉尔战斗吗?关于这一点,似乎没有太多的文档,所以我不知道该怎么做。或者,如果我在某个地方遗漏了一些文档,我将非常感谢您提供一个URL。经过一些实验,可以这样做

其中doSomething()是一个具有并行化机会的函数。那我就去

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

并获得并行功能。如果这是可能的,我会怎么做?我的意思是,显然我需要在模块的源代码中包含一些MPI库,但是我需要在python脚本中做些什么来确保它并行运行吗?我必须和吉尔战斗吗?关于这一点,似乎没有太多的文档,所以我不知道该怎么做。或者,如果我在某个地方遗漏了一些文档,我将非常感谢您提供一个URL。

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

有什么理由要这样做而不是说使用?我最初有一个用python编写的库,但速度非常慢。现在它是用C++编译的,速度快很多,但是我已经扩展了它(即添加了更多的数值操作的函数),直到它需要相当长的一段时间才能再次运行。做基本的计算需要几个小时,但随着代码的扩展,它需要花大半天的时间。