c - MPI_Bcast - 进程在根广播之前从根接收?
问题描述
MPI 很新,我希望每个进程都将其数组广播到其他进程。
nproc 是总进程数 (3),myid 是当前进程的 id,数组的大小为 DATASIZE。
在这里让我感到困惑的是,在 root 实际广播其数组之前,可能会从 root 接收一个数组。在这种情况下,接收如何工作?
例如:
进程#0 从进程#1 接收数组{1, 2} 发生在进程#1 广播其数组之前。
for(int i = 0; i < nproc; i++){
root = i;
if(root == myid){
printf("Process #%d broadcasts its array {", root);
printArray(array);
printf("}\n");
MPI_Bcast(array, DATASIZE, MPI_INT, root, MPI_COMM_WORLD);
}
else{
MPI_Bcast(array, DATASIZE, MPI_INT, root, MPI_COMM_WORLD);
printf("Process #%d receives array {", myid);
printArray(array);
printf("} from Process #%d\n", root);
}
}
解决方案
推荐阅读
- html - css定位2行
- python - 使用 pandas 在 python 中建立索引后更改数据框的列名
- ios - 以编程方式设置 Swift 颜色 - 根据设备颜色模式返回颜色
- android-studio - 在 android kotlin 应用程序中启用 R8 导致库类 android.content.res.XmlResourceParser 实现程序类 org.xmlpull.v1.XmlPullParser
- html - 如何配置自动换行标签的行距?
- python - 为什么导入特定功能不起作用?
- conda - 有人知道包含马赛克包的 conda 频道吗?
- python - 摄氏度到华氏度(反之亦然)使用范围
- android - Exoplayer 不播放持续时间长的视频
- c# - 移动鼠标时如何隐藏工具提示