• 沒有找到結果。

异构计算环境中图划分算法的研究

N/A
N/A
Protected

Academic year: 2022

Share "异构计算环境中图划分算法的研究"

Copied!
16
0
0

加載中.... (立即查看全文)

全文

(1)

第4卷 第8期

年8月 计  算  机  学  报

CHINESEJOURNALOFCOMPUTERS 4N  

稿日期在线发布日期本课题得到国家自然科学基金青年科学基金项目国家自然科学基金专项 计划项目和绍兴文理学院校级科研项目 研究成果资助. 琪,博士研究生主要研究方向为图挖掘图计算.李虎雄(通信作者 博士教授硕士生导师主要研究方向为网络化系统分析与控制图像识别与理解._l 将,博士教授博士 导师主要研究领域为数据挖掘并行计算自然语言处理.英昌甜,博士研究生主要研究方向为内存计算. 青,博士研究生主要 研究方向为自然语言处理.

异构计算环境中图划分算法的研究

李  

 

李虎雄

   

  英昌甜

   

绍兴文理学院计算机科学与工程系 浙江绍兴 

重庆大学计算机学院 重庆 

  复杂网络的研究已经广泛地应用到生物计算机等各个学科领域.如今网络规模十分巨大如何对这些 规模图数据进行有效率的挖掘计算是研究复杂网络的首要任务.并行计算技术是现在最成熟应用最广最可 行的计算加速技术之一.而图划分技术是提高并行计算性能的有效手段.图划分问题的研究是随着实际应用的需 而驱动.针对异构计算环境下的分布式集群本文提出了一种异构感知的流式图划分算法.该方法既考虑到集群 中网络带宽及节点计算能力的不同同时又考虑到了以为代表的高速网络环境下核之间的共享资源的 争.实验以图算法BP和P为例相对于未考虑异构环境的流算法图计算效率分别平均提高了 %.同时针对流式图划分过程中邻点缓存查找效率低下问题本文又设计了一种邻边结构的缓 存查找算法在相同条件下图划分的效率平均提高了1%.仿真实验结果表明本文设计的异构感知图划分算 法实现了异构集群环境下图计算效率的提升.

关键词 异构计算图划分云计算复杂网络图计算

中图法分类号   

犚 犲 狊 犲 犪 狉 犮 犺 狅 狀 犌 狉 犪 狆 犺 犘 犪 狉 狋 犻 狋 犻 狅 狀 犻 狀 犵 犻 狀 犎 犲 狋 犲 狉 狅 犵 犲 狀 犲 狅 狌 狊 犆 狅 犿 狆 狌 狋 犻 狀 犵 犈 狀 狏 犻 狉 狅 狀 犿 犲 狀 狋

LIQi LIHuXiong ZHONGJiang YINGChangTian LIQing

 

 

犃犫狊狋狉犪犮狋 Largegraphdatasetsarebecomingincreasinglypopularnowadays.Forexample graphslikeWebGraphsBiologicalNetworksandSocialNetworksareoftenatthescaleof hundredsofbillionsorevenatrillionedgesandtheyarecontinuouslygrowing.Howtomine andcalculatetheselargescalegraphdataefficientlyistheprimarytaskofstudyingcomplex network.Parallelcomputingtechnologyisoneofthemostmaturewidelyusedandfeasible computingaccelerationtechnologies.Graphpartitioningisaneffectivewaytoimprovethe performanceofparallelcomputing.Theincreasingpopularityandubiquityofvariouslargegraph datasetshavecausedrenewedinterestforgraphpartitioning.Existinggraphpartitionerseither scalepoorlyagainstlargegraphsordisregardtheimpactoftheunderlyinghardwaretopology.A fewsolutionshaveshownthatthenonuniformnetworkcommunicationcostsmayaffectthe performancegreatly.Sincethecostofpartitioningtheentiregraphisstrictlyprohibitivethere aresomerecenttentativeworkstowardsstreaminggraphpartitioningwhichrunfasterareeasily parallelizedandcanbeincrementallyupdated.Mostoftheexistingworksonstreamingpartitioning assumethatworkernodeswithinaclusterarehomogeneousinnature.Unfortunatelythis

《 计

(2)

assumptiondoesnotalwayshold.Experimentsshowthatthesehomogeneousalgorithmssuffera significantperformancedegradationwhenrunningatheterogeneousenvironment.Theresearchof graphpartitioningisdrivenbythedemandofpracticalapplication.Aimingatthedistributed clusterinheterogeneouscomputingenvironmentweproposeastreaminggraphpartitioning algorithmbasedonheterogeneousaware.Themethodnotonlyconsidersthedifferenceof networkbandwidthandnodecomputeabilityintheclusterbutalsoconsidersthecompetitionfor sharedresourcesbetweencoresinhighspeednetworkenvironmentrepresentedbyInfiniBand.

TakingBFSSSSPandPageRankasexamplescomparedwiththestreamingalgorithmwithout consideringtheheterogeneousenvironmenttheefficiencyofgraphcomputingisimprovedby 38%45.7%and61.8%respectively.Atthesametimeintheprocessofstreaminggraph partitioningaimingatthelowefficiencyofsearchingneighborverticesinthecachewedesigna cachesearchingalgorithmwithadjacentedgestructurewhichimprovestheefficiencyofgraph partitioningby13.4%onaverageunderthesameconditions.Extensiveexperimentsareconducted onamoderatesizedcomputingclusterwithrealworldwebandsocialnetworkgraphs.The resultsdemonstratethattheproposedapproachachievessignificantimprovementcomparedwith thestateoftheartsolutions.

犓犲狔狑狅狉犱狊 heterogeneouscomputinggraphpartitioncloudcomputingcomplexnetwork graphcomputing

1    

如果把大脑中的神经元看作顶点神经元之间 互连的树突看作边那么整个网络将包含890亿个 顶点及100万亿条边通过搜索引擎可以抓取约 1万亿的网页链接关系图据估计未来网页规模将 超过十万亿.全球最大的社交网络Facebook目前 拥有约10亿的用户与之相对应的是数百亿的关 系链接.普通的单计算节点由于内存容量的限制无 法对这些大图正常处理这给常见的图计算带来了 严峻挑战如寻找连通分量计算三角形和 PageRank.一个标准的解决方案是将图数据划 分为多个子图装载到多个计算节点进行分布式计 算.为此Spark

Pregel

Giraph

和Trinity

等 分布式系统框架相继的被开发出来.这些系统通过 丰富的API接口简化了用户的分布式编程工作 实现了大图的有效处理.它们主要根据节点ID利用 伪随机哈希函数将任务分发到每个分区.这种方式 简单易于实现且不需要系统维护一张巨大的路由 表来保存节点的分区信息但是在划分过程中由于 其没有考虑图的拓扑特性完全打破了图的内在结 构导致运算过程中通信代价过大因此设计一种划 分效果优异的快速图分割算法已经成为现有大图

处理系统亟待解决的问题

图的犽划分是NP难问题广泛应用于图像 分割数据挖掘VLSI设计等领域.从20世 纪90年代初期至今国内外研究者不断对图划分及 其相关问题进行深入研究提出了许多性能较好的 图划分算法.目前图划分研究主要分为3大类 离线划分流式划分以及动态重划分.随 着图数据规模的不断增大基于传统的启发式的 划分算法在划分效率上明显的降低.例如在 文献13作者对Twitter图|犞|=41652230

|犈|=1468365182采用METIS划分总耗时需 要8.5h以上划分效率低下.针对此问题近几年 相继有算法被提出用来解决大规模图数据的划分效 率问题其中最经典的是流式划分算法由于其 优越的划分性能逐渐被研究者们所关注.

然而传统图划分方法都是以最小割边数为优化 目标而很少考虑到集群的结构对分布式图性计算性 能的影响都是以假定集群的同质为先决条件. 当图分析系统建立在公共云环境例如亚马逊弹 性计算云AmazonElasticComputecloudEC2 阿里云AlibabaCloudComputingCo.Ltd或公

计  算  机  学  报

① ②

③ ④

《 计

(3)

司内私有数据中心这些同质性假设并不总是 成立.例如在文献11作者测量了128个EC2集 群实例的网络带宽节点之间最高带宽达到了500 MBs以上而最低的带宽只有37.5MBs.集群环 境的异构在当前的云计算中是普遍存在的主要是 由以下三个原因造成的

硬件异质.在私有云中通常拥有多代硬件 与上一代硬件相比新硬件可能配备带宽更高的网 络适配器或计算性能更佳的CPU从而导致计算能 力和通信带宽的异构性

虚拟化.为了有效利用硬件资源云系统一 般都会使用虚拟技术.一对节点之间的带宽可能 取决于实例虚拟机的分配方式.当两个实例被分 配到同一个物理节点时数据可以在它们之间高速 传输而当两个实例被分配到不同的节点甚至跨不 同路由器节点时它们之间的数据传输会慢得多.因 此虚拟化会导致通信带宽的异构.图1和图2 显示了由12个物理节点组成的分布式集群中节点 之间的带宽和节点计算能力差异.如图1所示节点

图1 通信带宽的不均衡

图2 计算能力的不均衡

对之间的网络带宽差异很大.据测量统计12个计 算单元之间通信的平均带宽为105MB最高速度 达到195MB最低速度仅为9.5MBs.图2说明 了单计算节点计算100万位圆周率PI的运行时 间可以看出集群中计算节点的运算能力也不同.

共享资源竞争.随着通信技术的发展网络的 带宽接近甚至超过了内存带宽.例如每个内存 通道的DDR3带宽目前介于6.25GBDDR3800 和16.6GBDDR32133之间而每个网络接 口控制器端口的InfiniBand带宽范围为1.7GB

FDR1X到37.5GBEDR12X.具有4通道 DDR31600内存机器的内存带宽大致可以由4个 双端口FDR4XNIC提供.因此现有的网络不再是 直接内存访问RemoteDirectMemoryAccess RDMA技术的瓶颈.在高速网络的多核集群中 节点内核与核之间需要通信时为了保持数据的一 致性会在共享缓存中拷贝多次导致共享资源的争 用问题.而相对于高速RDMA零拷贝数据通信节 点内的核与核之间的通信反而会降低分布式图计算 的效率.

因此在构建图划分模型时应考虑到这些因 素对分布式图计算的影响.目前传统图划分方法 的目标是如何实现最小割的数量例如Metis ParMetisLDGFennelGrapesJABE JAPowerlyraPhylofactorization等.但是

这些仅关注最小化割边数的图划分不足以实现可伸 缩的性能因为基于最小割边数的解决方案无法保 证割边是如何跨节点分布.它们最终可能被分配到 通信成本高的节点之间导致通信量的加大尤其在 高速网络环境下会进一步加剧多核计算节点的内 存子系统的争用.

这些实现不能充分利用集群结构信息来指导划 分策略.近年来也出现了针对集群的异构作业处理 研究.Chen等人研究了MapReduce框架中集群 的异质性改进Hadoop上的应用程序但没有考虑 图应用的异构性.Wang等人提出了一种考虑云 环境下网络带宽差异的多级图划分框架.Catalyurek 等人考虑到集群中节点计算能力的差别设计了 动态负载均衡图划分算法.Dathathri等人和Xue 等人试图通过避免在具有较高网络通信成本的 分区之间切割任何边来解决这种通信异构问题然 而这些图划分方法都是建立在现有的静态图划分 算法之上具有很差的可扩展性且只能够处理静态 小规模图无法处理大规模动态图.

8期 李 琪等异构计算环境中图划分算法的研究

《 计

(4)

事实上现实世界的网络本质上是动态的 即随着时间的推移节点或连边随着时间的推移不 断的被添加或删除.例如在无线传感网络中设备 连接到路由器或断开与路由器的连接.在社交网络 中新用户和现有用户之间的友谊会随着时间的推 移而产生变化.尽管Moulitsas等人提出了一种 轻量级的架构感知图划分但是该划分可能导致动 态图计算的次优性能

Zheng和Busse等人已经发现现代多核 计算机的存储子系统例如末级缓存内存控制器 和前端总线上共享硬件资源的争夺会极大地影响 分布式工作负载的性能.具体来说他们主要研究了 MPI工作负载的争用问题.而本文的工作主要是体 系结构感知计算力和通信异构以及子系统的资源 争用图划分应用旨在避免分布式图计算的异构和 争用问题.

综上已有关于图划分的工作重点往往是最小 化割边数而很少考虑到集群体系结构对分布式图 计算效率的影响包括节点计算力和网络通信的异 构以及高速网络下多核节点内的共享资源争用.本 文针对异构并行环境下的图划分难题改进分布式 图计算应用程序的通信模式到底层硬件拓扑的映 射提出一种异构环境感知的流式图划分算法

HaSGP.本文的主要贡献如下

考虑到分布式集群中节点的计算力与节点 间通信带宽的不同以及子系统内共享资源的竞争. 本文对异构环境进行了形式化建模实现了利用底 层体系结构指导大规模动态图的划分提升了异构 环境下分布式图计算的效率.

考虑到划分过程中集群中的主节点存 在着大量的查找添加等操作.本文提出了基于邻边 结构的缓存数据管理方式该结构可以有效地提升 缓存中邻点的操作效率在有效利用内存空间的提 前下提升图划分算法的性能.

为了评估HaSGP算法的有效性实验模拟 了不同的异构环境并与已有算法进行对比分析.评 估结果表明本文所提出的异构环境感知图划分方 法能够有效地平衡集群的工作负载显著提高作 业执行时间.

本文第2节对异构环境下的图划分问题进行详 细地描述第3节对异构环境下的各种异构因素进 行形式化建模第4节阐述异构计算环境图划分算 法的具体实现第5节给出具体的实验结果最后 在第6节对本文的研究工作进行总结.

2   问题定义

…,为图数据犌划分完 之后的犽个子区.犘为图犌的一种划分.犽为分区的 数目.犛表示某个子区.犞指某个子区犛中顶点的集 合用公式描述为

犘=犘

犞a

异构感知图划分算法旨在将图数据划分到犽个 分区同时尽量降低分布式图计算过程中分区之间 的通信量.首先对分区犘的通信成本进行定义用 符号犮狅犿犿表示如下所示

犮狅犿犿=犲=狌,狏}and狌∈

