分离可组合式架构下的图计算工作集优化实现方法及系统

文档序号:25107916发布日期:2021-05-19 00:01阅读:132来源:国知局
分离可组合式架构下的图计算工作集优化实现方法及系统

1.本发明涉及的是一种分布式数据处理领域的技术,具体是一种分离可组合式架构下的图计算工作集优化实现方法及系统。


背景技术:

2.在现有的内存资源紧缺的分离可组合式内存架构下,人们希望将内存容量消耗大的应用如图计算等工作拓展到远程内存。现有的分布式图计算技术主要关注于各独立服务器上的负载均衡和并行度,无法在应用层解耦并利用分离可组合式架构中明确功能分离的各独立硬件部件资源如运算资源与内存资源,无法解决内存访问敏感的应用在远程内存使用比例升高的过程中性能急速下降的问题。


技术实现要素:

3.本发明针对现有技术存在的上述不足,提出一种分离可组合式架构下的图计算工作集优化实现方法及系统,可以灵活地将图计算任务的部分运行时数据拓展到远程内存资源。
4.本发明是通过以下技术方案实现的:
5.本发明涉及一种分离可组合式架构下的图计算工作集优化实现方法,以数据段为单位,对待处理的图计算任务进行数据段识别;将图计算数据段按照四象限法划分为四大集合,进而根据读写访问热度进一步将四个集合划分为热工作集,即不可迁移工作集和冷工作集,即可迁移工作集;自动化调节可迁移工作集的本地与远程比例,根据图计算遍历过程中边数据只读不写的特性,向远程内存节点单边发送内存访问请求索引,并在远程内存中单边读回索引所对应的数据块,实现优化协作。
6.所述的分离可组合式架构是指:数据中心中多台服务器cpu与内存通过网络连接的方式进行灵活的组合搭配的架构,其中:执行计算任务的服务器作为计算节点(compute node),执行内存访问的服务器作为内存结点(memory node)。
7.所述的识别是指:解析并得到图计算任务中各项源图数据、中间表述数据、结果保留数据等所有运算过程中需要的图数据段类别,具体包括:图节点数据vertex、节点标号v_id、属性attribute、图计算专用中间变量节点集如frontier、parent、中间变量、指针变量pointer、迭代器iterator、队列queue、边的编号e_id、边的偏移量offset、边的权重weight、非活跃点集inactive_v、文件读取缓存cache_fifo。
8.所述的四象限法划分是指:根据识别得到的图数据段的内存页读写频率,进行四象限法的工作集划分,具体为:以横坐标代表写入频率,纵坐标代表读取频率,以右上为正,第一象限包括读多写多集合,第二象限为读多写少集合,第三象限为读少写少集合,第四象限为读少写多集合。
9.所述的读写是指:任一数据段从内存中读取和数据写入到内存中的操作,该操作的总频次和执行时的带宽占用之乘积即内存成本,当若当前数据段比整体应用的所计算的
内存成本平均值高,则视为多,否则为少。
10.所述的四象限包括:
11.①
第一象限:读多写多的数据段集合,包括图节点数据vertex、节点标号v_id,属性attribute,图计算专用中间变量节点集如frontier,parent;
12.②
第二象限:读多写少的数据段集合,包括边的编号e_id,边的偏移量offset,边的权重weight,与边数据相关的中间数据.;
13.③
第三象限:读少写少的数据段集合,包括非活跃点集inactive_v,文件读取缓存cache_fifo,一次性使用的数据段;
14.④
第四象限:读少写多的数据段集合,包括中间变量,如指针变量pointer、迭代器iterator、队列queue,一次申请多次利用的数据段。
15.所述的自动化调节是指:通过分析图数据访存幂律性、读取的数据量大而写入的数据量小的特性,结合上述的四象限法集合划分,将上述的运行时数据段集合具体划分到本地内存区域(lr,local region)和远程内存区域(rr,remote region),具体包括:
16.步骤1:将数据段集合的第一象限和第四象限的集合划分为热工作集,将数据段集合中的第二象限和第三象限的集合划分为冷工作集;
17.步骤2:设置整体工作集大小为1,热工作集大小为(1

α),可迁移工作集为α,当远程内存区域rr大小为β,则0≤β≤α,本地内存区域lr大小为(1

β),通过调整β的大小来实现本地和远程数据分布比例的自动化调节。
18.步骤3:指按照已划分的本地内存区域与远程内存区域,在预处理阶段将本地内存区域对应的数据段集合的数据留在本地dram中,将远程内存区域对应的数据段集合的数据通过网络传输到远端内存节点以实现远程数据读写。
19.步骤4:重复步骤1

