书 书 书
第44卷 第8期
2021年8月 计 算 机 学 报
CHINESEJOURNALOFCOMPUTERS Vol.A44Nug.2o0.281
收稿日期:20191127;在线发布日期:20200510.本课题得到国家自然科学基金青年科学基金项目(62002226)、国家自然科学基金专项 项目(6194100039)、浙江省自然科学基金(LHQ20F020001)、浙江省基础公益研究计划项目(LGG18F030003)和绍兴文理学院校级科研项目 研究成果(2019LG1004)资助.李 琪,博士研究生,主要研究方向为图挖掘、图计算.Email:liqi0713@foxmail.com.李虎雄(通信作者), 博士,教授,硕士生导师,主要研究方向为网络化系统分析与控制、图像识别与理解.Emai:jsj_lhx@126.com.钟 将,博士,教授,博士 生导师,主要研究领域为数据挖掘、并行计算、自然语言处理.英昌甜,博士研究生,主要研究方向为内存计算.李 青,博士研究生,主要 研究方向为自然语言处理.
异构计算环境中图划分算法的研究
李 琪
1)1)(
李虎雄
1) 钟 将2) 英昌甜1) 李 青2)
李 青2)
绍兴文理学院计算机科学与工程系 浙江绍兴 312000)
2)(重庆大学计算机学院 重庆 400030)
摘 要 复杂网络的研究已经广泛地应用到生物、计算机等各个学科领域.如今,网络规模十分巨大,如何对这些 大规模图数据进行有效率的挖掘计算,是研究复杂网络的首要任务.并行计算技术是现在最成熟、应用最广、最可 行的计算加速技术之一.而图划分技术是提高并行计算性能的有效手段.图划分问题的研究是随着实际应用的需 求而驱动.针对异构计算环境下的分布式集群,本文提出了一种异构感知的流式图划分算法.该方法既考虑到集群 中网络带宽及节点计算能力的不同,同时又考虑到了以InfiniBand为代表的高速网络环境下核之间的共享资源的 竞争.实验以图算法BFS、SSSP和PageRank为例,相对于未考虑异构环境的流算法,图计算效率分别平均提高了 38%、45.7%、61.8%.同时针对流式图划分过程中邻点缓存查找效率低下问题,本文又设计了一种邻边结构的缓 存查找算法,在相同条件下,图划分的效率平均提高了13.4%.仿真实验结果表明,本文设计的异构感知图划分算 法实现了异构集群环境下图计算效率的提升.
关键词 异构计算;图划分;云计算;复杂网络;图计算
中图法分类号TP311 犇犗犐号10.11897/SP.J.1016.2021.01751
犚 犲 狊 犲 犪 狉 犮 犺 狅 狀 犌 狉 犪 狆 犺 犘 犪 狉 狋 犻 狋 犻 狅 狀 犻 狀 犵 犻 狀 犎 犲 狋 犲 狉 狅 犵 犲 狀 犲 狅 狌 狊 犆 狅 犿 狆 狌 狋 犻 狀 犵 犈 狀 狏 犻 狉 狅 狀 犿 犲 狀 狋
LIQi1) LIHuXiong1) ZHONGJiang2) YINGChangTian1) LIQing2)
1)(犇犲狆犪狉狋犿犲狀狋狅犳犆狅犿狆狌狋犲狉犛犮犻犲狀犮犲犪狀犱犈狀犵犻狀犲犲狉犻狀犵,犛犺犪狅狓犻狀犵犝狀犻狏犲狉狊犻狋狔,犛犺犪狅狓犻狀犵,犣犺犲犼犻犪狀犵 312000)
2)(犇犲狆犪狉狋犿犲狀狋狅犳犆狅犿狆狌狋犲狉犛犮犻犲狀犮犲,犆犺狅狀犵狇犻狀犵犝狀犻狏犲狉狊犻狋狔,犆犺狅狀犵狇犻狀犵 400030)
犃犫狊狋狉犪犮狋 Largegraphdatasetsarebecomingincreasinglypopularnowadays.Forexample, graphslikeWebGraphs,BiologicalNetworks,andSocialNetworks,areoftenatthescaleof hundredsofbillionsorevenatrillionedges,andtheyarecontinuouslygrowing.Howtomine andcalculatetheselargescalegraphdataefficientlyistheprimarytaskofstudyingcomplex network.Parallelcomputingtechnologyisoneofthemostmature,widelyusedandfeasible computingaccelerationtechnologies.Graphpartitioningisaneffectivewaytoimprovethe performanceofparallelcomputing.Theincreasingpopularityandubiquityofvariouslargegraph datasetshavecausedrenewedinterestforgraphpartitioning.Existinggraphpartitionerseither scalepoorlyagainstlargegraphsordisregardtheimpactoftheunderlyinghardwaretopology.A fewsolutionshaveshownthatthenonuniformnetworkcommunicationcostsmayaffectthe performancegreatly.Sincethecostofpartitioningtheentiregraphisstrictlyprohibitive,there aresomerecenttentativeworkstowardsstreaminggraphpartitioningwhichrunfaster,areeasily parallelized,andcanbeincrementallyupdated.Mostoftheexistingworksonstreamingpartitioning assumethatworkernodeswithinaclusterarehomogeneousinnature.Unfortunately,this
《 计
算
机
学
报
》
assumptiondoesnotalwayshold.Experimentsshowthatthesehomogeneousalgorithmssuffera significantperformancedegradationwhenrunningatheterogeneousenvironment.Theresearchof graphpartitioningisdrivenbythedemandofpracticalapplication.Aimingatthedistributed clusterinheterogeneouscomputingenvironment,weproposeastreaminggraphpartitioning algorithmbasedonheterogeneousaware.Themethodnotonlyconsidersthedifferenceof networkbandwidthandnodecomputeabilityinthecluster,butalsoconsidersthecompetitionfor sharedresourcesbetweencoresinhighspeednetworkenvironmentrepresentedbyInfiniBand.
TakingBFS,SSSPandPageRankasexamples,comparedwiththestreamingalgorithmwithout consideringtheheterogeneousenvironment,theefficiencyofgraphcomputingisimprovedby 38%,45.7%and61.8%,respectively.Atthesametime,intheprocessofstreaminggraph partitioning,aimingatthelowefficiencyofsearchingneighborverticesinthecache,wedesigna cachesearchingalgorithmwithadjacentedgestructure,whichimprovestheefficiencyofgraph partitioningby13.4%onaverageunderthesameconditions.Extensiveexperimentsareconducted onamoderatesizedcomputingclusterwithrealworldwebandsocialnetworkgraphs.The resultsdemonstratethattheproposedapproachachievessignificantimprovementcomparedwith thestateoftheartsolutions.
犓犲狔狑狅狉犱狊 heterogeneouscomputing;graphpartition;cloudcomputing;complexnetwork; graphcomputing
1 引 言
如果把大脑中的神经元看作顶点,神经元之间 互连的树突看作边,那么整个网络将包含890亿个 顶点及100万亿条边[1],通过搜索引擎可以抓取约 1万亿的网页链接关系图,据估计未来网页规模将 超过十万亿[2].全球最大的社交网络Facebook目前 拥有约10亿的用户[2],与之相对应的是数百亿的关 系链接.普通的单计算节点由于内存容量的限制无 法对这些大图正常处理,这给常见的图计算带来了 严峻挑战(如寻找连通分量[3]、计算三角形[4]和 PageRank[5]).一个标准的解决方案是将图数据划 分为多个子图装载到多个计算节点进行分布式计 算.为此,Spark
①
、Pregel②
、Giraph③
和Trinity④
等 分布式系统框架相继的被开发出来.这些系统通过 丰富的API接口,简化了用户的分布式编程工作, 实现了大图的有效处理.它们主要根据节点ID利用 伪随机哈希函数将任务分发到每个分区.这种方式 简单易于实现,且不需要系统维护一张巨大的路由 表来保存节点的分区信息,但是在划分过程中,由于 其没有考虑图的拓扑特性,完全打破了图的内在结 构,导致运算过程中通信代价过大,因此设计一种划 分效果优异的快速图分割算法,已经成为现有大图处理系统亟待解决的问题[6].
图的犽划分是NP难问题[7],广泛应用于图像 分割[8]、数据挖掘[9]、VLSI设计[10]等领域.从20世 纪90年代初期至今,国内外研究者不断对图划分及 其相关问题进行深入研究,提出了许多性能较好的 图划分算法[11].目前图划分研究主要分为3大类: 离线划分[12]、流式划分[13]以及动态重划分[14].随 着图数据规模的不断增大,基于传统的启发式的 划分算法在划分效率上明显的降低[1516].例如,在 文献[13]中,作者对Twitter图(|犞|=41652230,
|犈|=1468365182)采用METIS划分[17],总耗时需 要8.5h以上,划分效率低下.针对此问题,近几年 相继有算法被提出用来解决大规模图数据的划分效 率问题,其中最经典的是流式划分算法[1820],由于其 优越的划分性能,逐渐被研究者们所关注.
然而,传统图划分方法都是以最小割边数为优化 目标,而很少考虑到集群的结构对分布式图性计算性 能的影响,都是以假定集群的同质为先决条件[11]. 当图分析系统建立在公共云环境[11](例如,亚马逊弹 性计算云(AmazonElasticComputecloud、EC2[21]), 阿里云(AlibabaCloudComputingCo.Ltd[22])或公
2 5 7
1 计 算 机 学 报 2021年
① ②
③ ④
http://spark.apache.org/ http://hama.apache.org/ http://giraph.apache.org/ https://github.com/trinityrnaseq/
《 计
算
机
学
报
》
司内私有数据中心[23]时,这些同质性假设并不总是 成立.例如在文献[11]中,作者测量了128个EC2集 群实例的网络带宽,节点之间最高带宽达到了500 MB/s以上,而最低的带宽只有37.5MB/s.集群环 境的异构在当前的云计算中是普遍存在的,主要是 由以下三个原因造成的:
(1)硬件异质.在私有云中通常拥有多代硬件, 与上一代硬件相比,新硬件可能配备带宽更高的网 络适配器或计算性能更佳的CPU,从而导致计算能 力和通信带宽的异构性[2223].
(2)虚拟化.为了有效利用硬件资源,云系统一 般都会使用虚拟技术[24].一对节点之间的带宽可能 取决于实例(虚拟机)的分配方式.当两个实例被分 配到同一个物理节点时,数据可以在它们之间高速 传输,而当两个实例被分配到不同的节点甚至跨不 同路由器节点时,它们之间的数据传输会慢得多.因 此,虚拟化会导致通信带宽的异构[25].图1和图2 显示了由12个物理节点组成的分布式集群中节点 之间的带宽和节点计算能力差异.如图1所示,节点
图1 通信带宽的不均衡
图2 计算能力的不均衡
对之间的网络带宽差异很大.据测量统计,12个计 算单元之间通信的平均带宽为105MB/s,最高速度 达到195MB/s,最低速度仅为9.5MB/s.图2说明 了单计算节点计算100万位圆周率(PI)的运行时 间,可以看出集群中计算节点的运算能力也不同.
(3)共享资源竞争.随着通信技术的发展,网络的 带宽接近甚至超过了内存带宽[2627].例如,每个内存 通道的DDR3带宽目前介于6.25GB/s(DDR3800) 和16.6GB/s(DDR32133)之间[28],而每个网络接 口控制器端口的InfiniBand带宽范围为1.7GB/s
(FDR1X)到37.5GB/s(EDR12X)[29].具有4通道 DDR31600内存机器的内存带宽大致可以由4个 双端口FDR4XNIC提供.因此,现有的网络不再是 直接内存访问(RemoteDirectMemoryAccess, RDMA)技术的瓶颈[26].在高速网络的多核集群中, 节点内核与核之间需要通信时,为了保持数据的一 致性,会在共享缓存中拷贝多次,导致共享资源的争 用问题.而相对于高速RDMA零拷贝数据通信,节 点内的核与核之间的通信反而会降低分布式图计算 的效率.
因此,在构建图划分模型时应考虑到这些因 素对分布式图计算的影响.目前传统图划分方法 的目标是如何实现最小割的数量,例如Metis/ ParMetis[12]、LDG[30]、Fennel[13]、Grapes[31]、JABE JA[32]、Powerlyra[33]、Phylofactorization[34]等.但是
这些仅关注最小化割边数的图划分不足以实现可伸 缩的性能,因为基于最小割边数的解决方案无法保 证割边是如何跨节点分布.它们最终可能被分配到 通信成本高的节点之间,导致通信量的加大,尤其在 高速网络环境下,会进一步加剧多核计算节点的内 存子系统的争用.
这些实现不能充分利用集群结构信息来指导划 分策略.近年来,也出现了针对集群的异构作业处理 研究.Chen等人[35]研究了MapReduce框架中集群 的异质性,改进Hadoop上的应用程序,但没有考虑 图应用的异构性.Wang等人[31]提出了一种考虑云 环境下网络带宽差异的多级图划分框架.Catalyurek 等人[36]考虑到集群中节点计算能力的差别,设计了 动态负载均衡图划分算法.Dathathri等人[37]和Xue 等人[38]试图通过避免在具有较高网络通信成本的 分区之间切割任何边来解决这种通信异构问题,然 而,这些图划分方法都是建立在现有的静态图划分 算法之上,具有很差的可扩展性,且只能够处理静态 小规模图,无法处理大规模动态图.
3 5 7 8期 李 琪等:异构计算环境中图划分算法的研究 1
《 计
算
机
学
报
》
事实上,现实世界的网络本质上是动态的[39], 即随着时间的推移,节点或连边随着时间的推移不 断的被添加或删除.例如,在无线传感网络中,设备 连接到路由器或断开与路由器的连接.在社交网络 中,新用户和现有用户之间的友谊会随着时间的推 移而产生变化.尽管Moulitsas等人[40]提出了一种 轻量级的架构感知图划分,但是该划分可能导致动 态图计算的次优性能[41].
Zheng[14]和Busse[41]等人已经发现,现代多核 计算机的存储子系统(例如,末级缓存、内存控制器 和前端总线)上共享硬件资源的争夺会极大地影响 分布式工作负载的性能.具体来说,他们主要研究了 MPI工作负载的争用问题.而本文的工作主要是体 系结构感知(计算力和通信异构以及子系统的资源 争用)图划分应用,旨在避免分布式图计算的异构和 争用问题.
综上,已有关于图划分的工作重点往往是最小 化割边数,而很少考虑到集群体系结构对分布式图 计算效率的影响,包括节点计算力和网络通信的异 构,以及高速网络下多核节点内的共享资源争用.本 文针对异构并行环境下的图划分难题,改进分布式 图计算应用程序的通信模式到底层硬件拓扑的映 射,提出一种异构环境感知的流式图划分算法
(HaSGP).本文的主要贡献如下:
(1)考虑到分布式集群中节点的计算力与节点 间通信带宽的不同,以及子系统内共享资源的竞争. 本文对异构环境进行了形式化建模,实现了利用底 层体系结构指导大规模动态图的划分,提升了异构 环境下分布式图计算的效率.
(2)考虑到划分过程中,集群中的“主节点”存 在着大量的查找添加等操作.本文提出了基于邻边 结构的缓存数据管理方式,该结构可以有效地提升 缓存中邻点的操作效率,在有效利用内存空间的提 前下提升图划分算法的性能.
(3)为了评估HaSGP算法的有效性,实验模拟 了不同的异构环境,并与已有算法进行对比分析.评 估结果表明,本文所提出的异构环境感知图划分方 法能够有效地“平衡”集群的工作负载,显著提高作 业执行时间.
本文第2节对异构环境下的图划分问题进行详 细地描述;第3节对异构环境下的各种异构因素进 行形式化建模;第4节阐述异构计算环境图划分算 法的具体实现;第5节给出具体的实验结果;最后, 在第6节对本文的研究工作进行总结.
2 问题定义
犘犽={犛1,犛2,…,犛犽}为图数据犌(犞,犈)划分完 之后的犽个子区.犘犽为图犌的一种划分.犽为分区的 数目.犛犻表示某个子区.犞犻指某个子区犛犻中顶点的集 合,用公式描述为
犘=犘
{
犻:犻∪
犽=1犛犻=犞and犛犻∩犛犼=forany犻≠犼}
(1)异构感知图划分算法旨在将图数据划分到犽个 分区,同时尽量降低分布式图计算过程中分区之间 的通信量.首先对分区犘的通信成本进行定义,用 符号犮狅犿犿(犌,犘)表示,如下所示:
犮狅犿犿(犌,犘)=犲={狌,狏}and狌∈
∑
犞犻and狏∈犞犼and犻≠犼狑(犲) 犮(犛犻,犛犼)(2) 其中,犮(犛犻,犛犼)定义为通信的带宽.带宽越低,通信成 本越高,带宽越高,则通信成本越低.犠(犲)为边(狌,狏) 的权重.在同构环境下,通常假定犮(犛犻,犛犼)=1,即网 络带宽相等.但是这种假设不能反映现代多核高性 能计算(multicoreHighPerformanceComputing, HPC)基础设施的特点.因此,在异构集群环境中, 为了最小化犮狅犿犿(犌,犘),划分算法应该尽量减少通 信成本较高的节点之间的通信边.
一个好的划分算法应该使集群节点在执行图计 算任务时都能同时完成任务,而不应该使某些节点 提前进入空闲状态等待其它节点.需要注意的是,异 构环境下的“负载均衡”与同构环境下的负载均衡的 概念不同,异构环境下的“负载均衡”实际上也是一 种不均衡分配,是要求每个集群节点根据自身的计 算能力来分配任务.计算能力低的节点分配的任务 较少,计算能力高的节点分配的任务相对较多,以此 达到同时完成任务的目的,具体节点分配的任务量 在第3节进行详细说明.
3 集群异构因素的形式化建模
本节首先介绍采用流式图划分作为切入点的动 机,说明了流式图划分所存在的问题.最后,以流式 图划分为基础,对各种异构环境进行形式化建模. 31 流式图划分
假设犛狋={犛狋1,犛狋2,…,犛狋犽}表示在狋时刻犽路划 分的状态,其中犞狋犻表示在狋时刻子区犛犻中的点集 合.流式图划分就是将图中顶点按照某种规则排序
(如广度优先、深度优先等),根据此时的划分状态
4 5 7
1 计 算 机 学 报 2021年
《 计
算
机
学
报
》
犛狋及当前点的邻居点犖(狏),依次分配队列中的顶 点.不同流式划分方法分配队列中的顶点所采用的 启发式规则不同,例如最小非邻居节点流划分算法
(NonNeighbors,NN),将点狏分配到子区犛犻的启 发式规则是最小化|犛犻\犖(狏)|.确定性贪心流划分 算法(DeterministicGreedy,DG),启发式规则是最 大化|犖(狏)∩犛犻|.指数权重确定性贪婪流划分算法
(ExponentiallyWeightedDeterministicGreedy,EDG), 启发式规则是最大化|犖(狏)∩犛犻|(1-exp(|犛犻|- 狀/犽).流式划分依据不完整的局部信息,随着已分配 完成的顶点数量增多,计算当前点可利用的信息量 也在不断的增加.
Stanton和Kliot[30]分析了一系列的启发式流算 法的性能,在这些流方法中,性能最好的是线性权重 贪婪流算法(LinearWeightedDeterministicGreedy, LDG),式(3)介绍了LDG算法将点狏分配到子区 犛犻狀犱的启发式规则.
犛犻狀犱=a犻r∈g{1m,…,a犽x}{|犖(狏)∩犞狋犻|狑(狋,犻)}, 狑(狋,犻)=1-|犞狋犻|/(狀/犽) (3) 从式(3)可以看出,每个顶点只计算一次.方程 前半部分函数表示在狋时刻,子区犛犻中含有点狏的 邻居点数量.为了使子区负载均衡,在方程后面乘以 惩罚函数狑(狋,犻),惩罚拥有点过多的分区.选择函 数值最大的子区,将点狏分配到此子区中.
流式划分由于高效的划分管理,近年来得到了 不断的发展[4244].但是流方法存在两个问题:(1)原 方法没有考虑到集群计算环境的异构性.当集群存 在异构时,已有流式划分方法所优化的目标可能会 导致并行计算性能的下降,因此已有流式划分不适 用异构集群环境下任务分配的方法;(2)划分过程 中的邻点缓存数据结构不利于查找,对于查找(主要 指查找当前顶点已分配完成的邻居点及邻居点所在 的子区信息)效率低下.
针对以上两个问题,本文提出了异构环境下的 流式图划分算法,该算法能够根据实际集群体系结 构具体硬件配置,产生合理的划分策略,以提升异构 环境下分布式图计算效率.同时针对流算法出现的 问题(2),本文设计了邻边缓存结构来提高划分过程 中的操作效率,以提升流式图划分算法的性能.具体 过程在以下小节中详细介绍.
32 计算能力
计算能力是以某个计算节点在单位时间内执行 的任务量来度量.处理器性能的强弱是影响计算能
力的一个重要因素.对于由不同计算能力的节点所 组成的集群,如果负载相同,必然造成计算能力低的 节点处理时间较长.计算能力强的物理节点处理时 间较短,整个分布式计算任务时间是由计算时间最 慢的节点所决定,严重影响了整个分布式计算任务 的效率.而理想的情况是集群节点能够同时完成任 务.所以需要按照节点的计算能力分配任务量,任务 量与计算能力成正比.
为了量化节点的计算能力,本文采用文献[45] 中的方法.符号犆犫犻表示节点犠狅狉犽犲狉犻的计算能力. 本文以浮点运算作为节点计算能力的指标.具体 操作为,节点犠狅狉犽犲狉犻随机生成两个浮点数并对这 两个浮点数进行相乘,重复106次操作,记录总响 应时间并计算一次浮点运算的操作(符号表示为 犜犲狓犜犻犿犲犻)时间.然而,犜犲狓犜犻犿犲犻是一个非常小的 浮点数,为了便于计算,我们对犜犲狓犜犻犿犲犻进行标准 化.如果某个节点犠狅狉犽犲狉max的浮点计算的时间最 长,那么可以根据以下公式计算得出集群中任意一 个就是计算节点犠狅狉犽犲狉犻的计算能力,值越大表明 该节点的计算能力越强.
犆犫犻=犜犲狓犜犻犿犲max
犜犲狓犜犻犿犲犻 (4) 33 通信带宽
通信带宽是指物理节点之间网络传输数据的速 率,具体是指单位时间内通过其链路层的数据量.本 文使用64位数据作为通信单元.在异构环境中,不 可避免的会出现网络带宽的不同.传输相同的数据 量,带宽低的网络传输的时间较长,反之,带宽高的 网络传输时间较短.
图3 异构网络环境下的不同划分方法的比较
图3为异构网络环境下的不同划分方法的比 较,图中也列出了不同节点之间的通信成本.通信成 本与通信带宽相反,成本越高带宽越低.犛2与犛1之 间的通信成本较高.如果按照已有犽路均衡划分的 方法(Oldpartitioning)对图进行划分,会使割边数 最少,割边数为5.但是总的通信代价却为15.如果 使用本文的异构感知的划分方法,会综合考虑通信 代价及割边数(Bestpartitioning).如图3的右图所
5 5 7 8期 李 琪等:异构计算环境中图划分算法的研究 1
《 计
算
机
学
报
》
示,虽然割边数提高了,但是总的通信成本却降低 了,降低为6,明显提高了通信效率.因此,异构网络 环境下应该考虑带宽的不同,对于低带宽网络之间 的两节点应减少分配相关联的任务量.
为了量化集群中节点之间的通信成本,本文同 样采用文献[45]中的方法.符号犕犫(犻,犼)表示计算 节点犠狅狉犽犲狉犻和犠狅狉犽犲狉犼之间的通信成本.假定任何 一对计算节点之间的往返通信成本是相同的,即 犕犫(犻,犼)=犕犫(犼,犻).本文记录一个数据块从节点 犠狅狉犽犲狉犻到节点犠狅狉犽犲狉犼的时间来测量其通信能力.
实验中采用的是全双工通信,与上一节的计算能力 相同,对通信带宽进行标准化.如果某节点对之间的 通信带宽最大,用犜犮犜犻犿犲max表示,则集群中其它节 点对犠狅狉犽犲狉犻和犠狅狉犽犲狉犼之间的通信成本犕犫(犻,犼) 用以下公式求出.
犕犫(犻,犼)=犜犮犜犻犿犲(犻,犼)
犜犮犜犻犿犲max (5) 34 共享资源竞争
对于通过高速网络(如InfiniBand)连接的集 群,网络上的数据传输速度几乎与将数据从内存移 动到CPU一样快.启用RDMA技术的网络允许计 算节点从另一个计算节点的内存中直接读取数据, 而不涉及任何节点的处理器、缓存或操作系统,从而
实现真正的零拷贝数据通信.但是当多核计算节点 内部的核与核之间进行通信时,需要在最后一级共 享缓存(LastLevelcache,LLC)拷贝多次数据.鉴 于此,在高速网络环境下,多核计算节点内的核与核 之间的通信会影响分布式图计算的性能.
在对节点内共享资源竞争问题建模之前,首先 需要罗列出节点内可能出现的所有核之间通信情 况.按照核的位置进行归类.如表1所示,包括两核 位于同一插槽共享最后一级缓存(CL1),两核位于 同一插槽使用不同的最后一级缓存(CL2)以及两核 位于不同的插槽(CL3).UMA表示非统一内存访 问架构,NUMA表示统一内存访问架构,如图4所 示.通信的两核所处的位置不同,导致共享及竞争的 资源也不同.所以模型的建立应该考虑共享资源竞 争的程度,合理构建通信成本.避免将邻点分配到竞 争较大的两核中.
表1 节点内共享资源竞争
UMA
CL1 CL2 CL3 NUMA CL1 CL2 共享 Socket
LLC 竞争 LLC
FSB/QPI(HT) MC
图4 非统一内存访问架构和统一内存访问架构
犛犻和犛犼代表了两个核(或者两个插槽,两个计算节 点,但是当在高速网络下的多核计算节点内存在共享 资源竞争时,犛犻和犛犼为核).犻狀狋犲狉犪_狑狅狉犽犲狉(犛犻,犛犼)表 示犛犻和犛犼之间实际的通信成本,值等于犕犫(犛犻,犛犼). 犻狀狋犲狉犪犿犪狓_狑狅狉犽犲狉(犛犻,犛犼)表示所有计算节点之间
通信成本的最大值.犻狀狋犲狉犿犪狓_狊狅犮犽犲狋(犛犻,犛犼)表示节 点内部所有插槽与插槽之间通信成本的最大值.节 点内两核之间的通信成本犮(犛犻,犛犼)定义如下:
犮(犛犻,犛犼)=犻狀狋犲狉犪_狑狅狉犽犲狉(犛犻,犛犼)+ α×犻狀狋犲狉犿犪狓_狑狅狉犽犲狉(犛犻,犛犼)+ β×犻狀狋犲狉犿犪狓_狊狅犮犽犲狋(犛犻,犛犼) (6)
其中,α和β是介于0到1之间的参数,表示竞争程 度.当集群环境为高速网络时,当两核处于同一插槽 时,此时竞争最大,因此α和β都不为零,目的增加 其通信成本;当两核位于不同的插槽时,此时竞争相 对小一些,因此β为零,α不为零;当两核分别位于 不同的节点,此时不存在竞争,只考虑通信异构性,β 和α都设为零.
4 异构环境下的图划分算法
本节主要介绍所提出的异构环境下的图划分
6 5 7
1 计 算 机 学 报 2021年
《 计
算
机
学
报
》
算法———异构感知的流式划分算法,简称为HaSGP. 然后介绍针对流式划分的邻边缓存结构,该结构可 以进一步提升流式图划分的效率.
41 异构感知流划分
LDG算法的目标是根据集群节点的负载将顶 点分配到具有最大邻居数的分区中.本文将LDG 应用在异构并行环境中原因是其算法简单,易于实 现,且在一系列的流算法中划分效果优异.考虑到集 群环境的异构性,HaSGP通过启发式方法将当前顶 点狌犻放置入分区犛犻狀犱,最大化目标函数(8),从而将 非均匀的网络通信成本、节点的计算能力以及内存 子系统的资源竞争考虑在内.
犻狀犱=ar犻g∈[m1,a犽]x 1
∑
犲=(狌,狏)∈犈and狌∈犛犻and犻≠犼狑(犲)×犮(犛犻,犛犼)× 1-狑(犛犻)
犆犫犻
∑
犽狓=1犆犫狓|犞 烄
烆
烌
|烎 (7) 其中,狑(犲)表示边权重.对于无权重网络,狑(犲)为犛犻 与犛犼之间的总割边数.对于有权重网络,狑(犲)为犛犻 与犛犼之间边的总权重.其中式(7)前半部分为计算 当前点分配到其中任意一个分区(犛犻)与其它分区
(犛犼)之间总通信量的倒数.后半部分为惩罚函数,惩 罚负载过多的子区.结合式(7)的前后部分,计算得 出该方程的最大值时,犻的取值就为当前顶点所属 的分区.
在3.4节中,我们对分区之间的通信成本犮(犛犻,犛犼) 进行了说明.其中,α∈[0,1],β∈[0,1].当网络的带 宽很低时,节点内部的共享资源竞争可以忽略不计, 这时影响分布式图计算性能的主要是节点的计算 能力与节点之间的通信能力,在此环境下参数设置 为α=0,β=0,图划分的优化目标是尽量将两邻居 点分配到同一计算节点中;当网络带宽很高时,由于 采用RDMA技术,节点之间的通信不涉及共享内 存的复制等操作.影响分布式图计算性能的主要因 素是节点的计算能力与资源竞争,参数值设置为α∈
(0,1],β∈(0,1].考虑到资源争用和通信异构性的 影响是高度依赖于应用程序和硬件的,用户需要在 实际计算环境中对目标应用程序进行具体分析,以 确定参数数值的理想情况.在本文中,α与β的值都 设置为1.
42 邻边结构
流式划分过程中的邻点缓存数据结构不利于查 找,对于查找(主要指查找当前顶点已分配完成的邻
居点及邻居点所在的子区信息)效率较低.因此本节 设计了邻边缓存结构来提高查找效率.
为了更直观地说明原始流算法中的邻点结构, 我们以线性权重贪婪流算法划分为例,介绍基于邻 边结构的流算法划分过程.图5为示例图犌(犞,犈) 划分为3个子区(犛1,犛2,犛3).算法首先将图中的顶 点随机排成队列,根据顶点的先后依次进行分配.分 配每一顶点,将此点及对应的分区信息(狏∈犛犻)保存 在内存中.计算过程如表2所示,在犜时刻分配完 ID为1的顶点,将顶点狏1分配到子区犛1,随后在缓 存中保存点狏1及对应的分区信息犛1.在犜+1时刻 计算ID为3的顶点(狏3)的所属子区,首先要在缓存 中查找已经分配完成的此点邻居点信息(狏3)的邻居 点只有狏1完成分配,所以只能依据点狏1的所属子区 信息分配狏3).再根据邻点分区信息(狏1∈犛1)计算 当前的顶点归属子区,按照同样的规则分配后续的 顶点,直到图中所有的点都分配完成,算法结束.
图5 示例图犌划分为3个子区
表2 从时刻犜到时刻犜+5对图犌进行流划分过程中 动态缓存区中的数据变化(邻点结构)
时刻 对应时刻处理的顶点ID 处理之后缓存数据内容 犜 1 狏1→犛1
犜+1 3 狏1→犛1,狏3→犛1 犜+2 2 狏1→犛1,狏3→犛1,狏2→犛2
犜+3 6 狏1→犛1,狏3→犛1,狏2→犛2
狏6→犛3
犜+4 5 狏1→犛1,狏3→犛1,狏2→犛2
狏6→犛3,狏5→犛2 犜+5 4 狏1→犛1,狏3→犛1,狏2→犛2
狏6→犛3,狏5→犛2,狏4→犛3
通过对已有流算法过程的分析,可以发现,输入 图是以邻接矩阵的形式载入内存.基于邻点结构的 流算法分配当前的顶点,由于从邻接矩阵中只能得 出此点的邻居点,无法判断出哪些邻居点已经分配 完成,所以要在动态缓存中寻找,由邻接矩阵与动态 缓存内容共同确认已经分配完成的邻居点.据此,我 们将缓存数据的结构转换为邻边形式.分配当前的 顶点,只需查找此点为键的字典条目,通过键查找到 值,值对应着此点已经分配完成的所有邻点分区信 息,通过值可以直接计算出此点所属的子区.计算过
7 5 7 8期 李 琪等:异构计算环境中图划分算法的研究 1