and狏∈犞and犻≠犼

其中犛犼定义为通信的带宽.带宽越低通信成 本越高带宽越高则通信成本越低.犠为边 的权重.在同构环境下通常假定犮犛犼=1即网 络带宽相等.但是这种假设不能反映现代多核高性 能计算multicoreHighPerformanceComputing HPC基础设施的特点.因此在异构集群环境中 为了最小化犮狅犿犿划分算法应该尽量减少通 信成本较高的节点之间的通信边.

一个好的划分算法应该使集群节点在执行图计 算任务时都能同时完成任务而不应该使某些节点 提前进入空闲状态等待其它节点.需要注意的是异 构环境下的负载均衡与同构环境下的负载均衡的 概念不同异构环境下的负载均衡实际上也是一 种不均衡分配是要求每个集群节点根据自身的计 算能力来分配任务.计算能力低的节点分配的任务 较少计算能力高的节点分配的任务相对较多以此 达到同时完成任务的目的具体节点分配的任务量 在第3节进行详细说明.

3   集群异构因素的形式化建模

本节首先介绍采用流式图划分作为切入点的动 机说明了流式图划分所存在的问题.最后以流式 图划分为基础对各种异构环境进行形式化建模. 31 流式图划分

假设犛…,表示在狋时刻犽路划 分的状态其中犞犻表示在狋时刻子区犛中的点集 合.流式图划分就是将图中顶点按照某种规则排序

