我希望通过一个(串行)Python脚本来触发某些由C++编写的MPI程序中的函数执行。在脚本开始时,这个Python脚本应该使用如下方式启动mpi程序:
我需要多次调用这个MPI程序的函数,并且希望避免为不同的输入重新启动程序,因为我必须重新初始化所有的数据结构,这是很耗费时间的。因此,我考虑在MPI程序空闲时外部触发一个函数。我认为可以通过文件IO来实现,即MPI程序的根排名在while(1)循环中监视某个文件,一旦其内容更改,它解析新内容通知其他排名并调用一个函数。是否有更优雅的解决方案?
最好的解决方案是有一个Python类,封装C++ MPI程序的重要函数,这样我就可以从Python中调用它们。
subprocess.call(['mpirun','-np', '4', 'mpibinary', 'args' ])
我需要多次调用这个MPI程序的函数,并且希望避免为不同的输入重新启动程序,因为我必须重新初始化所有的数据结构,这是很耗费时间的。因此,我考虑在MPI程序空闲时外部触发一个函数。我认为可以通过文件IO来实现,即MPI程序的根排名在while(1)循环中监视某个文件,一旦其内容更改,它解析新内容通知其他排名并调用一个函数。是否有更优雅的解决方案?
最好的解决方案是有一个Python类,封装C++ MPI程序的重要函数,这样我就可以从Python中调用它们。
mpiprogram.superfunction(a,b)