我希望多播到不超过 4 台机器的组,MPI_bcast 是否仍然比多个单播节省大量时间(请记住我的组规模很小)?
我编写了以下函数来根据机器的数量和这些机器的等级创建一个新的通信器。
void createCommunicator(MPI_Comm *NGBRS_WORLD, int num_ngbrs, int *ngbrs_ranks)
{
MPI_Group NGBRS_GROUP, MPI_COMM_GROUP;
int ret = MPI_Comm_group(MPI_COMM_WORLD, &MPI_COMM_GROUP);
printf("RETURNED %d\n", ret);
ret = MPI_Group_incl(MPI_COMM_GROUP, num_ngbrs, ngbrs_ranks, &NGBRS_GROUP);
printf("RETURNED %d\n", ret);
ret = MPI_Comm_create(MPI_COMM_WORLD, NGBRS_GROUP, NGBRS_WORLD);
printf("RETURNED : %d\n", ret);
}
当我调用这个函数时,输出是:
RETURNED 0
RETURNED 0
并且程序只是挂在 MPI_Comm_create 处
对于可能出现的问题或如何调试问题有什么想法吗?请注意,我已动态分配 ngbrs_ranks 的大小为 num_ngbrs。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)