CN114880272B - 全局高度数顶点集合通信的优化方法及应用 - Google Patents
全局高度数顶点集合通信的优化方法及应用 Download PDFInfo
- Publication number
- CN114880272B CN114880272B CN202210346314.1A CN202210346314A CN114880272B CN 114880272 B CN114880272 B CN 114880272B CN 202210346314 A CN202210346314 A CN 202210346314A CN 114880272 B CN114880272 B CN 114880272B
- Authority
- CN
- China
- Prior art keywords
- vertex
- graph
- reduction
- column
- row
- 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
Links
- 230000006854 communication Effects 0.000 title claims abstract description 76
- 238000004891 communication Methods 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title abstract description 42
- 238000005457 optimization Methods 0.000 title abstract description 17
- 230000009467 reduction Effects 0.000 claims abstract description 44
- 238000009826 distribution Methods 0.000 claims abstract description 33
- 238000004364 calculation method Methods 0.000 claims abstract description 13
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 10
- 230000008859 change Effects 0.000 claims abstract description 8
- 239000003795 chemical substances by application Substances 0.000 description 18
- 238000012545 processing Methods 0.000 description 18
- 238000000638 solvent extraction Methods 0.000 description 17
- 230000015654 memory Effects 0.000 description 15
- 238000005192 partition Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000001353 Chip-sequencing Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011946 reduction process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供基于分布式并行计算的图计算方法、分布式并行计算系统和计算机可读介质。图计算方法包括:获得要计算的图的数据,图包括多个顶点和边,对于源顶点和目标顶点的度数均大于预定阈值的子图,针对目标顶点的归约分发(Reduce Scatter)类型通信,执行如下操作:对于行、列上的归约,使用环式算法;对于全局的归约,首先在本地对消息进行转置,使数据由行优先变为列优先,然后先调用行上的归约分发,再调用列上的归约分发,以缩减列上的跨超节点通信。本公开的图计算方法通过集合通信优化,能够缩减列上的跨超节点通信,分级的归约分发在第一步行内的归约中消除了超节点内的冗余数据,使得第二步中跨超节点的通信是最小的、无冗余的。
Description
技术领域
本发明总体地涉及三类顶点度数感知的1.5维度图划分方法及应用,更具体地涉及大规模(large-scale)图计算方法、分布式并行计算系统和计算机可读介质。
背景技术
图计算框架是用于支持图计算应用的一类通用编程框架。在中国新一代神威超级计算机上,提供了新一代的“神图”超大规模图计算框架,以支持最大整机规模、数十万亿顶点、三百万亿边的大规模图计算应用。
图计算应用是一类数据密集型应用,它们依托于由顶点和连接两个顶点的边所组成的数据进行计算。典型的应用包括用于网页重要性排序的PageRank、用于图遍历的宽度优先搜索(BFS)、用于图的弱联通分量(WCC)求解的标签传播、单源最短路径(SSSP)等等。
通用图计算领域中,近年来的前沿工作主要集中在单机或较小规模的集群上。单机内存上的工作包括Ligra(非专利文献[1])及其研究组后续的Graphlt非专利文献[2],分别引入了一套简化的顶点中心表示、一个图计算领域专用语言,采用了NUMA-aware、分段子图等多种内存优化;分布式内存上的工作包括本研究组的Gemini非专利文献[3],以及稍晚后国际同行提出的Gluon(也即D-Galois)非专利文献[4],从不同角度解决了数个到数百节点的小规模集群上的图计算问题的并行处理。此外,外存上的工作较为优秀的有Mosaic非专利文献[5],使用了单台具备多块SSD的节点完成了十亿边图的处理。
大规模图数据需要被划分到分布式图计算系统的各个计算节点上。通常存在两类划分方法:一维划分方法和二维划分方法。一维划分方法是以点为中心的划分方法,按照此方法,数据图中的顶点被均匀地划分给不同的机器,每个顶点与它所有的邻边都存储在一起,这样重度顶点(出度或入度高的顶点)会在很多节点设置代理。二维划分方法是基于边的划分方法,不同于一维划分,二维划分将图中的边(而不是点)均分给各个计算节点从而达到负载均衡的目的,二维划分相当于在顶点的所在的行和列上部署代理。对于大规模图计算,图数据负载严重不均衡,表现在不同顶点的边严重不均衡,不同顶点的度差异非常大,这时一维划分和二维划分都会面临可扩展性问题,一维顶点划分方法会使得太多的重度顶点要部署近乎全局代理,二维顶点划分方法使得太多的顶点要在行和列上部署代理。
在中国,超级计算机广泛采用异构众核结构,在大规模的计算集群中,每个计算节点具备不同架构的大量计算核心。负载不均衡的图计算对于国产异构众核结构也提出了较大的挑战,需要从计算、存储、通信性能角度来优化国产异构众核系统上的图计算。
上面参考文献[1]——[5]具体信息如下:
[1]Julian Shun and Guy E Blelloch.2013.Ligra:a lightweight graphprocessing framework for shared memory.In Proceedings of the 18th ACM SIGPLANsymposium on Principles and practice of parallel programming.135-146.
[2]Yunming Zhang,Mengiiao Yang,Riyadh Baghdadi,Shoaib Kamil,JulianShun,and Saman Amarasinghe.2018.Graphit:A highperformance graphdsl.Proceedings of the ACM on Programming Languages 2,OOPSLA(2018),1-30.
[3]Xiaowei Zhu,Wenguang Chen,Weimin Zheng,and XiaosongMa.2016.Gemini:A computation-centric distributed graph processing system.In12th USENIX symposium on operating systems design and implementation(OSDI16).301-316.
[4]Roshan Dathathri,Gurbinder Gill,Loc Hoang,Hoang-Vu Dang,AlexBrooks,Nikoli Dryden,Marc Snir,and KeshaV Pingali.2018.Gluon:a communication-optimizing substrate for distributed heterogeneous graph analytics.SIGPLANNot.53,4(April 2018),752-768.
[5]Steffen Maass,Changwoo Min,Sanidhya Kashyap,Woonhak Kang,MohanKumar,and Taesoo Kim.2017.Mosaic:Processing a Trillion-Edge Graph on a SingleMachine.In Proceedings of the Twelfth European Conference on Computer Systems(EuroSys′17).Association for Computing Machinery,New York,NY,USA,527-543.
发明内容
鉴于上述情况,提出了本发明。
根据本发明的一个方面,提供了一种基于分布式并行计算的图计算方法,分布式并行计算系统具有多个超节点,每个超节点由多个节点组成,每个节点是具有计算能力的计算设备,超节点内部的节点间通信比跨越超节点的节点间的通信速度快,节点被划分为网格,每个格子一个节点,一个超节点的内部节点逻辑上排列为一行,包括:获得要计算的图的数据,图包括多个顶点和边,其中每个顶点表示相应运算,其中每个边将相应第一顶点连接至相应第二顶点,所述相应第二顶点表示的运算接收由所述相应第一顶点所表示的运算的输出作为输入,边X→Y表示从顶点X到顶点Y的边;对于源顶点和目标顶点的度数均大于预定阈值的子图,针对目标顶点的归约分发(Reduce Scatter)类型通信,执行如下操作:对于行、列上的归约,使用环式算法;对于全局的归约,首先在本地对消息进行转置,使数据由行优先变为列优先,然后先调用行上的归约分发,再调用列上的归约分发,以缩减列上的跨超节点通信。
根据本发明的另一方面,提供了一种分布式并行计算系统,具有多个超节点,每个超节点由多个节点组成,每个节点是具有计算能力的计算设备,超节点内部的节点间通信比跨越超节点的节点间的通信速度快,节点被划分为网格,每个格子一个节点,一个超节点的内部节点逻辑上排列为一行,所述分布式并行计算系统按照如下规则存储图和执行图计算:获得要计算的图的数据,图包括多个顶点和边,其中每个顶点表示相应运算,其中每个边将相应第一顶点连接至相应第二顶点,所述相应第二顶点表示的运算接收由所述相应第一顶点所表示的运算的输出作为输入,边X→Y表示从顶点X到顶点Y的边,对于源顶点和目标顶点的度数均大于预定阈值的子图,针对目标顶点的归约分发(Reduce Scatter)类型通信,执行如下操作:对于行、列上的归约,使用环式算法;对于全局的归约,首先在本地对消息进行转置,使数据由行优先变为列优先,然后先调用行上的归约分发,再调用列上的归约分发,以缩减列上的跨超节点通信。
根据本发明另一方面,提供了一种计算机可读介质,其上存储有指令,所述指令在由分布式并行计算系统执行时,执行下述操作,其中分布式并行计算系统具有多个超节点,每个超节点由多个节点组成,每个节点是具有计算能力的计算设备,超节点内部的节点间通信比跨越超节点的节点间的通信速度快,节点被划分为网格,每个格子一个节点,一个超节点的内部节点逻辑上排列为一行:获得要计算的图的数据,图包括多个顶点和边,其中每个顶点表示相应运算,其中每个边将相应第一顶点连接至相应第二顶点,所述相应第二顶点表示的运算接收由所述相应第一顶点所表示的运算的输出作为输入,边X→Y表示从顶点X到顶点Y的边;对于源顶点和目标顶点的度数均大于预定阈值的子图,针对目标顶点的归约分发(Reduce Scatter)类型通信,执行如下操作:对于行、列上的归约,使用环式算法;对于全局的归约,首先在本地对消息进行转置,使数据由行优先变为列优先,然后先调用行上的归约分发,再调用列上的归约分发,以缩减列上的跨超节点通信。
通过上述集合通信优化,能够缩减列上的跨超节点通信。分级的归约分发在第一步行内的归约中消除了超节点内的冗余数据,使得第二步中跨超节点的通信是最小的、无冗余的。
附图说明
图1示出了根据本发明实施例的具备超节点的能够被应用来实现本发明的图数据计算的超计算机神威架构示意图。
图2示出了根据本发明实施例的图划分策略的示意图。
图3示出了在本发明实施方式的1.5维划分中,整机规模下的子图边数分布示意图。
图4示出了传统的图以稀疏矩阵形式存储(图4的左侧部分)和按照本发明实施例的分段子图存储优化(图4中的右侧部分)的示意图。
图5示出了根据本发明实施例的归约分发类型通信的处理示意图。
图6示意性地示出根据本发明实施例的对从核分类、核组内数据分发、写外部桶的过程的流程图。
具体实施方式
给出本文中使用的一些术语解释。
节点:每个节点是具有计算能力的计算设备。
超节点:由预定数目个节点组成超节点,超节点内部的节点间通信在物理上比跨越超节点的节点间的通信速度快。
维护顶点状态:在需要进行相关的边处理时,若关联的顶点不属于本机,则从顶点的所属节点通过网络通信同步顶点状态数据以建立代理(delegate),从而使得边的更新操作可以直接操作本地的代理而无需操作远程的顶点原本。
顶点的代理(delegate):当关联的顶点不属于本机时,通过通信建立的、负责边的本地更新的副本,称为顶点的代理(delegate)。一个代理可以用于代理出边和代理入边:代理出边时,源顶点通过通信将当前状态同步至其代理;代理入边时,代理首先将部分边消息在本地合并,再将合并后的消息通过通信发送至目标顶点。
从核:异构众核架构中的计算处理单元(CPE)。
作为示例而非限制,本文中的图数据例如是社交网络、网页数据、知识图谱这种,以数据形式记录、存在和处理的图。图的规模可以例如达到数十万亿顶点、数百万亿边。
大规模图数据需要被划分到分布式图计算系统的各个计算节点上。
图1示出了根据本发明实施例的具备超节点的能够被应用来实现本发明的图数据计算的超计算机神威架构示意图。图中,MPE表示管理处理单元(简称主核),NOC表示片上网络,CPE表示计算处理单元(简称从核),LDM表示本地数据存储,NIC表示互连网卡,LDM表示本地数据存储器(Local Data Memory),MC表示存储器控制器(memory controller)。
图包括多个顶点和边,其中每个顶点表示相应运算,其中每个边将相应第一顶点连接至相应第二顶点,所述相应第二顶点表示的运算接收由所述相应第一顶点所表示的运算的输出作为输入,边X→Y表示从顶点X到顶点Y的边。
如图所示,裁剪胖树(oversubscribed fat tree)是一种互连网络的拓扑结构,各个超节点通过裁剪胖树的中央交换网络互相连接、实现通信,各超节点内的处理器则通过局部的快速网络实现通信;与之相对地,跨越超节点的通信需要通过裁剪胖树,因此带宽较低、延迟较高。
I.第一实施方案:基于3级别度数的1.5维图划分
根据本发明一个实施例,提供了一种基于三类度数顶点的混合维度划分方法,对顶点集合按度数分为极高度数(E for Extreme,例如度数大于总节点数)、高度数(H forHigh,例如度数大于超节点内的节点数)、常规顶点(R for Regular)三类,有时R类顶点也被称为L类顶点(L for Low,即度数相对低的顶点);对有向图,则按入度和出度分别划分,入度划分集合和出度划分集合分别标记为Xi、Xo,其中X为E、H或R。在本实施例中,同时,由预定数目个节点组成超节点,超节点内部的节点间通信比跨越超节点的节点间的通信速度快,将节点划分为网格,每个格子一个节点,一个超节点的内部节点逻辑上排列为一行,或者说一行被映射到超节点,顶点按编号均匀划分到各节点,Ri、Ro由所属节点维护,在列上同步维护Ho顶点状态,在列上和行上同步维护Hi顶点状态,全局同步维护Eo、Ei顶点状态。在本文中,为描述方便,Eo、Ho合称为EHo,表示Eo、Ho,Ei、Hi合称为EHi,表示Ei、Hi。
关于节点归类,将度数大于第一阈值的顶点标记为E,划分为极高度数类,将度数处于第一阈值和第二阈值之间的顶点标记为H,划分为高度数类,将度数低于第二阈值的顶点标记为R,划分为普通类,第一阈值大于第二阈值。这里的阈值可以根据需要设置,例如在一个示例中,第一阈值为总节点数,也就是说度数大于总节点数的顶点归于极高度数类,第二阈值为超节点内的节点数,也就是说,度数大于超节点内的节点数而小于总节点数的顶点归为高度数类,而度数小于超节点内的节点数的顶点为普通类。在另一个示例中,第一阈值为总节点数乘以一个常数系数,第二阈值为超节点内的节点数乘以第二常数系数。
不同的划分策略可以视为不同的代理策略。
为Eo、Ei顶点在全部节点上设置代理。这些极高度数顶点应当连接有大量的、另一端覆盖几乎全部节点的边。针对E顶点,在所有节点上创建代理有助于减少通信。
为Ho顶点在列上布置代理,且沿着行来传出消息;为Hi顶点在行上和列上布置代理,且根据边所属的子图不同,选择在行上或列上的代理合并消息后发送至目标顶点。在遍历过程中,具有中等度数的顶点一般连接着数量较多、因而另一端覆盖了所有超节点的边。H顶点明显多于E顶点,如果像E顶点那样为H顶点布置全局代理,会导致大量不必要的通信。考虑到分层网络拓扑,不创建代理会导致数据重复跨越超级节点通信,即同样数据不停地送往或者流出超节点内的不同节点,从而造成瓶颈。将这些H顶点在行和列上布置代理。有助于消除消息向同-个超级节点的重复发送,同时避免代价高昂的全局代理。
对于R顶点不设置代理。作为具有足够低度数的顶点,为它们布置代理几乎没有收益,却需要时间和空间来管理代理。因此不为R顶点设置代理,而是采用远程边来与其他顶点连接。当要访问这些边时,需要每条边地进行消息传递:Ro顶点要更新邻居顶点时,将自身编号和边消息通过网络通信一同发送至目标顶点或其入边代理以实现更新;Ri顶点要接受邻居顶点的更新要求时,邻居(源)顶点从自身或通过出边代理将源编号和边消息通过网络通信发送至Ri顶点以实现更新。
图2示出了根据本发明实施例的图划分策略的示意图。
在一个优选实施例中,如图2所示,按照边的情况进行顶点对应代理的分配和存储。图2以及其他图中的X2Y形式的写法,表示从源顶点X到目标顶点Y的边,2表示英文to。
对于边EHo→EHi,将这类边存储在源顶点所在节点所在的网格列、目标顶点所在节点所在的网格行的节点上,即对高度数顶点内部的子图采用二维划分,最小化通信量。例如图2中所示的节点01中所示的那样。
对于边Eo→Ri,将这类边存储在R顶点所在节点上,以允许计算时全局维护极高度数顶点,首先将顶点状态发送至Eo顶点的代理,再通过代理更新本机上的Ri顶点,减少需要通信的消息量。例如图2的节点11中所示的边E->L2。
对于边Ho→Ri,将这类边存储在H顶点所在节点所在的网格列、R顶点所在节点所在的网格行的节点上,以允许计算时在列上维护高度数顶点,在跨超节点的通信中聚合其通信消息,当对于Ho顶点,消息需要发送到同一个超节点的多个目标顶点时,因为源顶点在自己所在列、目标所在行的位置有一个可用的代理节点,所以先将一条消息跨超节点地发送到该可用的代理节点,然后由该可用的代理节点通过超节点内的快速网络发送给所有的目标顶点。
对于边Ro→Ei,将这类边存储在R顶点所在节点上,以允许计算时全局维护极高度数顶点,聚合其通信消息;例如图2中的节点11。
对于边Ro→Hi,将这类边存储在R顶点所在节点,但H顶点按所在列上的编号存储,以允许计算时在R所在行、H所在列的节点上累加其更新消息,聚合跨超节点的网络通信;例如图2中节点点01中的L1-H的通信。
对于边Ro→Ri,将这类边在源、目标顶点处分别存储正向和反向边,边消息通过在通信网格上进行行列转发实现。例如图2中的节点00和11中的L1和L2。
上述三类顶点和六类边划分能够有效解决幂律分布带来的强烈的负载偏斜:高度数顶点所关联的边,无论出入,都会视情况按照二维划分或对侧的一维划分存放,在全局平均地保持了边的数量,进而保证了存储和负载的双均衡。这样的划分能够解决极端图中特大顶点的问题。
经过上述分类,对H顶点集合的处理相比单纯的一维划分的高度数顶点处理高效许多。例如,原本需要每条边发送消息的Ho顶点,会向同一超节点中的多个节点发送消息,从而挤兑顶层网络带宽;经此优化,消息只会向每个超节点发送一次,从而节省了顶层网络。同时,由于只向目标超节点中的一个代理节点发送一次,也不会引入大量的无用通信和额外存储。
作为一个应用示例,在本发明实施方式的1.5维划分中,整机规模下的子图边数分布如图3所示(按累计分布函数绘制),极差(即最大值与最小值之相对偏差)在EH2EH中不超过5%,其它子图中仅为0.35%。
作为实现示例,从所有顶点中选择出来E和顶点,并按照度数对每个节点进行排序。其余顶点为L顶点,保留原始顶点ID。我们进-将原始边集合拆分为6个部分。由于E和H在列和行上有代理,因此,两端为E或H(有时候,本文称之为EH2EH,或者EH->EH)的子图是2D划分的。从E到L(E2L)和从L到E(L2E)的两个子图都附加了L的所有者,就像1D划分中的重度顶点(heavy vertex)与重代理(heavy delegate)一样。同名,我们将H2L分布在H的所有者的列上,限制行内的消息传递。L2H仅存储在L的所有者身上,与H2L相反。最后,L2L是最简单的组件,就像在原始的1D划分中一样。生成的划分可以如图2所示。每个子图在节点之间都很好地平衡,即使是在全尺度下也是如此。将在后文介绍这种划分方法的平衡。
|H|=0时,即不存在高度数顶点,只有极高度数顶点和普通顶点,本发明实施例的方法退化为类似于具有密集代理(heavy delegate)的一维分区,不同在于本发明中重量级顶点(heavy vertex)之间的边是二维分区的。与具有密集代表的一维分区相比,本发明的方法将高度数顶点进一步隔离为两个级别,从而产生拓扑感知的数据分区。它保留了足够的重顶点,以便在方向优化中更好地提前退出。它还通过仅在行和列上为H设置代理来避免全局共享所有这些重顶点的通信。
当|L|=0时,即当只有极高度数顶点和高度数定点时,它退化为具有顶点重新排序的二维划分。与2D划分相比,我们的方法避免了低度(L)顶点的低效代理,消除了2D划分的空间限制。此外,本发明实施例还为超重(E)顶点构造全局代理,从而减少通信。
II.第二实施方案:子迭代自适应方向选择
根据本发明的一个实施例,还提出了支持快速退出的子迭代自适应方向选择。
在许多图算法中,图的遍历方向,即从源顶点“推送”至目标顶点还是从目标顶点“拉取”源顶点,会极大影响性能。例如:
1.BFS(宽度优先搜索)中,较宽的中间迭代如果使用“推送”模式,会使得大量顶点被重复激活,较窄的头尾迭代如果使用“拉取”模式,会由于活跃顶点比例很低导致许多无用计算,需要在两个方向间自动切换选择;
2.PageRank中,本地遍历图并归约的子图应当使用“拉取”模式来取得最优的计算性能(“拉取”是随机读,“推送”是随机写),而涉及远程边消息的子图应当使用“推送”模式以最小化通信量。
针对此情况,提出了子迭代自适应方向选择的实施例。具体地,实现“推送”和“拉取”两种遍历模式,且支持根据活跃顶点比例自动选择遍历模式,更具体地,对于EHo→EHi、Eo→Ri、Ro→Ei三类本地计算的边,根据目标顶点的活跃比例是否超过可配置的阈值选择“拉取”或“推送”模式;对于Ho→Ri、Ro→Hi、Ro→Ri三类本地计算的边,根据目标顶点的活跃比例与源顶点的活跃比例之比值是否超过可配置的阈值选择“拉取”或“推送”模式。
在进行宽度优先搜索中,判断迭代处于头尾还是中间,当判断迭代处于头尾时,采用从目标顶点“拉取”到源顶点的方式来进行图遍历;当判断迭代处于中间时,采用源顶点“推送”至目标顶点的方式来进行图遍历;以及
在PageRank中,本地遍历图并归约的子图使用“拉取”模式来取得最优的计算性能,而涉及远程边消息的子图使用“推送”模式以最小化通信量。
在拉取的方式下,设置顶点的状态标记,用于判断一个顶点的状态是否已经抵达了死状态,在死状态,顶点不会响应更多的消息;在确认达到死状态后,跳过剩余消息的处理。
例如通过下面的代码提供快速退出的接口来支持遍历类算法的性能优化:用户可以通过传入参数fcond,判断一个消息是否还会被更新,以实现剩余消息的跳过。
template<typenameMsg>void edge_map(
auto&vset_out,auto&vset_in,
std::initializer_list<vertex_data_base*>src_data,
std::initializer_list<vertex_data_base*>dst_data,
auto fmsg,auto faggr,auto fapply,
auto fcond,Msg zero);
通过上述支持快速退出的子迭代自适应方向选择的实施方案,能够自适应切换遍历方向,避免无用计算,最小化通信量,优化图计算性能。
III.第三实施方案:对EH二维划分子图的分段子图数据结构优化
在幂律分布图中,由模拟发现,EHo→EHi这一子图的边数将占到全图的60%以上,是最重要的计算优化目标。对这一子图,提出引入分段子图(Segmented Sub-Graph,SSG)数据结构进行优化的实施方案。
压缩稀疏行(Compressed Sparse Row,CSR)格式是最常见的图和稀疏矩阵的存储格式。在这一格式当中,同一个顶点的所有邻边连续存储,辅以偏移量数组来支撑其索引功能。由于单一大图的顶点范围过大,访问邻居顶点的数据的时空局部性非常差,提出了如下分段子图方法:对源顶点和目标顶点都属于高度数的子图(稀疏矩阵),正向图按目标顶点(矩阵的列)进行分段,反向图中按源顶点(矩阵的行)进行分段(这里正向图指从源顶点到目标顶点的有向图,反向图指从目标顶点到源顶点的图),将一个图分为多个SSG分量,从而使得每个SSG中目标顶点限制在一定范围内。作为示例,在通常的通用处理器中,这一范围一般选择能够存储在末级高速缓存(LLC,Last Level Cache)的大小。图4示出了传统的图以稀疏矩阵形式存储(图的左侧部分)和按照本发明实施例的分段子图存储优化(图4中的右侧部分)。
在一个示例中,针对中国国产异构众核处理器的体系结构特征,选择使用本地数据存储器LDM(Local Data Memory)的远程访问机制来替换LLC上的快速随机目标访问。首先,将一个SSG的目标顶点切分存储在一个从核阵列的LDM上,然后在遍历图的过程中,通过从核访问RLD(Remote Load)从所属核心(也即目标顶点的数据所属从核)获取数据。结合高度数顶点数量较少的特性,即使在很大的规模上,依然可以通过较少数量的分段子图就能够将EHo→EHi子图处理中的随机访问全部通过LDM来实现,而无需使用主存上的离散访问(GLD、GST)。
在一个示例中,对所述第一极高度数类、第二高度数类别的目标顶点按照如下规则进行编号:从高位到低位为分段编号、缓存行编号、从核编号和从核本地编号。在一个具体示例中,缓存行编号的位数根据顶点数据元素大小总和计算,以确保本地数据存储器LDM能够全部存放下;此后六位用于区分所属的从核编号(例如,共26=64个从核);从核本地编号的位数根据顶点数据元素大小最小值计算,以确保DMA效率。更具体,每个从核可以根据从核编号位,首先使用带跨步(strided)的DMA操作预取分段内的顶点数据;在拉取模式的边处理过程中,读取读取第一极高度数类、第二高度数类的目标顶点EHi时使用本地数据存储器远程加载LDM RLD读取源顶点所属从核的LDM相应地址。
通过本实施例的针对EH顶点的分段子图方法对图(稀疏矩阵)按目标顶点(矩阵的列)进行分段,将一个图分为多个SSG分量,从而使得每个SSG中目标顶点限制在一定范围内,避免或减轻了传统的由于单一大图的顶点范围过大导致访问邻居顶点的数据的时空局部性非常差的问题。
第三实施方案的分段子图方法并不局限于第一实施方案的1.5维度图划分方法,而是可以应用于依据任何其他标准划分的作为相对高度数顶点的源顶点和目标顶点构成的子图。
IV.第四实施方案:高度数顶点的集合通信优化
在顶点中心的图计算编程模型中,顶点数据的归约是用户提供的自定义函数,无法映射至MPI的归约算子。高度数顶点数据的归约过程和它们所需的计算有着较大的循环合并空间、涉及的访存量也较为显著,本实施例使用从核组对这一通信过程进行优化,优化过程可以内嵌在EH子图的处理中进行。
具体地,实施例中,对于第一极高度数类、第二高度数类的目标顶点EHi的归约分发(Reduce Scatter)类型通信,进行如下优化处理:对于行、列上的归约,使用环式算法;对于全局的归约,首先在本地对消息进行转置,使数据由行优先变为列优先,然后先调用行上的归约分发,再调用列上的归约分发,以缩减列上的跨超节点通信。图5示出了根据本发明实施例的归约分发类型通信的处理示意图。
通过上述集合通信优化,能够缩减列上的跨超节点通信。分级的归约分发在第一步行内的归约中消除了超节点内的冗余数据,使得第二步中跨超节点的通信是最小的、无冗余的。
第四实施方案的集合通信方法并不局限于使用了第一实施方案的1.5维度图划分方法的图计算,而是可以应用于依据任何其他标准划分的作为相对高度数顶点的源顶点和目标顶点构成的子图。
V.第五实施方案:基于RMA的片上排序核心
在消息通信中,由于生成的消息是无序的,需要首先按照目标节点进行分桶,才能进行Alltoallv(变长全局到全局)的通信。此外,消息生成部分也需要一个分桶步骤来将消息分给目标节点。因此,需要一个通用的核心模块,对消息进行桶排序。
桶排序中,如果简单地在从核间进行并行,一方面会带来多个从核写同一个桶的冲突、引入原子操作开销,另一方面每个从核照顾太多的桶会缩小LDM缓冲区的大小,降低访存带宽利用效率。结合以上两点考虑,本实施方案基于核组无锁数据分发的思想,在新的众核平台架构上进行了全新的设计,将从核按功能分类、利用RMA(远程内存访问,RemoteMemory Access)操作在核组内先进行一轮数据分发,再进行写外部桶的访存。图6示意性地示出根据本发明实施例的对从核分类、核组内数据分发、写外部桶的过程的流程图,图中CPE核组排为8*8的阵列。
在一个示例中,所述过程在异构众核处理器上进行,边消息的处理中,消息生成部分和消息重排部分采用分桶步骤来将消息分给目标节点;
将从核按行分为2类,生产者和消费者,其中生产者从内存获取数据,进行当前阶段的数据处理,如果有生成数据则根据目标地址置入对应于应当处理此消息的消费者的发送缓冲中,缓冲满时通过RMA传递给相应的消费者。消费者接收RMA传递过来的消息,进行后续的需要互斥的操作(例如追加在主存中的通信缓冲区尾部,或更新顶点状态)。
为了让例如神威超计算机架构中一个计算节点的六个核组能够协作进行片上排序,在核组内,按照行优先顺序对生产者和消费者分别编号为0-31,让每个核组的同号消费者负责相同的输出桶,核组间通过主存上的原子取并加(使用原子比较赋值实现)来实现桶尾位置的计数。测试显示这一原子操作在访存粒度足够时不会引入显著的开销。
通过上述实施例的片上排序模块直接进行消息的生成和转发分桶操作,实现了从核加速,提高了处理效率,是本领域此方面实现从无到有的重大创新。
第五实施方案的集合通信方法并不局限于使用了第一实施方案的1.5维度图划分方法的图计算,而是可以应用于其他情况。
VI.第六实施方案:低度数顶点的二阶段更新
在异构众核处理器上进行,边消息的处理中,消息更新部分使用二阶段排序实现本地顶点的随机更新:
首先对准备进行的所有更新操作进行桶排序,将顶点按编号聚类归入同一桶内,将所有消息排序入各个桶中,保证每个桶内的顶点数量小到顶点信息可以放在一个核组的LDM中,称为粗粒度排序;下一步细粒度排序更新中,从核组中每一个每次处理一个桶的消息,通过片上排序将消息分组传递给各个消费者核,每个消费者核负责不同的顶点区间,然后进行顶点互斥的更新。
通过上述低度数顶点的二阶段更新操作,避免了对大范围的目标顶点的零散随机访问,提高了顶点更新的通量;同时,先后二阶段的更新操作相比组成同时进行的流水线,能够更有效地利用全部从核组,避免流水环节之间的负载不均衡。
上述实施方案还可以结合和/或利用其他方式实施,例如分布式并行计算系统、计算机可读存储介质、各种语言的计算机程序。
根据另一实施方式,提供了一种分布式并行计算系统,具有多个超节点,每个超节点由多个节点组成,每个节点是具有计算能力的计算设备,超节点内部的节点间通信比跨越超节点的节点间的通信速度快,节点被划分为网格,每个格子一个节点,一个超节点的内部节点逻辑上排列为一行,所述分布式并行计算系统按照如下规则存储图和执行图计算:获得要计算的图的数据,图包括多个顶点和边,其中每个顶点表示相应运算,其中每个边将相应第一顶点连接至相应第二顶点,所述相应第二顶点表示的运算接收由所述相应第一顶点所表示的运算的输出作为输入,边X→Y表示从顶点X到顶点Y的边,将顶点按照度数划分为第一极高度数类,第二高度数类和第三普通类,其中将度数大于第一阈值的顶点标记为E,划分为第一极高度数类,将度数处于第一阈值和第二阈值之间的顶点标记为H,划分为第二高度数类,将度数低于第二阈值的顶点标记为R,划分为第三普通类,第一阈值大于第二阈值;对有向图,则按入度和出度分别划分,入度划分集合和出度划分集合分别标记为Xi、Xo,其中X为E、H或R,将顶点按编号均匀划分到各节点,Ri、Ro由所属节点维护,在列上同步维护Ho顶点状态,在列上和行上同步维护Hi顶点状态,全局同步维护Eo、Ei顶点状态,Eo、Ho合称为EHo,Ei、Hi合称为EHi。
根据另一实施方式,提供了一种分布式并行计算系统,一种计算机可读介质,其上存储有指令,所述指令在由分布式并行计算系统执行时,执行下述操作:获得要计算的图的数据,图包括多个顶点和边,其中每个顶点表示相应运算,其中每个边将相应第一顶点连接至相应第二顶点,所述相应第二顶点表示的运算接收由所述相应第一顶点所表示的运算的输出作为输入,边X→Y表示从顶点X到顶点Y的边,将顶点按照度数划分为第一极高度数类,第二高度数类和第三普通类,其中将度数大于第一阈值的顶点标记为E,划分为第一极高度数类,将度数处于第一阈值和第二阈值之间的顶点标记为H,划分为第二高度数类,将度数低于第二阈值的顶点标记为R,划分为第三普通类,第一阈值大于第二阈值;对有向图,则按入度和出度分别划分,入度划分集合和出度划分集合分别标记为Xi、Xo,其中X为E、H或R,同时,由预定数目个节点组成超节点,每个节点是具有计算能力的计算设备,超节点内部的节点间通信比跨越超节点的节点间的通信速度快,将节点划分为网格,每个格子一个节点,一个超节点的内部节点逻辑上排列为一行,顶点按编号均匀划分到各节点,Ri、Ro由所属节点维护,在列上同步维护Ho顶点状态,在列上和行上同步维护Hi顶点状态,全局同步维护Eo、Ei顶点状态,Eo、Ho合称为EHo,Ei、Hi合称为EHi。
前文的叙述中,作为示例,描述了由超级计算机执行图计算方法,不过此仅为示例而非作为限制,本领域技术人员清楚,有些方法也可以例如由规模更小的集群来执行。
虽然本说明书包含许多具体实施细节,但这些不应被解释为对任何发明或可能要求保护的内容的范围加以限制,而应被理解为可能针对特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也能够在单个实施例中组合实现。反之,在单个实施例的上下文中描述的各种特征也能够在多个实施例中单独实现或者以任何适当的子组合实现。此外,尽管在上文可以将特征描述为以某些组合进行动作乃至最初如此要求保护特征,但来自要求保护的组合的一个或多个特征在一些情形下能够从所述组合中排除,并且所要求保护的组合可以涉及子组合或者子组合的变型。
类似地,虽然在图中以特定次序来描绘操作,但这不应被理解为要求以所示的特定次序或者以顺序来执行这样的操作或者执行所有图示的操作来获得期望的结果。在某些情况下,多任务以及并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中皆要求这样的分离,而应理解,所述的程序组件和系统一般能够共同整合到单个软件产品中或者封装到多个软件产品中。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (3)
1.一种基于分布式并行计算的图计算方法,分布式并行计算系统具有多个超节点,每个超节点由多个节点组成,每个节点是具有计算能力的计算设备,超节点内部的节点间通信比跨越超节点的节点间的通信速度快,节点被划分为网格,每个格子一个节点,一个超节点的内部节点逻辑上排列为一行,包括:
获得要计算的图的数据,图包括多个顶点和边,其中每个顶点表示相应运算,其中每个边将相应第一顶点连接至相应第二顶点,所述相应第二顶点表示的运算接收由所述相应第一顶点所表示的运算的输出作为输入,边X→Y表示从顶点X到顶点Y的边,
对于源顶点和目标顶点的度数均大于预定阈值的子图,针对目标顶点的归约分发(Reduce Scatter)类型通信,执行如下操作:对于行、列上的归约,使用环式算法;对于全局的归约,首先在本地对消息进行转置,使数据由行优先变为列优先,然后先调用行上的归约分发,再调用列上的归约分发,以缩减列上的跨超节点通信。
2.一种分布式并行计算系统,具有多个超节点,每个超节点由多个节点组成,每个节点是具有计算能力的计算设备,超节点内部的节点间通信比跨越超节点的节点间的通信速度快,节点被划分为网格,每个格子一个节点,一个超节点的内部节点逻辑上排列为一行,所述分布式并行计算系统按照如下规则存储图和执行图计算:
获得要计算的图的数据,图包括多个顶点和边,其中每个顶点表示相应运算,其中每个边将相应第一顶点连接至相应第二顶点,所述相应第二顶点表示的运算接收由所述相应第一顶点所表示的运算的输出作为输入,边X→Y表示从顶点X到顶点Y的边,
对于源顶点和目标顶点的度数均大于预定阈值的子图,针对目标顶点的归约分发(Reduce Scatter)类型通信,执行如下操作:对于行、列上的归约,使用环式算法;对于全局的归约,首先在本地对消息进行转置,使数据由行优先变为列优先,然后先调用行上的归约分发,再调用列上的归约分发,以缩减列上的跨超节点通信。
3.一种计算机可读介质,其上存储有指令,所述指令在由分布式并行计算系统执行时,执行下述操作,其中分布式并行计算系统具有多个超节点,每个超节点由多个节点组成,每个节点是具有计算能力的计算设备,超节点内部的节点间通信比跨越超节点的节点间的通信速度快,节点被划分为网格,每个格子一个节点,一个超节点的内部节点逻辑上排列为一行,:
获得要计算的图的数据,图包括多个顶点和边,其中每个顶点表示相应运算,其中每个边将相应第一顶点连接至相应第二顶点,所述相应第二顶点表示的运算接收由所述相应第一顶点所表示的运算的输出作为输入,边X→Y表示从顶点X到顶点Y的边,
对于源顶点和目标顶点的度数均大于预定阈值的子图,针对目标顶点的归约分发(Reduce Scatter)类型通信,执行如下操作:对于行、列上的归约,使用环式算法;对于全局的归约,首先在本地对消息进行转置,使数据由行优先变为列优先,然后先调用行上的归约分发,再调用列上的归约分发,以缩减列上的跨超节点通信。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210346314.1A CN114880272B (zh) | 2022-03-31 | 2022-03-31 | 全局高度数顶点集合通信的优化方法及应用 |
PCT/CN2022/114561 WO2023184834A1 (zh) | 2022-03-31 | 2022-08-24 | 全局高度数顶点集合通信的优化方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210346314.1A CN114880272B (zh) | 2022-03-31 | 2022-03-31 | 全局高度数顶点集合通信的优化方法及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114880272A CN114880272A (zh) | 2022-08-09 |
CN114880272B true CN114880272B (zh) | 2024-06-07 |
Family
ID=82668765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210346314.1A Active CN114880272B (zh) | 2022-03-31 | 2022-03-31 | 全局高度数顶点集合通信的优化方法及应用 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114880272B (zh) |
WO (1) | WO2023184834A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880272B (zh) * | 2022-03-31 | 2024-06-07 | 深圳清华大学研究院 | 全局高度数顶点集合通信的优化方法及应用 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304253A (zh) * | 2017-12-28 | 2018-07-20 | 武汉理工大学 | 基于缓存感知和数据本地性的map任务调度方法 |
CN108509270A (zh) * | 2018-03-08 | 2018-09-07 | 中国科学院软件研究所 | 一种国产申威26010众核处理器上K-means算法的高性能并行实现方法 |
CN108804226A (zh) * | 2018-05-28 | 2018-11-13 | 中国人民解放军国防科技大学 | 一种用于分布式图计算的图分割划分方法 |
CN110262896A (zh) * | 2019-05-31 | 2019-09-20 | 天津大学 | 一种面向Spark系统的数据处理加速方法 |
CN110427438A (zh) * | 2019-07-30 | 2019-11-08 | 中国工商银行股份有限公司 | 数据处理方法及其装置、电子设备和介质 |
CN112181894A (zh) * | 2019-07-04 | 2021-01-05 | 山东省计算中心(国家超级计算济南中心) | 一种基于申威众核处理器的核组内分组自适应调整运行方法 |
CN113227975A (zh) * | 2021-03-31 | 2021-08-06 | 华为技术有限公司 | 一种同步方法及装置 |
CN114880112A (zh) * | 2022-03-31 | 2022-08-09 | 深圳清华大学研究院 | 三类顶点度数感知的1.5维度图划分方法及应用 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011165298A (ja) * | 2010-01-18 | 2011-08-25 | Elpida Memory Inc | 半導体記憶装置及びこれを備えた情報処理システム |
KR101502896B1 (ko) * | 2011-02-14 | 2015-03-24 | 주식회사 케이티 | 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 |
CN106033476B (zh) * | 2016-05-19 | 2019-07-23 | 西安交通大学 | 一种云计算环境中分布式计算模式下的增量式图计算方法 |
CN114880133A (zh) * | 2017-08-31 | 2022-08-09 | 华为技术有限公司 | 分布式计算系统,分布式计算系统中数据传输方法和装置 |
US11704270B2 (en) * | 2019-03-27 | 2023-07-18 | Graphcore Limited | Networked computer with multiple embedded rings |
CN113900786A (zh) * | 2021-10-11 | 2022-01-07 | 国网电子商务有限公司 | 一种基于图数据的分布式计算方法及装置 |
CN114880272B (zh) * | 2022-03-31 | 2024-06-07 | 深圳清华大学研究院 | 全局高度数顶点集合通信的优化方法及应用 |
-
2022
- 2022-03-31 CN CN202210346314.1A patent/CN114880272B/zh active Active
- 2022-08-24 WO PCT/CN2022/114561 patent/WO2023184834A1/zh unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304253A (zh) * | 2017-12-28 | 2018-07-20 | 武汉理工大学 | 基于缓存感知和数据本地性的map任务调度方法 |
CN108509270A (zh) * | 2018-03-08 | 2018-09-07 | 中国科学院软件研究所 | 一种国产申威26010众核处理器上K-means算法的高性能并行实现方法 |
CN108804226A (zh) * | 2018-05-28 | 2018-11-13 | 中国人民解放军国防科技大学 | 一种用于分布式图计算的图分割划分方法 |
CN110262896A (zh) * | 2019-05-31 | 2019-09-20 | 天津大学 | 一种面向Spark系统的数据处理加速方法 |
CN112181894A (zh) * | 2019-07-04 | 2021-01-05 | 山东省计算中心(国家超级计算济南中心) | 一种基于申威众核处理器的核组内分组自适应调整运行方法 |
CN110427438A (zh) * | 2019-07-30 | 2019-11-08 | 中国工商银行股份有限公司 | 数据处理方法及其装置、电子设备和介质 |
CN113227975A (zh) * | 2021-03-31 | 2021-08-06 | 华为技术有限公司 | 一种同步方法及装置 |
CN114880112A (zh) * | 2022-03-31 | 2022-08-09 | 深圳清华大学研究院 | 三类顶点度数感知的1.5维度图划分方法及应用 |
Non-Patent Citations (4)
Title |
---|
"A Review of Distributed Algorithms for Principal Component Analysis";Sissi Xiaoxiao Wu;《Proceedings of the IEEE》;20180806;第106卷(第8期);第1321-1340页 * |
"Scaling Graph 500 SSSP to 140 Trillion Edges with over 40 Million Cores";Yuanwei Wang;《SC22: International Conference for High Performance Computing, Networking, Storage and Analysis》;20230202;第1-15页 * |
"基于"神威太湖之光"的并行深度学习训练系统";方佳瑞;《中国博士学位论文全文数据库 信息科技辑》;20210215(第2021年02期);第I140-16页 * |
Huanqi Cao."Scaling graph traversal to 281 trillion edges with 40 million cores".《PPoPP '22: Proceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming》.2022,第234-245页. * |
Also Published As
Publication number | Publication date |
---|---|
WO2023184834A1 (zh) | 2023-10-05 |
CN114880272A (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8117288B2 (en) | Optimizing layout of an application on a massively parallel supercomputer | |
Busato et al. | Hornet: An efficient data structure for dynamic sparse graphs and matrices on gpus | |
CN114880112A (zh) | 三类顶点度数感知的1.5维度图划分方法及应用 | |
CN114756483A (zh) | 基于核间存储访问的子图分段优化方法及应用 | |
US8769034B2 (en) | Query performance data on parallel computer system having compute nodes | |
CN108563808B (zh) | 基于fpga的异构可重构图计算加速器系统的设计方法 | |
KR101554113B1 (ko) | 장치 집합체에서 리소스 활용의 최적화 | |
Checconi et al. | Traversing trillions of edges in real time: Graph exploration on large-scale parallel machines | |
EP0733237B1 (en) | Multidimensional interconnection and routing network for an mpp computer | |
Pearce et al. | Scaling techniques for massive scale-free graphs in distributed (external) memory | |
US20090089670A1 (en) | Interactive tool for visualizing performance data in real-time to enable adaptive performance optimization and feedback | |
US7688737B2 (en) | Latency hiding message passing protocol | |
US8874722B2 (en) | Interactive tool for visualizing performance data in real-time to enable adaptive performance optimization and feedback | |
US8533139B2 (en) | Optimizing computation of minimum cut in graphs with grid topology | |
Wesolowski et al. | Tram: Optimizing fine-grained communication with topological routing and aggregation of messages | |
US20140176574A1 (en) | Method and Apparatus for Interprocessor Communication Employing Modular Space Division | |
US20090037512A1 (en) | Multi-nodal compression techniques for an in-memory database | |
CN111630505A (zh) | 深度学习加速器系统及其方法 | |
US8031614B2 (en) | Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by dynamic global mapping of contended links | |
CN114880272B (zh) | 全局高度数顶点集合通信的优化方法及应用 | |
Tessier et al. | Topology-aware data aggregation for intensive I/O on large-scale supercomputers | |
Ch et al. | Energy efficient VM scheduling and routing in multi-tenant cloud data center | |
CN114567634A (zh) | 面向后e级图计算的方法、系统、存储介质及电子设备 | |
US8291033B2 (en) | Combining multiple hardware networks to achieve low-latency high-bandwidth point-to-point communication | |
WO2015055502A2 (en) | Method of partitioning storage in a distributed data storage system and corresponding device |
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 |