使用 MPI,在 C 中,当且仅当我在我的主进程 ID 0 中从 N 个处理器接收到所有数据时,我如何才能执行一个函数?
编辑:有没有办法以与发送时相同的顺序接收所有数据?
如果我正确地回答了您的问题,MPI_Reduce就是您所需要的。
编辑:所以我没有正确回答您的问题。你需要的是MPI_Gather。在本文档中,您会看到:Each process (root process included) sends the contents of its send buffer to the root process. The root process receives the messages and stores them in rank order.
希望这能回答您的问题。
尝试查看MPI_Gather函数。调用后,您可以通过以下方式检查条件执行:
if (ierr == MPI_SUCCESS) {
// Execute a function
}