如广度优先深度优先等根据此时的划分状态

计  算  机  学  报

《 计

(5)

及当前点的邻居点犖依次分配队列中的顶 点.不同流式划分方法分配队列中的顶点所采用的 启发式规则不同例如最小非邻居节点流划分算法

NonNeighborsNN将点狏分配到子区犛的启 发式规则是最小化|犛\犖|.确定性贪心流划分 算法DeterministicGreedyDG启发式规则是最 大化|犖∩犛|.指数权重确定性贪婪流划分算法

ExponentiallyWeightedDeterministicGreedyEDG 启发式规则是最大化|犖∩犛1-exp|犛|- 狀.流式划分依据不完整的局部信息随着已分配 完成的顶点数量增多计算当前点可利用的信息量 也在不断的增加.

Stanton和Kliot分析了一系列的启发式流算 法的性能在这些流方法中性能最好的是线性权重 贪婪流算法LinearWeightedDeterministicGreedy LDG介绍了LDG算法将点狏分配到子区 犛的启发式规则.

=a…,|犖∩犞|狑=1-|犞 从式可以看出每个顶点只计算一次.方程 前半部分函数表示在狋时刻子区犛中含有点狏的 邻居点数量.为了使子区负载均衡在方程后面乘以 惩罚函数狑惩罚拥有点过多的分区.选择函 数值最大的子区将点狏分配到此子区中.

