Experimental Analysis of Distributed Graph Systems

Slides:



Advertisements
Similar presentations
DATE: 14/10/2009 陳威宇 格網技術組 雲端運算相關應用 (Based on Hadoop)
Advertisements

Big Data Ecosystem – Hadoop Distribution
日月光·伯爵居项目介绍.
班社会实践调查 ——大学生健康与运动状况调查.
香港故事之 三年零八個月的艱苦歲月 組員: 梁珮瑩 吳遠莉 李琪 李青儀 方松皓.
Foundations of Computer Science
导游资格证考试概要.
我的故事 ————往事回首.
女生成功靠什么? 09英本四班 傅柏双.
国际投资环境罗氏评级法 美国.
社会保障学 第5章 失业保险.
主 题 班 会 团 结   协 作    力 量.
理想.
Network Storage and System Virtualization Technology
固定与搬运技术 义乌市中心医院 陈红卫.
易學基礎教程 國文系99 王隆運. 易學基礎教程 國文系99 王隆運.
面向海量数据的 高效天文交叉证认的研究 答辩人:赵青 指导老师:孙济洲 教授 天津大学计算机学院
南投縣永昌國小 自衛消防編組訓練.
HADOOP的高能物理分析平台 孙功星 高能物理研究所/计算中心
中鸣虚拟搜救比赛项目 (一人) 现场主题创作(40%)(一人) 3D虚拟搜救(60%)(一人).
                            Oracle 并行服务器介绍
案例分析 胎记美容记 第6小组
学前教育原理 主讲:李德明.
人生五色臉 年輕十歲必學的小動作,九個保持身體健康的的小訣竅 人們常在不經意間做些小動作,並認為這是身體的本能反應,
大数据在医疗行业的应用.
Introduction to MapReduce
Operating System CPU Scheduing - 3 Monday, August 11, 2008.
分布式系统中的关键概念及Hadoop的起源、架构、搭建
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
計算方法設計與分析 Design and Analysis of Algorithms 唐傳義
王耀聰 陳威宇 國家高速網路與計算中心(NCHC)
實現雲端運算 Hadoop HDFS 磁碟及記憶體之即時分級服務
淘宝核心系统数据库组 余锋 利用新硬件提升数据库性能 淘宝核心系统数据库组 余锋
CHAPTER 6 認識MapReduce.
Spark在智慧图书馆建设中的应用探索 2017年12月22日.
圖論 (Graph Theory) B 電機四 大鳥 B 電機四 酋長 B 電機四 炫大
CCF ADL66大数据管理系统和技术 刘达欣 2018/11/28.
第4章(2) 空间数据库 —关系数据库 北京建筑工程学院 王文宇.
HLA - Time Management 陳昱豪.
Chapter 3 行程觀念 (Process Concept)
从TDW-Hive到TDW-SparkSQL
Skew Join相关论文 报告人:蔡珉星 厦大数据库实验室
基于大数据的物流资源整合 福建师范大学协和学院 沈庆琼.
An Introduction to Cloud RDBMS
Azero: 一个大规模动态负载均衡图处理系统
给孩子做一面明亮的镜子 给孩子做一面明亮的镜子.
TinyOS 石万兵 2019/4/6 mice.
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
Version Control System Based DSNs
高性能计算与天文技术联合实验室 智能与计算学部 天津大学
Guide to a successful PowerPoint design – simple is best
Unit 05 雲端分散式Hadoop實驗 -I M. S. Jian
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
虚 拟 仪 器 virtual instrument
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
Apache Flink 刘 驰.
從 ER 到 Logical Schema ──兼談Schema Integration
主講人:陳鴻文 副教授 銘傳大學資訊傳播工程系所 日期:3/13/2010
Distance Vector vs Link State
CHAPTER 6 Concurrency:deadlock And Starvation
Efficient Query Relaxation for Complex Relationship Search on Graph Data 李舒馨
IEEM 5352 Enterprise Integration
资源分配与调度 第5章 资源分配与调度.
Distance Vector vs Link State Routing Protocols
11 Overview Cloud Computing 2012 NTHU. CS Che-Rung Lee
Operating System Software School of SCU
Konig 定理及其证明 杨欣然
Maximum Flow.
Hybrid fractal zerotree wavelet image coding
Presentation transcript:

