6 进程拓扑 |
![]() ![]() |
本章讨论MPI拓扑机制。拓扑是加在内部通信子上的额外、可选的属性,它不能被加在组间通信子(inter-communicator)上。对于一组进程(通信子内部),拓扑能够提供一种方便的命名机制,另外,可以辅助运行时间系统,将进程映射到硬件上。
由第五章所述,MPI中的进程组是n个进程的集合,组中的每一进程被赋予一个从0到n-1的标识数。在许多并行应用程序中,进程的线性排列不能充分地反映进程间在逻辑上的通信模型(通常由基本问题几何和所用的数字算法所决定),进程经常被排列成二维或三维网格形式的拓扑模型,而且,通常用一个图来描述逻辑进程排列,在本章我们指这种逻辑进程排列为“虚拟拓扑”。
在虚拟进程拓扑和底层的物理硬件拓扑之间有一个清晰的差别。进程分配到物理处理器上时,虚拟拓扑可以由系统开发,假设这会帮助提高所给机器的通信性能,然而,这种映射是如何来完成的,已超出了MPI的范围。另外,虚拟拓扑的描述仅依赖于应用,并且独立于机器,本章所提到的函数仅处理独立于机器的映射。
理由: 尽管没有讨论物理映射,虚拟拓扑信息可以作为运行时间系统的建议。有一些著名的技术,用来将圆环结构映射到硬件拓扑,例如超立方体或网格,对于更复杂的图形结构,好的启发式算法经常导致优化的结果【20】。另一方面,如果用户没有办法将逻辑进程排列说明为“虚拟拓扑”, 很可能产生一个随机的映射, 在某些机器上, 这将在互连网络上导致不必要的竟争。一些有关预测和测量性能提高的细节可以在【10, 9】找到,这是由现代WORMHOLE路由体系结构上较好的进程到处理器的映射所产生的。
除了可能的性能上的优点以外, 虚拟拓扑可以作为一种方便的进程命名结构, 这会大大有利于消息传送编程中的程序可读性和注释能力。(理由结束)
Copyright: NPACT | ![]() ![]() |