在MPI中,如果我使用MPI_Comm_Spawn生成子项,则主进程执行生成。现在孩子们开始做一些工作。如何通知主服务器以及其他父级流程已完成?
答案 0 :(得分:0)
考虑在二进制程序周围编写一个包装器。不是直接生成程序,而是生成包装器的实例,然后启动二进制文件,等待它完成,然后与生成器进程通信。
答案 1 :(得分:0)
我用包装程序解决了同样的问题,正如suszterpatt建议的那样。
让master成为调用MPI_Comm_spawn
的程序,slave是你想要生成的程序而不修改它的代码,包装器就是包装程序。
让我们考虑一下你的奴隶本身就是一个mpi程序,需要自己的沟通者与自己沟通(因为你在评论中说过)。
MPI_Comm_spawn
生成包装器。system
)。但没有任何MPI调用(否则slave将无法获得MPI上下文)。 我无法保证我的解决方案符合MPI标准,但在带有Linux环境的群集上,OpenMPI 1.10适用于我。它尝试使用二进制包装器并编写文件以在主服务器和从服务器之间进行通信。