Experimental Analysis of Distributed Graph Systems 分布式图(计算)系统的(效率)实验分析 滑铁卢大学 2019/03/18 赵子豪

背景 Introduction about: Graph process model and system Workload Dataset Experiment design Result & Analysis: Blogel: The Overall Winner GraphX is not efficient when large number of iterations are required

Vertex-Centric BSP Giraph:map-only,edge-cut,compute 基于节点的整体同步并行计算模型 Each vertex computes its new state based on its current state and the messages it receives from its neighbors. Each vertex then sends its new state to its neighbors using message passing. Giraph:map-only,edge-cut,compute GraphLab/PowerGraph: C++,MPI,GAS,vertex-cut (Asynchronous) Blogel-V: C++,MPI,Vertex-cut 每个节点基于现有状态和从邻居收到的信息更新状态,然后将新的状态传播给邻居节点。 同步版本在每一个迭代步骤结束的时候在机器间同步信息 Giraph:是一个基于Hadoop的map-only的因公,把所有数据加载到内存中。使用edge_cut随机划分 GraphLab:Gather,Apply,Scatter,使用节点划对大度节点支持比较好。自动使用所有核和内存。有异步版本,在一轮迭代中,可以获取其他节点的最新信息。

Block-Centric BSP Blogel-B: Also known as graph-centric. Partition the graph into blocks of vertices. Run a serial algorithm within a block while synchronizing blocks on separate machines using BSP. To: Reduce the number of iterations. Blogel-B: Compute function:a serial algorithm runs within the block. Graph Voronoi Diagram:multiple connected components. 划分成block 在一个block里边运行一系列算法 Block数肯定比节点数少,所以网络通信开销就小 GVD划分方法,多个连通子图

MapReduce/Optimized HaLoop: Hadoop Not suitable for iterative workload, I/O 提供Map和Reduce两个接口,极大便利并行处理。Hadoop是最有名的开源实现。因为I/O开销大,还有shuffling的耗时大,Hadoop不适合用迭代轮次多的图算法。但是可以用于内存不够的场景中。 在map和reduce步骤之间缓存可以复用的数据,避免对无关数据的重复扫描以及在机器之间的shuffling操作。 Hadloop:主要目的是减少数据shuffling和reduce工作,在迭代负载上做出如下改进以提高性能:1. 适合迭代变成的模型:比如在主节点增加循环控制2. 改进任务调度器,减少网络通信。3. 从节点上缓存一些loop-invariant的数据并建立索引。4. 最后一轮迭代的结果缓存在本地,用于后续比较,无需去HDFS里边取回。 在内存中划分数据集。RDD。使用节点划分,每一轮迭代包含多个Spark jobs。 HaLoop: Caching reusable data between map and reduce steps Reduce data shuffling and reduce network usage after the first iteration Spark/GraphX RDD Vertex-cut

Relational Vertica: Optimize for Repeated joining. Create a new table. Relational database Distributed. Not HDFS Vertica,这种系统使用关系型数据库存储数据(数据库实现了分布式存储)。重复的join操作效率低。 vertica做出如下改进:1. 在vertex table上更新多个值开销比创建新表更大。超过阈值就创建新表,而非修改值。2. 在一些遍历类的任务(SSSP)中每轮迭代只用一部分数据,将活跃点保存在一个临时的table中。 Vertica: Optimize for Repeated joining. Create a new table.

Stream Systems Flink Gelly: Stream/Batch Flink TensorFlow 定义操作,形成拓扑图,数据在拓扑图中被处理、传递并形成数据流。本文分析了Flink Gelly。两种approach:stream和batch。stream可以从数据源以流的形式加载数据,一边加载,一边处理,这样不容易区分准备数据和实际计算的时间。为了保证和其他工具一致,文中使用的是batch,这样可以把准备数据的时间和计算时间分开。 Flink Gelly: Stream/Batch

Workloads PageRank WCC SSSP:Random Start K-hop:Random Start SSSP和K-hop都使用随机起点

Dataset