3,直到所有需要传到远程的数据均传递完毕。
20.所述的单边远内存访问,具体包括:
21.步骤i:计算节点在预处理过程中,按照已划分的工作集将远端数据集通过单边写入的形式,将数据连同对应的索引信息,输出至远端内存区域;
22.步骤ii:内存节点上的索引搜索模块接收来自计算节点的带索引的数据并保留在远端内存区域中;
23.步骤iii:计算节点在执行过程中,不断向内存节点发出包含索引的读取远端数据块的请求;
24.步骤iv:内存节点根据收到的索引,将计算节点需要的对应的数据块通过单边读取的形式返回到本地内存区域,供计算节点的本地执行程序使用。
25.步骤v:重复步骤iii和iv,直到计算节点上的应用结束。技术效果
26.本发明整体解决了现有内存访问敏感的应用在远程内存使用比例升高的过程中性能急速下降的不足。本发明通过细化分离可组合式架构中各独立硬件部件资源的明确功能分离,如运算资源与内存资源,从应用层而非系统层面将应用访问进行本地计算与远程访存的分离,解决简单使用内核替换磁盘为主的后端所带来的性能大幅下降的问题,所带来的新功能是能够让具有大内存但读写频率和数据量差异较大的图计算应用程序能够以比较高的性能运行在远内存环境下,这对其他应用在存算分离式架构下的性能优化提供了
新的解决办法与可参考的优化方向。
27.与现有技术相比,本发明能够充分利用计算节点和内存节点的功能,将内存压力从计算节点转移到内存节点,节省了本地内存资源;充分利用图计算中数据访问的特性设计了基于工作集的内存区域划分,合理利用了本地和远程的内存资源,并通过灵活调节可迁移工作集的方式提升远程内存使用的灵活性。与现有工作相比,该系统能够在相同的本地内存使用限制下达到更低的延时,并且具有更好的可扩展性。
附图说明
28.图1为本发明流程图;
29.图2为本发明系统示意图;
30.图3为本发明中工作集划分的流程图;
31.图4为本发明中可调节的本地和远端数据分布比例示意图;
32.图5为本发明中远程写入和读取数据的结构示意图;
33.图6为本发明的效果示意图。
具体实施方式
34.本实施例使用rdma作为远程内存介质,环境设置具体包括:两台配备了2个20核的intel(r)xeon(r)gold 6148cpu,256gb内存,21tb硬盘和一个双通道mellanox connectx

