据我所知,每个可执行实例只能调用多次MPI_init。任何人都可以澄清这种语言的局限性:即:
谢谢!
答案 0 :(得分:1)
如果我理解正确,最简单的方法是拦截对MPI_Init
的调用并仅执行一次。对于C,MPI提供PMPI分析接口,允许您覆盖任何MPI符号并提供额外的PMPI符号。例如。你定义一个函数MPI_Init
,并在该函数中,根据第一次调用它,调用PMPI_Init
。 MPI_Finalize
的相同(相反)。
我不确定在Python中最优雅的方法。我假设您可以直接进入python绑定或LD_PRELOAD
一个简单的C库来执行 magic 。
所有这些只是一种解决方法,可能会产生不良副作用。 MPI实施建议您在MPI_Init
之前不要做太多工作。真正的解决方案是修复代码以适当地使用MPI。