【发布时间】:2017-01-20 09:49:37
【问题描述】:
所以我正在编写一个程序来在进程之间反弹一个“虚拟球”。根进程,即等级为 0 的任务初始化游戏,然后将其发送到由rand() % size 确定的随机进程(由初始等级生成的随机数)。
我已经尝试过:
int rnk= rand() % size;
MPI_Send(&ball,1, MPI_INT, rnk, MPI_COMM_WORLD);
这会将球发送到下一个随机进程,但在运行时,代码被阻塞的 MPI_Send 阻止。我刚刚开始并行编程,所以我对此没有足够的了解。我如何发送到随机进程,然后他们进一步将其发送到任何随机进程?
欢迎任何指针、提示、书籍和教程。
【问题讨论】:
-
请提供minimal reproducible example 说明您尝试过的内容。
-
好的,问题是其中一个 MPI 进程由于竞争条件而挂起。我解决了这个问题,程序按预期运行。