流式划分由于高效的划分管理近年来得到了 不断的发展.但是流方法存在两个问题原 方法没有考虑到集群计算环境的异构性.当集群存 在异构时已有流式划分方法所优化的目标可能会 导致并行计算性能的下降因此已有流式划分不适 用异构集群环境下任务分配的方法划分过程 中的邻点缓存数据结构不利于查找对于查找主要 指查找当前顶点已分配完成的邻居点及邻居点所在 的子区信息效率低下.

针对以上两个问题本文提出了异构环境下的 流式图划分算法该算法能够根据实际集群体系结 构具体硬件配置产生合理的划分策略以提升异构 环境下分布式图计算效率.同时针对流算法出现的 问题本文设计了邻边缓存结构来提高划分过程 中的操作效率以提升流式图划分算法的性能.具体 过程在以下小节中详细介绍.

32 计算能力

计算能力是以某个计算节点在单位时间内执行 的任务量来度量.处理器性能的强弱是影响计算能

力的一个重要因素.对于由不同计算能力的节点所 组成的集群如果负载相同必然造成计算能力低的 节点处理时间较长.计算能力强的物理节点处理时 间较短整个分布式计算任务时间是由计算时间最 慢的节点所决定严重影响了整个分布式计算任务 的效率.而理想的情况是集群节点能够同时完成任 务.所以需要按照节点的计算能力分配任务量任务 量与计算能力成正比.

