电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

分布存储并行数值计算通信库界面设计VIP免费

分布存储并行数值计算通信库界面设计_第1页
分布存储并行数值计算通信库界面设计_第2页
分布存储并行数值计算通信库界面设计_第3页
第193页共4页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第193页共4页分布存储并行数值计算通信库界面设计熊玉庆中科院计算所摘要指出了应用程序界面是分布存储并行数值计算通信库设计中的一个主要方面。分析了从进程抽象命名,基于源的消息选择和非阻塞点到点通信三个方面提高通信库的应用程序界面。关键词:并行数值计算通信库应用程序界面分布存储并行计算系统是目前高性能计算机的主流。通信库是分布存储并行计算系统的关键部分之一。目前,较常见的通信库有MPI[1],PVM[2]等。它们是面向一般应用的,通用的消息传递界面。对于面向某一特殊领域的大型数值计算,这些库的界面较低,不适合大型数值程序的开发[3][4]。为快速方便地开发高性能,高可靠的大型数值软件,研制直接面向某一计算领域的通信库是十分必要和有价值的。这样,通信库界面设计就成为通信库设计的一个重要方面。这样的通信库界面应该是自然,简洁,方便,使程序编写更方便,编制的程序易于维护。本文从进程抽象命名,基于源的消息选择和非阻塞点到点通信三个方面讨论如何提高通信库的界面。并举例说明它们的实现方法。1.进程抽象命名在MPI,PVM等通信库中,一个进程组中的进程标记(在MPI中进程标记的英文为rank)是线性的。但在许多数值计算中线性的进程标记不能充分反映进程的逻辑通信模式。如在线性代数和油藏模拟计算中,二维的进程网格常常是方便的。而在有的FFT计算中蝶型的进程拓扑结构则更方便。由于进程的拓扑结构反映了进程的逻辑关系,因而,它对程序的编写及阅读带来极大方便。这里举例说明进程抽象命名的实现。一般地,设进程的拓扑结构为Ω。假设所要设计的数值计算通信库Δ是建立在MPI上。由于一个进程组中的通信总是在一定的通信上下文中进行,因此,必须将Ω嵌入通信上下文中。在MPI中可实现如下:MPI_COMM_GROUP(comm,grp);/*找出初始进程组,进程的拓扑结构为线性*/MPI_GROUP_INCL(grp,Ng,Ω,tgrp)/*形成新的进程组,进程的拓扑结构为Ω*/MPI_COMM_CREATE(comm,tgrp,&tcomm);/*建立新的通信上下文*/2.基于源的消息选择[5]在通信过程中,接受进程对消息的选择一般是根据消息源和消息标志。但使用标志会带来一些问题。例如,在一个循环体中,通信使用一个固定的消息标志,那么,如果一个进程花比其他进程更多的时间完成一次循环,则该进程可能接受下一个循环的数据作为本次循环的数据。此外,并行程序往往很大,要多个人或多个小组共同完成。这就要求在所有子程序和所有程序员之间进行协调,使得各子程序中的通信消息标志不发生冲突。当以后要加入一个子程序时,必须保证新的子程序中的通信消息标志与其他子程序不发生冲突。这使得程序设计变得困难而复杂。下面举例说明基于源的消息选择的实现。再次假设所设计的数值计算通信库Δ建立在MPI上。为了实现基于源的消息选择,在通信上下文中,对每个通信上下文,定义一个一一映射f(n),n表示自该通信上下文建立以来,在该通信上下文中所进行的群通信次数,n的初值为1。为此,须另外定义通信上下文数据结构如下:第194页共4页第193页共4页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第194页共4页StructCoNtExT{MPI_Commcomm;intmsgid,maxid,minid;…}comm是MPI的通信域,maxid,minid表示消息标志的范围,Context是指向该数据结构的一个指针。在Context建立时maxid和minid被赋初值。msgid是当前消息标志,初值为minid。f定义如下:f(n)={¿f(n−1)+1,1

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

教育教学文库+ 关注
实名认证
内容提供者

本店有大量的教育教学资料,课件

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群