第193页共4页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第193页共4页分布存储并行数值计算通信库界面设计熊玉庆中科院计算所摘要指出了应用程序界面是分布存储并行数值计算通信库设计中的一个主要方面
分析了从进程抽象命名,基于源的消息选择和非阻塞点到点通信三个方面提高通信库的应用程序界面
关键词:并行数值计算通信库应用程序界面分布存储并行计算系统是目前高性能计算机的主流
通信库是分布存储并行计算系统的关键部分之一
目前,较常见的通信库有MPI[1],PVM[2]等
它们是面向一般应用的,通用的消息传递界面
对于面向某一特殊领域的大型数值计算,这些库的界面较低,不适合大型数值程序的开发[3][4]
为快速方便地开发高性能,高可靠的大型数值软件,研制直接面向某一计算领域的通信库是十分必要和有价值的
这样,通信库界面设计就成为通信库设计的一个重要方面
这样的通信库界面应该是自然,简洁,方便,使程序编写更方便,编制的程序易于维护
本文从进程抽象命名,基于源的消息选择和非阻塞点到点通信三个方面讨论如何提高通信库的界面
并举例说明它们的实现方法
进程抽象命名在MPI,PVM等通信库中,一个进程组中的进程标记(在MPI中进程标记的英文为rank)是线性的
但在许多数值计算中线性的进程标记不能充分反映进程的逻辑通信模式
如在线性代数和油藏模拟计算中,二维的进程网格常常是方便的
而在有的FFT计算中蝶型的进程拓扑结构则更方便
由于进程的拓扑结构反映了进程的逻辑关系,因而,它对程序的编写及阅读带来极大方便
这里举例说明进程抽象命名的实现
一般地,设进程的拓扑结构为Ω
假设所要设计的数值计算通信库Δ是建立在MPI上
由于一个进程组中的通信总是在一定的通信上下文中进行,因此,必须将Ω嵌入通信上下文中
在MPI中可实现如下:MPI_COMM_GROUP(comm,grp);