为了量化节点的计算能力本文采用文献45 中的方法.符号犆犫表示节点犠狅狉犽犲狉的计算能力. 本文以浮点运算作为节点计算能力的指标.具体 操作为节点犠狅狉犽犲狉随机生成两个浮点数并对这 两个浮点数进行相乘重复10次操作记录总响 应时间并计算一次浮点运算的操作符号表示为 犜犲狓犜犻犿犲时间.然而犜犲狓犜犻犿犲是一个非常小的 浮点数为了便于计算我们对犜犲狓犜犻犿犲进行标准 化.如果某个节点犠狅狉犽犲狉的浮点计算的时间最 长那么可以根据以下公式计算得出集群中任意一 个就是计算节点犠狅狉犽犲狉的计算能力值越大表明 该节点的计算能力越强.

犆犫=犜犲狓犜犻犿犲

犜犲狓犜犻犿犲 33 通信带宽

通信带宽是指物理节点之间网络传输数据的速 率具体是指单位时间内通过其链路层的数据量.本 文使用64位数据作为通信单元.在异构环境中不 可避免的会出现网络带宽的不同.传输相同的数据 量带宽低的网络传输的时间较长反之带宽高的 网络传输时间较短.

图3 异构网络环境下的不同划分方法的比较

图3为异构网络环境下的不同划分方法的比 较图中也列出了不同节点之间的通信成本.通信成 本与通信带宽相反成本越高带宽越低.犛与犛之 间的通信成本较高.如果按照已有犽路均衡划分的 方法Oldpartitioning对图进行划分会使割边数 最少割边数为5.但是总的通信代价却为15.如果 使用本文的异构感知的划分方法会综合考虑通信 代价及割边数Bestpartitioning.如图3的右图所

8期 李 琪等异构计算环境中图划分算法的研究

《 计

(6)

