CN111367665B - 一种并行通信路由建立方法及*** - Google Patents

一种并行通信路由建立方法及*** Download PDF

Info

Publication number
CN111367665B
CN111367665B CN202010127096.3A CN202010127096A CN111367665B CN 111367665 B CN111367665 B CN 111367665B CN 202010127096 A CN202010127096 A CN 202010127096A CN 111367665 B CN111367665 B CN 111367665B
Authority
CN
China
Prior art keywords
receiving end
parallel
grid point
global
processes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010127096.3A
Other languages
English (en)
Other versions
CN111367665A (zh
Inventor
刘利
于灏
孙超
李锐喆
于馨竹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202010127096.3A priority Critical patent/CN111367665B/zh
Publication of CN111367665A publication Critical patent/CN111367665A/zh
Priority to PCT/CN2020/126790 priority patent/WO2021169393A1/zh
Application granted granted Critical
Publication of CN111367665B publication Critical patent/CN111367665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种并行通信路由建立方法及***,该方法包括:发送端和接收端为相同网格建立所有网格点的全局索引,各进程基于网格点全局索引构建网格点局部‑全局映射表;发送端/接收端对网格点局部‑全局映射表中的各项在发送端/接收端所有进程之间进行并行排序;发送端与接收端的进程进行协作,并行建立发送端‑接收端网格点映射关系表;发送端/接收端对发送端‑接收端网格点映射关系表的各项在发送端/接收端的所有进程之间进行并行排序;发送端与接收端的各进程根据进程局部的发送端‑接收端网格点映射关系表,生成各进程与对应接收端或发送端的进程的通信路由关系。本发明能快速建立数值程序间的并行通信路由关系,高效且具备并行可扩展性。

Description

一种并行通信路由建立方法及***
技术领域
本发明涉及数值程序技术领域,具体涉及一种并行通信路由建立方法及***。
背景技术
地球***模式是气候演变规律研究、未来气候预测和无缝隙数值预报所不可或缺的科学工具。它是一种复杂的综合数值程序,由分别模拟大气、陆面、海洋和海冰等地球***圈层的分量模式通过耦合器的耦合而构成。地球***模式的各分量模式均是基于格网的数值程序,即把要计算的区域(二维面或空间三维)划分为由若干互不重叠格点(原子区域)组成的计算网格,并在所有网格点上进行协同计算。对一个计算区域而言,划分出来的网格点越多,则模拟的分辨率越高,模拟过程的计算量也就越大。计算节点和处理器核越来越多的高性能计算机给很多应用程序的加速运行带来了机会,这也包括数值程序。为了在高性能计算机上取得较好的加速效果,数值程序需要被编写为高效的并行版本。MPI(MessagePassing Interface,消息传递接口)是一种被广泛使用的并行编程库,既可以在不同计算节点之间,也可以在同一计算节点内的不同处理器核之间实现并行计算。无论国内外,绝大多数地球***模式分量模式都具备了基于MPI的并行版本。
在研制数值程序的并行版本时,首先需要把计算网格的不同网格点分派给不同进程(以下将网格点在不同进程上的分派称为并行剖分),以便进行并行计算。例如,表1、表2分别示出了同一8×8网格在使用4个进程时的并行剖分和使用8个进程时的并行剖分,各网格点中的数字表示进程编号。
表1 8×8网格在使用4个进程时的并行剖分
Figure BDA0002394731720000011
Figure BDA0002394731720000021
表2 8×8网格在使用8个进程时的并行剖分
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
由于地球***模式中不同分量模式之间相互耦合,耦合变量会从一个分量模式传递到另一个分量模式,这个过程的本质就是针对耦合变量的MPI通信,该过程通常由两个步骤实现:1)根据同一网格在两个分量模式中的并行剖分,建立分量模式间的并行通信路由关系,例如,表1中的1号进程需要把位于网格右上角网格点上的耦合变量数据传递给表2中的7号进程;2)在耦合过程中,根据已建立的通信路由关系,完成分量模式间针对若干变量的并行通信。由于并行通信路由可在分量模式间频繁的耦合过程中保持不变,因此两个并行剖分之间的并行通信路由通常仅需建立一次。
当前,负责实现地球***模式分量模式间耦合的耦合器,如C-Coupler、OASIS、CPL等,都采用了上述两步来实现分量模式间的并行通信,其中均采用了全局算法来实现并行通信路由关系的构建,即:一个分量模式的一个进程P,首先获取到另一分量模式所有进程RALL的全局并行剖分信息,再求出进程P的局部并行剖分信息与R ALL全局剖分信息之间的相交关系,从而确定并行通信路由关系。给定网格的总网格点数为N,一个分量模式的进程数为M,则在各进程上的平均计算复杂度为O(N)、平均存储复杂度为O(N),且会引入复杂度甚至为O(NM)的全局集合通信。因此,很耗时且不具备并行可扩展性,特别是在模式网格分辨率很高、格点数很多的情况下,会导致模式启动速度严重变慢。
发明内容
本发明提供一种并行通信路由建立方法及***,能够快速建立数值程序间的并行通信路由关系,高效且具备并行可扩展性,尤其在数值程序的网格分辨率很高、网格点数很多的情况下,能够快速启动数值程序。
第一方面,本发明提供一种并行通信路由建立方法,用于建立多进程并行的数值程序间对于相同网格上的变量的并行通信路由关系,发送变量的数值程序为发送端,接收变量的数值程序为接收端,发送端和接收端的各进程均保存部分网格点上的变量值;所述方法包括:
发送端和接收端为相同网格建立所有网格点的全局索引,发送端和接收端的各进程基于网格点全局索引构建网格点局部-全局映射表;
发送端对网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序;
接收端对网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序;
发送端与接收端的进程进行协作,并行建立发送端-接收端网格点映射关系表;
发送端对所述发送端-接收端网格点映射关系表的各项在发送端的所有进程之间进行并行排序;
接收端对所述发送端-接收端网格点映射关系表的各项在接收端的所有进程之间进行并行排序;
发送端与接收端的各进程根据进程局部的发送端-接收端网格点映射关系表,生成各进程与对应接收端或发送端的进程的通信路由关系。
更进一步地,所述网格点局部-全局映射表中的各项为三元组<网格点全局索引,进程编号,网格点局部索引>。
更进一步地,所述发送端对网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序,以及所述接收端对网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序,均以网格点全局索引为关键字。
更进一步地,所述发送端对网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序,以及所述接收端对网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序,均包括:
根据网格点总数和进程数,确定排序后各进程内的网格点的全局索引范围;
分别对各进程的网格点局部-全局映射表中的各项进行排序;
在所有进程之间对网格点局部-全局索引表中的各项进行排序。
更进一步地,所述发送端-接收端网格点映射关系表中的各项为五元组<网格点全局索引,发送端进程编号,发送端网格点局部索引,接收端进程编号,接收端网格点局部索引>。
更进一步地,所述并行建立发送端-接收端网格点映射关系表,包括:
根据发送端与接收端的各进程的网格点全局索引范围,完成发送端各进程与接收端相应进程之间的网格点局部-全局映射表的交换;
在各进程内,根据发送端与接收端的网格点局部-全局映射表,构建发送端-接收端网格点映射关系表。
更进一步地,所述发送端对所述发送端-接收端网格点映射关系表的各项在发送端的所有进程之间进行并行排序,以发送端进程编号为关键字;
所述接收端对所述发送端-接收端网格点映射关系表的各项在接收端的所有进程之间进行并行排序,以接收端进程编号为关键字。
第二方面,本发明提供一种并行通信路由建立***,用于建立多进程并行的数值程序间对于相同网格上的变量的并行通信路由关系,发送变量的数值程序为发送端,接收变量的数值程序为接收端,发送端和接收端的各进程均保存部分网格点上的变量值;所述***包括:
初始化模块,用于为相同网格建立所有网格点的全局索引,发送端和接收端的各进程基于网格点全局索引构建网格点局部-全局映射表;
第一并行排序模块,用于对网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序;
第二并行排序模块,用于对网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序;
并行建立模块,用于发送端与接收端的进程进行协作时并行建立发送端-接收端网格点映射关系表;
第三并行排序模块,用于对所述发送端-接收端网格点映射关系表的各项在发送端的所有进程之间进行并行排序;
第四并行排序模块,用于对所述发送端-接收端网格点映射关系表的各项在接收端的所有进程之间进行并行排序;
并行生成模块,用于根据进程局部的发送端-接收端网格点映射关系表,生成发送端与接收端的各进程与对应接收端或发送端的进程的通信路由关系。
更进一步地,所述第一并行排序模块和第二并行排序模块,均包括:
确定模块,用于根据网格点总数和进程数,确定排序后各进程内的网格点的全局索引范围;
第一排序模块,用于分别对各进程的网格点局部-全局映射表中的各项进行排序;
第二排序模块,用于在所有进程之间对网格点局部-全局索引表中的各项进行排序。
更进一步地,所述并行建立模块,包括:
交换模块,用于根据发送端与接收端的各进程的网格点全局索引范围,完成发送端各进程与接收端相应进程之间的网格点局部-全局映射表的交换;
构建模块,用于在各进程内,根据发送端与接收端的网格点局部-全局映射表,构建发送端-接收端网格点映射关系表。
本发明提供的并行通信路由建立方法,发送端和接收端为相同网格建立所有网格点全局索引,发送端和接收端的各进程基于网格点全局索引构建网格点局部-全局映射表;发送端/接收端对网格点局部-全局映射表中的各项在发送端/接收端所有进程之间进行并行排序;发送端与接收端的进程进行协作,并行建立发送端-接收端网格点映射关系表;发送端/接收端对发送端-接收端网格点映射关系表的各项在发送端/接收端的所有进程之间进行并行排序;发送端与接收端的各进程根据进程局部的发送端-接收端网格点映射关系表,生成各进程与对应接收端或发送端的进程的通信路由关系。无需引入全局通信,就能够快速建立数值程序间的并行通信路由关系,高效且具备并行可扩展性,尤其在数值程序的网格分辨率很高、网格点数很多的情况下,能够快速启动数值程序。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例一提供的并行通信路由建立方法流程图;
图2是本发明实施例一提供的步骤S2的具体流程图;
图3是本发明实施例一提供的步骤S4的具体流程图;
图4是本发明实施例二提供的并行通信路由建立***框图;
图5是本发明实施例二提供的第一并行排序模块框图;
图6是本发明实施例二提供的并行建立模块框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
由于现有技术中通常需要引入全局通信来进行数值程序间的并行路由,这会使得并行通信的效率低下,且不具并行扩展性,尤其是在数值模式的网格分辨率很高、网格点数很多的情况下,会导致数值程序的启动速度严重变慢。因此,本发明实施例提供一种并行通信路由建立方法,用于根据同一网格在不同数值程序中的并行剖分,建立数值程序间的并行通信路由关系,具体来说,用于建立多进程并行的数值程序间对于相同网格上的变量的并行通信路由关系,发送变量的数值程序为发送端,接收变量的数值程序为接收端,发送端和接收端的各进程均保存部分网格点上的变量值。该方法能够快速建立数值程序间的并行通信路由关系,高效且具备并行可扩展性。其中,数值程序可以包括但不限于地球***模式。
实施例一
图1示出了一种并行通信路由建立方法流程图,如图1所示,该方法包括如下步骤:
步骤S1、初始化:发送端和接收端为相同网格建立所有网格点的全局索引,发送端和接收端的各进程基于网格点全局索引构建网格点局部-全局映射表。
需要说明的是,不同网格点的全局索引不同,本实施例的发送端和接收端为相同网格建立所有网格点的全局索引,使同一网格点在发送端和接收端中的全局索引相同,如果发送端的一个进程与接收端的一个进程保存了全局索引相同的网格点上的变量值,则并行通信路由关系将含有这两个进程间的通信。基于网格点全局索引,发送端和接收端的各进程能够构建各自的网格点局部-全局映射表,优选地,网格点局部-全局映射表中的各项为三元组<网格点全局索引,进程编号,网格点局部索引>。仍以表1和表2所示的同一8×8网格在使用4个进程时的并行剖分和使用8个进程时的并行剖分为例来说明,表1所示的并行剖分为发送端的并行剖分,表2所示的并行剖分为接收端的并行剖分,表3和表4分别为表1和表2中所示并行剖分的网格点局部-全局映射表。
表3 8×8网格在使用4个进程时的并行剖分的网格点局部-全局映射表
Figure BDA0002394731720000071
完成上述初始化后,得到表1中8×8网格在使用4个进程时的并行剖分的网格点局部-全局映射表,其中网格点全局索引为0~63,进程为0~3,网格点局部索引按照网格点位置从左到右、从上到下逐一增加,表3的各进程中,网格点局部索引均为0~15。
表4 8×8网格在使用8个进程时的并行剖分的网格点局部-全局映射表
Figure BDA0002394731720000081
完成上述初始化后,得到表2中8×8网格在使用8个进程时的并行剖分的网格点局部-全局映射表,其中网格点全局索引为0~63,进程为0~7,网格点局部索引按照网格点位置从左到右、从上到下逐一增加,表4的各进程中,网格点局部索引均为0~7。
步骤S2、发送端对网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序。
步骤S3、接收端对网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序。
可以理解的是,步骤S2与步骤S3的执行顺序不限于此,可以根据需要调整执行顺序,或同时执行。
具体地,发送端对网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序,以及所述接收端对网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序,均以网格点全局索引为关键字,图2示出了步骤S2的具体流程图,如图2所示,步骤S2可以进一步包括如下子步骤:
步骤S21、根据网格点总数和(发送端或接收端的)进程数,确定排序后各进程内的网格点的全局索引范围,同时确保排序后各进程中网格点的数量相近,以确保负载平衡性。
步骤S22、分别对各进程的网格点局部-全局映射表中的各项进行排序。
步骤S23、在所有进程之间按照归并排序的思路对网格点局部-全局索引表中的各项进行排序。
需要说明的是,步骤S3的具体流程同样可以包括上述步骤S21~步骤S23。
具体来说,给定网格的网格点数为N,发送端(或接收端)的进程数为M,排序过程中一个进程涉及到log(M)次与其他进程的一对一通信,各进程排序的平均时间复杂度为O((N/M)*(log(M)+log(N/M))),平均存储复杂度为O(N/M)、平均通信复杂度为O((N/M)*log(M))。
仍以表1和表2所示的同一8×8网格在使用4个进程时的并行剖分和使用8个进程时的并行剖分为例,对各进程的网格点局部-全局映射表中各项进行并行排序,分别得到表5和表6所示的排序结果。
表5表3所示网格点局部-全局映射表的排序结果
Figure BDA0002394731720000091
Figure BDA0002394731720000101
表6表4所示网格点局部-全局映射表的排序结果
Figure BDA0002394731720000102
步骤S4、发送端与接收端的进程进行协作,并行建立发送端-接收端网格点映射关系表。
网格点映射关系是:发送端的一个进程与接收端的一个进程拥有相同网格点。优选地,发送端-接收端网格点映射关系表中的各项为五元组<网格点全局索引,发送端进程编号,发送端网格点局部索引,接收端进程编号,接收端网格点局部索引>。
具体地,图3示出了步骤S4的具体流程图,如图3所示,并行建立发送端-接收端网格点映射关系表,可以进一步包括如下子步骤:
步骤S41、根据发送端与接收端的各进程的网格点全局索引范围,通过点对点的局部通信,完成发送端各进程与接收端相应进程之间的网格点局部-全局映射表的交换。
步骤S42、在各进程内,根据发送端与接收端的网格点局部-全局映射表,构建发送端-接收端网格点映射关系表。各进程的平均时间复杂度、平均存储空间复杂度和平均通信复杂度均是O(N/M)。
仍以表1和表2所示的同一8×8网格在使用4个进程时的并行剖分和使用8个进程时的并行剖分为例,并行建立发送端-接收端网格点映射关系表,分别得到表7和表8所示的发送端-接收端网格点映射关系表。
表7发送端-接收端网格点映射关系表
Figure BDA0002394731720000111
表8发送端-接收端网格点映射关系表
Figure BDA0002394731720000112
Figure BDA0002394731720000121
步骤S5、发送端对发送端-接收端网格点映射关系表的各项在发送端的所有进程之间进行并行排序。
步骤S6、接收端对发送端-接收端网格点映射关系表的各项在接收端的所有进程之间进行并行排序。
可以理解的是,步骤S5与步骤S6的执行顺序不限于此,可以根据需要调整执行顺序,或同时执行。
具体地,在发送端(或接收端)的所有进程之间,根据进程编号对发送端-接收端网格点映射关系表中的各项按照归并排序进行并行排序,使发送端(或接收端)各进程的发送端-接收端网格点映射关系表只含有与该进程局部网格点有关的项。优选地,发送端对发送端-接收端网格点映射关系表的各项在发送端的所有进程之间进行并行排序,以发送端进程编号为关键字;接收端对发送端-接收端网格点映射关系表的各项在接收端的所有进程之间进行并行排序,以接收端进程编号为关键字。各进程排序的平均时间复杂度为O((N/M)*log(M)),平均存储复杂度为O(N/M)、平均通信复杂度为O((N/M)*log(M))。
仍以表1和表2所示的同一8×8网格在使用4个进程时的并行剖分和使用8个进程时的并行剖分为例,根据进程编号对发送端-接收端网格点映射关系表中的各项按照归并排序进行并行排序后,分别得到表9和表10所示的排序结果。
表9发送端-接收端网格点映射关系表排序结果
Figure BDA0002394731720000131
表10发送端-接收端网格点映射关系表排序结果
Figure BDA0002394731720000132
Figure BDA0002394731720000141
步骤S7、发送端与接收端的各进程根据进程局部的发送端-接收端网格点映射关系表,生成各进程与对应接收端或发送端的进程的通信路由关系。
具体地,针对发送端(或接收端)的各进程,根据该进程局部的发送端-接收端网格点映射关系表,生成该进程与对应接收端(或发送端)进程的通信路由关系。
仍以表1和表2所示的同一8×8网格在使用4个进程时的并行剖分和使用8个进程时的并行剖分为例来说明:建立发送端(表1)的0号进程到接收端(表2)0~3号进程的通信路由关系,其中发送端的0号进程会将其局部索引为1和5的网格点上的变量数据发送给接收端的1号进程;建立接收端(表2)的0号进程到发送端(表1)的0号和2号进程的通信路由关系,其中接收端的0号进程会从发送端的2号进程接收到发送端局部索引为4~7的网格点上的变量数据。各进程的平均时间复杂度为O(N/M),平均存储复杂度为O(N/M),无通信。
实施例二
与实施例一对应地,本实施例提供一种并行通信路由建立***,如图4所示,该***包括:
初始化模块1,用于为相同网格建立所有网格点的全局索引,发送端和接收端的各进程基于网格点全局索引构建网格点局部-全局映射表;
第一并行排序模块2,用于对网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序;
第二并行排序模块3,用于对网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序;
并行建立模块4,用于发送端与接收端的进程进行协作时并行建立发送端-接收端网格点映射关系表;
第三并行排序模块5,用于对发送端-接收端网格点映射关系表的各项在发送端的所有进程之间进行并行排序;
第四并行排序模块6,用于对发送端-接收端网格点映射关系表的各项在接收端的所有进程之间进行并行排序;
并行生成模块7,用于根据进程局部的发送端-接收端网格点映射关系表,生成发送端与接收端的各进程与对应接收端或发送端的进程的通信路由关系。
可以理解的是,初始化模块1可用于执行上述实施例一中的步骤S1,第一并行排序模块2可用于执行上述实施例一中的步骤S2,第二并行排序模块3可用于执行上述实施例一中的步骤S3,并行建立模块4可用于执行上述实施例一中的步骤S4,第三并行排序模块5可用于执行上述实施例一中的步骤S5,第四并行排序模块6可用于执行上述实施例一中的步骤S6,并行生成模块7可用于执行上述实施例一中的步骤S7。
如图5所示,上述第一并行排序模块2还可以进一步包括:
确定模块21,用于根据网格点总数和进程数,确定排序后各进程内的网格点的全局索引范围;
第一排序模块22,用于分别对各进程的网格点局部-全局映射表中的各项进行排序;
第二排序模块23,用于在所有进程之间对网格点局部-全局索引表中的各项进行排序。
可以理解的是,确定模块21可用于执行上述实施例一中的步骤S21,第一排序模块22可用于执行上述实施例一中的步骤S22,第二排序模块23可用于执行上述实施例一中的步骤S23。第二并行排序模块3同样也可以进一步包括确定模块21、第一排序模块22和第二排序模块23。
如图6所示,上述并行建立模块4还可以进一步包括:
交换模块41,用于根据发送端与接收端的各进程的网格点全局索引范围,完成发送端各进程与接收端相应进程之间的网格点局部-全局映射表的交换;
构建模块42,用于在各进程内,根据发送端与接收端的网格点局部-全局映射表,构建发送端-接收端网格点映射关系表。
可以理解的是,交换模块41可用于执行上述实施例一中的步骤S41,构建模块42可用于执行上述实施例一中的步骤S42。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种并行通信路由建立方法,其特征在于,用于建立多进程并行的数值程序间对于相同网格上的变量的并行通信路由关系,发送变量的数值程序为发送端,接收变量的数值程序为接收端,发送端和接收端的各进程均保存部分网格点上的变量值;所述方法包括:
发送端和接收端为相同网格建立所有网格点的全局索引,发送端的各进程基于网格点全局索引构建第一网格点局部-全局映射表,接收端的各进程基于网格点全局索引构建第二网格点局部-全局映射表;
发送端对第一网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序;
接收端对第二网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序;
发送端与接收端的进程进行协作,并行建立发送端-接收端网格点映射关系表;
发送端对所述发送端-接收端网格点映射关系表的各项在发送端的所有进程之间进行并行排序;
接收端对所述发送端-接收端网格点映射关系表的各项在接收端的所有进程之间进行并行排序;
发送端与接收端的各进程根据进程局部的发送端-接收端网格点映射关系表,生成各进程与对应接收端或发送端的进程的通信路由关系。
2.根据权利要求1所述的并行通信路由建立方法,其特征在于,所述第一网格点局部-全局映射表中的各项、所述第二网格点局部-全局映射表中的各项为三元组<网格点全局索引,进程编号,网格点局部索引>。
3.根据权利要求1所述的并行通信路由建立方法,其特征在于,所述发送端对第一网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序,以及所述接收端对第二网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序,均以网格点全局索引为关键字。
4.根据权利要求1至3中任一项所述的并行通信路由建立方法,其特征在于,所述发送端对第一网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序,以及所述接收端对第二网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序,均包括:
根据网格点总数和进程数,确定排序后各进程内的网格点的全局索引范围;
分别对各进程的第一网格点局部-全局映射表/第二网格点局部-全局映射表中的各项进行排序;
在所有进程之间对第一网格点局部-全局映射表/第二网格点局部-全局映射表中的各项进行排序。
5.根据权利要求1所述的并行通信路由建立方法,其特征在于,所述发送端-接收端网格点映射关系表中的各项为五元组<网格点全局索引,发送端进程编号,发送端网格点局部索引,接收端进程编号,接收端网格点局部索引>。
6.根据权利要求1所述的并行通信路由建立方法,其特征在于,所述并行建立发送端-接收端网格点映射关系表,包括:
根据发送端与接收端的各进程的网格点全局索引范围,完成发送端各进程与接收端相应进程之间的网格点局部-全局映射表的交换;
在各进程内,根据发送端的第一网格点局部-全局映射表与接收端的第二网格点局部-全局映射表,构建发送端-接收端网格点映射关系表。
7.根据权利要求1所述的并行通信路由建立方法,其特征在于,所述发送端对所述发送端-接收端网格点映射关系表的各项在发送端的所有进程之间进行并行排序,以发送端进程编号为关键字;
所述接收端对所述发送端-接收端网格点映射关系表的各项在接收端的所有进程之间进行并行排序,以接收端进程编号为关键字。
8.一种并行通信路由建立***,其特征在于,用于建立多进程并行的数值程序间对于相同网格上的变量的并行通信路由关系,发送变量的数值程序为发送端,接收变量的数值程序为接收端,发送端和接收端的各进程均保存部分网格点上的变量值;所述***包括:
初始化模块,用于为相同网格建立所有网格点的全局索引,发送端的各进程基于网格点全局索引构建第一网格点局部-全局映射表,接收端的各进程基于网格点全局索引构建第二网格点局部-全局映射表;
第一并行排序模块,用于对第一网格点局部-全局映射表中的各项在发送端所有进程之间进行并行排序;
第二并行排序模块,用于对第二网格点局部-全局映射表中的各项在接收端所有进程之间进行并行排序;
并行建立模块,用于发送端与接收端的进程进行协作时并行建立发送端-接收端网格点映射关系表;
第三并行排序模块,用于对所述发送端-接收端网格点映射关系表的各项在发送端的所有进程之间进行并行排序;
第四并行排序模块,用于对所述发送端-接收端网格点映射关系表的各项在接收端的所有进程之间进行并行排序;
并行生成模块,用于根据进程局部的发送端-接收端网格点映射关系表,生成发送端与接收端的各进程与对应接收端或发送端的进程的通信路由关系。
9.根据权利要求8所述的并行通信路由建立***,其特征在于,所述第一并行排序模块和第二并行排序模块,均包括:
确定模块,用于根据网格点总数和进程数,确定排序后各进程内的网格点的全局索引范围;
第一排序模块,用于分别对各进程的第一网格点局部-全局映射表/第二网格点局部-全局映射表中的各项进行排序;
第二排序模块,用于在所有进程之间对第一网格点局部-全局映射表/第二网格点局部-全局映射表中的各项进行排序。
10.根据权利要求8所述的并行通信路由建立***,其特征在于,所述并行建立模块,包括:
交换模块,用于根据发送端与接收端的各进程的网格点全局索引范围,完成发送端各进程与接收端相应进程之间的网格点局部-全局映射表的交换;
构建模块,用于在各进程内,根据发送端与接收端的网格点局部-全局映射表,构建发送端-接收端网格点映射关系表。
CN202010127096.3A 2020-02-28 2020-02-28 一种并行通信路由建立方法及*** Active CN111367665B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010127096.3A CN111367665B (zh) 2020-02-28 2020-02-28 一种并行通信路由建立方法及***
PCT/CN2020/126790 WO2021169393A1 (zh) 2020-02-28 2020-11-05 一种并行通信路由建立方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010127096.3A CN111367665B (zh) 2020-02-28 2020-02-28 一种并行通信路由建立方法及***

