gpt4 book ai didi

来自未知来源的 MPI 接收

转载 作者:行者123 更新时间:2023-12-02 15:36:48 28 4
gpt4 key购买 nike

我正在 MPI 中实现一个程序,其中主进程(等级 = 0)应该能够接收来自其他进程的请求,这些进程要求只有根才知道的变量值。如果我按等级 0 进行 MPI_Recv(...),我必须指定向根发送请求的进程的等级,但我无法控制它,因为进程不按顺序运行 1,2,3 ,....如何接收来自任何级别的请求并使用发出进程的编号向其发送必要的信息?

最佳答案

这假设您使用的是 C。C++ 和 Fortran 中也有类似的概念。您只需将 MPI_ANY_SOURCE 指定为 MPI_recv() 中的源即可。状态结构包含消息的实际来源。

int buf[32];
MPI_Status status;
// receive message from any source
MPI_recv(buf, 32, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
int replybuf[];
// send reply back to sender of the message received above
MPI_send(buf, 32, MPI_INT, status.MPI_SOURCE, tag, MPI_COMM_WORLD);

关于来自未知来源的 MPI 接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4348900/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com