5rdma网卡。其中一台服务器作为计算节点,另一台作为远程内存访问节点。
35.如图2所示,为本实施例涉及的一种分离可组合式架构下的远内存访问优化系统,包括:至少一个本地计算节点以及与之通过单边远内存访问模块相连并交换数据的至少一个远端内存节点,其中:位于本地计算节点的数据段识别模块对图计算任务进行数据段识别,将识别号的数据段输出至工作集划分模块,位于本地计算节点的任务划分模块基于读写热度的工作集划分,位于本地计算节点的数据比例自动化调节模块划分后的任务进行本地和远端数据分布比例的自动化调节,位于本地计算节点的单边远内存访问模块在预处理阶段进行图计算遍历过程的单边远内存访问请求发送至位于远端内存节点的索引搜索模块,位于远端内存节点的索引搜索模块在执行阶段反馈索引对应的数据至计算节点供执行应用。
36.本实施例的一个工作负载为使用gridgraph框架的bfs算法处理livejournal图数据集,分别在本实施例的系统和基于linux swap机制的远内存访问框架fastswap上测试。如图6所示,可以得到的结果是,1)在相同的本地内存使用限制下,本实施例能够达到更低的延时;2)本实施例能够达到更严格的计算节点的内存资源限制;3)本实施例能明显缓解随着远程内存访问比例升高的过程中性能急速下降的问题。
37.本实施例的一个工作负载为改写gridgraph图计算框架的bfs算法处理livejournal图数据集,使其能够使用远内存访问接口访问远程内存,分别在本发明的系统和基于linux swap机制的远内存访问框架fastswap上测试。
38.本实施例基于上述系统的分离可组合式架构下的远内存访问优化方法,包括如下步骤:
39.步骤1:解析并得到图计算任务中各项源图数据、中间表述数据、结果保留数据等
所有运算过程中需要的图数据段类别,具体包括:图节点数据vertex、节点标号v_id、属性attribute、图计算专用中间变量节点集frontier、parent、中间变量、指针变量pointer、迭代器iterator、队列queue、边的编号e_id、边的偏移量offset、边的权重weight、非活跃点集inactive_v、文件读取缓存cache_fifo。
40.步骤2:将识别的图计算数据段按照四象限划分法分为四个集合,其中图节点数据vertex、节点标号v_id、属性attribute、为读多写多集合,图计算专用中间变量节点集如frontier、parent、中间变量、指针变量pointer、迭代器iterator、队列queue为写多读少集合,边的编号e_id、边的偏移量offset、边的权重weight属于读多写少集合,非活跃点集inactive_v、文件读取缓存cache_fifo属于读少写少集合。
41.将数据段集合的第一象限和第四象限的集合划分为热工作集,将数据段集合中的第二象限和第三象限的集合划分为冷工作集(可迁移工作集);
42.步骤3:设置整体工作集大小为1,热工作集大小为(1

α),则可迁移工作集为α,当远程内存区域rr大小为β,则0≤β≤α,本地内存区域lr大小为(1

β),通过调整β的大小来实现本地和远程数据分布比例的自动化调节。
43.步骤4:指按照已划分的本地内存区域与远程内存区域,在预处理阶段将本地内存区域对应的数据段集合的数据留在本地dram中,将远程内存区域对应的数据段集合的数据通过网络传输到远端内存节点以实现远程数据读写。
44.步骤5:计算节点在预处理过程中,按照已划分的工作集将远端数据集通过单边写入的形式,将数据连同对应的索引信息,输出至远端内存区域;
45.步骤6:内存节点上的索引搜索模块接收来自计算节点的带索引的数据并保留在远端内存区域中;
46.步骤7:计算节点在执行过程中,不断向内存节点发出包含索引的读取远端数据块的请求;
47.步骤8:内存节点根据收到的索引,将计算节点需要的对应的数据块通过单边读取的形式返回到本地内存区域,供计算节点的应用使用。
48.步骤9:重复步骤7和8,直到计算节点上的应用结束。
49.如图6所示,可以得到的实验数据是,经过本方法,可以比传统未经图计算工作集划分的方法相比,在使用不同的远程内存比例的条件下,延迟显著降低至3倍以上。同时,在几乎全部使用远内存的情况下(如远内存95%),传统的方法因延迟过高或本身机制问题而无法记录,而本发明能够进行此类极端条件吓得计算并获得可控的延时。
50.本发明以数据段为单位,对处理的图计算任务进行数据段识别;将图计算数据段按照四象限法划分为四大集合,进而根据读写访问热度进一步将四个集合划分为热工作集,即不可迁移工作集和冷工作集,即可迁移工作集;自动化调节可迁移工作集的本地与远程比例,根据图计算遍历过程中边数据只读不写的特性,向远程内存单边发送内存访问请求索引,并在远程内存中单边读回索引所对应的数据块,实现省本地内存、减数据传输、降传输时间的优化协作。
51.与现有技术相比,本发明在相同的本地内存使用限制下,能够达到更低的延时、更严格的计算节点的内存资源限制的同时能明显缓解随着远程内存访问比例升高的过程中性能急速下降的问题。
52.上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1