Publications (2)

Publication Number Publication Date
CN111367665A CN111367665A (zh) 2020-07-03
CN111367665B true CN111367665B (zh) 2020-12-18

Family

ID=71206251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010127096.3A Active CN111367665B (zh) 2020-02-28 2020-02-28 一种并行通信路由建立方法及***

Country Status (2)

Country Link
CN (1) CN111367665B (zh)
WO (1) WO2021169393A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367665B (zh) * 2020-02-28 2020-12-18 清华大学 一种并行通信路由建立方法及***
CN113157806B (zh) * 2021-04-19 2022-05-24 清华大学 网格数据分布式存储服务***、方法、装置、设备及介质
CN112988907B (zh) * 2021-04-28 2022-01-21 北京卡普拉科技有限公司 一种信息调整方法、***、电子设备及存储介质
CN116319364B (zh) * 2023-02-10 2024-02-09 国家海洋环境预报中心 适用于海浪数值模式的mpi虚拟图拓扑通信方法及***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1435030A (zh) * 1999-12-10 2003-08-06 睦塞德技术公司 最长匹配地址查询的方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2440730A1 (en) * 2000-07-25 2002-01-31 Acuo Technologies, Llc Reconciling assets within a computer network
US8156421B2 (en) * 2008-06-30 2012-04-10 Yahoo! Inc. Analysis of database performance reports for graphical presentation of summary results
CN102707932B (zh) * 2012-05-16 2013-07-24 清华大学 一种用于地球***模式的并行耦合方法
US9996389B2 (en) * 2014-03-11 2018-06-12 International Business Machines Corporation Dynamic optimization of workload execution based on statistical data collection and updated job profiling
CN103970580B (zh) * 2014-05-05 2017-09-15 华中科技大学 一种面向多核集群的数据流编译优化方法
CN110764934B (zh) * 2019-10-24 2020-11-27 清华大学 面向数值模型的并行通信方法、装置、***和存储介质
CN111367665B (zh) * 2020-02-28 2020-12-18 清华大学 一种并行通信路由建立方法及***

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1435030A (zh) * 1999-12-10 2003-08-06 睦塞德技术公司 最长匹配地址查询的方法和装置