Experiment Design 数据加载时间 结果保存时间 执行时间 总体响应时间 Amazon EC2 AWS r3.xlarge machine. 4 cores, 30.5G memory, Xeon E5-2679 v2, SSD disk. Single Master,16、32、64、128machines.

Result

Result

Result

Result

Result

Result Blogel: The Overall Winner Blogel-Vertex: Best end-to-end performance. Only one to finish the SSSP/WCC across all cluster size over WRN dataset. Only one to finish computations over ClueWeb in the 128-machine Clusters. Blogel-Block: Shortest execution time for WCC, SSSP and K-hop Blogel-Vertex: 端到端的性能最好 使用WRN数据集,唯一在所有节点上都完成了SSSP和WCC测试的系统。 唯一可以在128台机器的集群上完成ClueWeb计算的。 因为没有昂贵的“infrasturcture”(such as Hadoop or Spark)。使用高效的C++库,优化利用所以CPU核,有小的内存footprint。 BB:在一些可达性的查询上(SSSP,WCC,K-hop等)有最好的表现,因为:这些查询从Voronoi划分上收益,基于Block的计算最小化了网络通信的开销,而且降低了网络通信 BB运行PageRank的表现不好,因为在block上跑是为了给全局计算提供一个好的初始值,但是这种算法没有产生好的初始值,导致全集性能降低,导致需要更多次迭代。

Result GraphX: The slowest one. GRAPHX/SPARK比所有其他系统都慢。因为spark overhead,data shuffle,长的RDD血统,和checkpoint。以前的研究表明,GRAPHX高效,因为它使用了一个特殊的Spark原型版本,in-Memory的shuffle。此功能在最新版本不可用GraphX在所有规模的集群上基于WRN做WCC都失败了,因为超过了内存大小,有的是超时。结果证明,spark保持RDD血统的容错机制导致了内存错误。当迭代次数增加时,这些lineage就变成了内存占用的大户,导致了潜在的内存不足错误。最近引入的Graphframes[11]对于graphx应该是一个更有效的选择。我们研究了Graphframes的实现,发现它的许多算法可以将输入的图转换为GraphX格式,然后运行GraphX算法。我们还发现,大多数算法对迭代次数有一个默认的最大限制,以减少RDD中长lineage的潜在开销。例如,sssp的限制为10,否则它将开始进入一个checkpoint。此外,WCC的实现要求每两轮迭代就进行一次检查点。检查点可以避免lineage变得太长,但是导致了昂贵的I/O开销,着就会导致超时错误。GraphFrames提供了一个hash-min算法去计算WCC,这种方法迭代次数少,经测试与Blogel性能差不多。还注意到,spark不能在节点之间做负载均衡,一些机器分的partition很多,在同步计算模型,最慢的节点拖慢了整体进程。在实际情况中,花分数不应该超过输入文件中的block数,因为这会导致spark多次读同一个data block。在另一方面,划分数也不应该比集群中的核数少,这导致CPU使用率低。 J. E. Gonzalez, R. S. Xin, A. Dave, D. Crankshaw, M. J. Franklin, and I. Stoica. Graphx: Graph processing in a distributed dataflow framework. In Proc. 11th USENIX Symp. on Operating System Design and Implementation, pages 599–613, 2014. D. A. Bader, G. Cong, and J. Feo. On the architectural requirements for efficient execution of graph algorithms. In Proc. of Parallel Processing, pages 547–556, 2005

Result System Overhead: Giraph(Hadoop) and Graph(Spark) Blogel and GraphLab(MPI) Flink Syncchronous vs. Asychronous: GraphLab Distributed lock contention. 对Giraph和Spark来说,系统overhead比较大,因为Hadoop和spark启动任务,结束任务的开销都很大。使用mpi通信的,部署的时间节省很多。Flink没有很好的内存回收机制,导致内存溢出错误。 GraphLab是唯一一个提供了异步计算模式的系统。但是在每台worker节点上开了数以千计的新进程处理节点,导致分布式加锁争用问题。因此PageRank的异步计算比同步计算更慢。还发现异步计算只对特殊规模的集群适用。具体规模需要尝试。

THANK YOU