虽然割边数提高了但是总的通信成本却降低 了降低为6明显提高了通信效率.因此异构网络 环境下应该考虑带宽的不同对于低带宽网络之间 的两节点应减少分配相关联的任务量.

为了量化集群中节点之间的通信成本本文同 样采用文献45中的方法.符号犕犫表示计算 节点犠狅狉犽犲狉和犠狅狉犽犲狉犼之间的通信成本.假定任何 一对计算节点之间的往返通信成本是相同的即 犕犫=犕犫.本文记录一个数据块从节点 犠狅狉犽犲狉到节点犠狅狉犽犲狉犼的时间来测量其通信能力.

实验中采用的是全双工通信与上一节的计算能力 相同对通信带宽进行标准化.如果某节点对之间的 通信带宽最大用犜犮犜犻犿犲表示则集群中其它节 点对犠狅狉犽犲狉和犠狅狉犽犲狉犼之间的通信成本犕犫 用以下公式求出.

犕犫=犜犮犜犻犿犲

犜犮犜犻犿犲 34 共享资源竞争

对于通过高速网络如InfiniBand连接的集 群网络上的数据传输速度几乎与将数据从内存移 动到CPU一样快.启用RDMA技术的网络允许计 算节点从另一个计算节点的内存中直接读取数据 而不涉及任何节点的处理器缓存或操作系统从而

实现真正的零拷贝数据通信.但是当多核计算节点 内部的核与核之间进行通信时需要在最后一级共 享缓存LastLevelcacheLLC拷贝多次数据.鉴 于此在高速网络环境下多核计算节点内的核与核 之间的通信会影响分布式图计算的性能.

在对节点内共享资源竞争问题建模之前首先 需要罗列出节点内可能出现的所有核之间通信情 况.按照核的位置进行归类.如表1所示包括两核 位于同一插槽共享最后一级缓存CL1两核位于 同一插槽使用不同的最后一级缓存CL2以及两核 位于不同的插槽CL3.UMA表示非统一内存访 问架构NUMA表示统一内存访问架构如图4所 示.通信的两核所处的位置不同导致共享及竞争的 资源也不同.所以模型的建立应该考虑共享资源竞 争的程度合理构建通信成本.避免将邻点分配到竞 争较大的两核中.

 节点内共享资源竞争

1 C2 C 1 C 共享  

竞争

    

图4 非统一内存访问架构和统一内存访问架构

和犛代表了两个核或者两个插槽两个计算节 点但是当在高速网络下的多核计算节点内存在共享 资源竞争时和犛为核.犻狀狋犲狉犪_狑狅狉犽犲狉表 示犛和犛之间实际的通信成本值等于犕犫. 犻狀狋犲狉犪犿犪狓_狑狅狉犽犲狉犛犼表示所有计算节点之间

通信成本的最大值.犻狀狋犲狉犿犪狓_狊狅犮犽犲狋犛犼表示节 点内部所有插槽与插槽之间通信成本的最大值.节 点内两核之间的通信成本犮定义如下