Also Published As

Publication number Publication date
CN111367665A (zh) 2020-07-03
WO2021169393A1 (zh) 2021-09-02

Similar Documents

Publication Publication Date Title
CN111367665B (zh) 一种并行通信路由建立方法及***
Ziavras RH: a versatile family of reduced hypercube interconnection networks
Koh et al. MapReduce skyline query processing with partitioning and distributed dominance tests
Dorronsoro et al. Evolutionary algorithms based on game theory and cellular automata with coalitions
Chiu et al. A genetic algorithm for reliability-oriented task assignment with k/spl tilde/duplications in distributed systems
Alsaleh et al. One-to-many node-disjoint paths routing in dense gaussian networks
Toda et al. Autonomous and distributed construction of locality aware skip graph
Jain et al. Solving travelling salesman problem using greedy genetic algorithm GGA
Guo et al. Embedding hierarchical cubic networks into k-rooted complete binary trees for minimum wirelength
Werner et al. Systematic Literature Review of Data Exchange Strategies for Range-limited Particle Interactions.
Paul Enhancement of Bubble and Insertion Sort Algorithm Using Block Partitioning
Romeijn et al. Parallel algorithms for solving aggregated shortest-path problems
Chiu et al. An adaptive heuristic algorithm with the probabilistic safety vector for fault-tolerant routing on the (n, k)-star graph
Souravlas et al. Dynamic Load Balancing on All-to-All Personalized Communications Using the NNLB Principal
Lai et al. Exploiting and evaluating MapReduce for large-scale graph mining
JP3606922B2 (ja) ハイパキュ−ブマルチコンピュ−タ−のタスク割当方法および装置
Sasidharan et al. A general space-filling curve algorithm for partitioning 2D meshes
Yang et al. A new graph approach to minimizing processor fragmentation in hypercube multiprocessors
CN115016943A (zh) 一种并行计算方法、***、设备及存储介质
Ishimizu et al. Experiment study of a structured differential evolution with mixed strategies
Bogle et al. Distributed algorithms for the graph biconnectivity and least common ancestor problems
Truong et al. Layout-conscious expandable topology for low-degree interconnection networks
Tapia et al. A Variant of Parallel-Hybrid Genetic Algorithm for Large-Scale Traveling Salesman Problem
CN111382208A (zh) 一种区块链体系结构的优化方法及优化端
An et al. Optimal Algorithms for a Mesh-Connected Computer with Limited Additional Global Bandwidth

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant