让我们考虑 MPI 应用程序的以下简单场景:根进程广播(MPI_Bcast
)一些参数(几十个字节 - 固定大小),然后所有节点开始执行一些计算,然后根收集结果(MPI_Gather
- 可能非常大的数据集)。数据被root保存后,程序结束。
在什么情况下(进程数、延迟等)(如果有)使用使用虚拟星形拓扑创建的通信器会提供比使用更好的性能MPI_COMM_WORLD
,为什么?通信器是否对实际通道使用延迟初始化(即仅在第一次需要时打开管道、套接字等)。这种行为实现是否依赖?
注意:我使用openmpi1.4.3-2
的是纯 C。