=犻狀狋犲狉犪_狑狅狉犽犲狉+    α×犻狀狋犲狉犿犪狓_狑狅狉犽犲狉+ β×犻狀狋犲狉犿犪狓_狊狅犮犽犲狋) (

其中α和β是介于0到1之间的参数表示竞争程 度.当集群环境为高速网络时当两核处于同一插槽 时此时竞争最大因此α和β都不为零目的增加 其通信成本当两核位于不同的插槽时此时竞争相 对小一些因此β为零α不为零当两核分别位于 不同的节点此时不存在竞争只考虑通信异构性β 和α都设为零.

4   异构环境下的图划分算法

本节主要介绍所提出的异构环境下的图划分

计  算  机  学  报

《 计

(7)

算法异构感知的流式划分算法简称为HaSGP. 然后介绍针对流式划分的邻边缓存结构该结构可 以进一步提升流式图划分的效率.

41 异构感知流划分

LDG算法的目标是根据集群节点的负载将顶 点分配到具有最大邻居数的分区中.本文将LDG 应用在异构并行环境中原因是其算法简单易于实 现且在一系列的流算法中划分效果优异.考虑到集 群环境的异构性HaSGP通过启发式方法将当前顶 点狌放置入分区犛最大化目标函数从而将 非均匀的网络通信成本节点的计算能力以及内存 子系统的资源竞争考虑在内.

犻狀犱=arx 1

犲=∈犈and狌∈犛and犻≠犼狑×犮犛犼× 1-狑

犆犫

狓=1犆犫|犞 烄

|烎 其中表示边权重.对于无权重网络为犛 与犛之间的总割边数.对于有权重网络为犛 与犛犼之间边的总权重.其中式前半部分为计算 当前点分配到其中任意一个分区与其它分区

犛犼之间总通信量的倒数.后半部分为惩罚函数惩 罚负载过多的子区.结合式的前后部分计算得 出该方程的最大值时犻的取值就为当前顶点所属 的分区.

在3.4节中我们对分区之间的通信成本犮 进行了说明.其中α∈β∈.当网络的带 宽很低时节点内部的共享资源竞争可以忽略不计 这时影响分布式图计算性能的主要是节点的计算 能力与节点之间的通信能力在此环境下参数设置 为α=0β=0图划分的优化目标是尽量将两邻居 点分配到同一计算节点中当网络带宽很高时由于 采用RDMA技术节点之间的通信不涉及共享内 存的复制等操作.影响分布式图计算性能的主要因 素是节点的计算能力与资源竞争参数值设置为α∈

β∈.考虑到资源争用和通信异构性的 影响是高度依赖于应用程序和硬件的用户需要在 实际计算环境中对目标应用程序进行具体分析以 确定参数数值的理想情况.在本文中α与β的值都 设置为1.

42 邻边结构

流式划分过程中的邻点缓存数据结构不利于查 找对于查找主要指查找当前顶点已分配完成的邻

居点及邻居点所在的子区信息效率较低.因此本节 设计了邻边缓存结构来提高查找效率.

为了更直观地说明原始流算法中的邻点结构 我们以线性权重贪婪流算法划分为例介绍基于邻 边结构的流算法划分过程.图5为示例图犌 划分为3个子区犛1犛2犛3.算法首先将图中的顶 点随机排成队列根据顶点的先后依次进行分配.分 配每一顶点将此点及对应的分区信息狏∈犛保存 在内存中.计算过程如表2所示在犜时刻分配完 ID为1的顶点将顶点狏分配到子区犛随后在缓 存中保存点狏及对应的分区信息犛.在犜+1时刻 计算ID为3的顶点的所属子区首先要在缓存 中查找已经分配完成的此点邻居点信息的邻居 点只有狏完成分配所以只能依据点狏的所属子区 信息分配狏.再根据邻点分区信息∈犛计算 当前的顶点归属子区按照同样的规则分配后续的 顶点直到图中所有的点都分配完成算法结束.

图5 示例图划分为3个子区

 从时刻到时刻对图进行流划分过程中 动态缓存区中的数据变化(邻点结构)

时刻 对应时刻处理的顶点D 处理之后缓存数据内容

通过对已有流算法过程的分析可以发现输入 图是以邻接矩阵的形式载入内存.基于邻点结构的 流算法分配当前的顶点由于从邻接矩阵中只能得 出此点的邻居点无法判断出哪些邻居点已经分配 完成所以要在动态缓存中寻找由邻接矩阵与动态 缓存内容共同确认已经分配完成的邻居点.据此我 们将缓存数据的结构转换为邻边形式.分配当前的 顶点只需查找此点为键的字典条目通过键查找到 值值对应着此点已经分配完成的所有邻点分区信 息通过值可以直接计算出此点所属的子区.计算过

8期 李 琪等异构计算环境中图划分算法的研究

《 计

參考文獻

相關文件

[r]

[r]

• 一個簡單有效的 Hash function,又稱 RK 算法 (Rabin- Karp Algorithm/ Rabin fingerprint ).

自己設計 random function 自己設計 random function... 自己設計 random function 自己設計

自己設計 random function.. 自己設計

自己設計 random function.. 自己設計

正五邊形的周長是 715 公分,每邊長

• 在線 (online):程式/演算法 必須對前一個詢問或操作做出