Distributed Graph Analytics Imranul Hoque CS525 Spring 2013.

Slides:



Advertisements
Similar presentations
Piccolo: Building fast distributed programs with partitioned tables Russell Power Jinyang Li New York University.
Advertisements

epiC: an Extensible and Scalable System for Processing Big Data
Make Sense of Big Data Researched by JIANG Wen-rui Led by Pro. ZOU
Differentiated Graph Computation and Partitioning on Skewed Graphs
Resource Management §A resource can be a logical, such as a shared file, or physical, such as a CPU (a node of the distributed system). One of the functions.
Armend Hoxha Trevor Hodde Kexin Shi Mizan: A system for Dynamic Load Balancing in Large-Scale Graph Processing Presented by:
Distributed Graph Processing Abhishek Verma CS425.
APACHE GIRAPH ON YARN Chuan Lei and Mohammad Islam.
LFGRAPH: SIMPLE AND FAST DISTRIBUTED GRAPH ANALYTICS Hoque, Imranul, Vmware Inc. and Gupta, Indranil, University of Illinois at Urbana-Champaign – TRIOS.
© nCode 2000 Title of Presentation goes here - go to Master Slide to edit - Slide 1 Reliable Communication for Highly Mobile Agents ECE 7995: Term Paper.
Cloud Computing Lecture #5 Graph Algorithms with MapReduce Jimmy Lin The iSchool University of Maryland Wednesday, October 1, 2008 This work is licensed.
Partitioning Social Networks for Time-dependent Queries Berenice Carrasco, Yi Lu and Joana M. F. da Trindade - University of Illinois - EuroSys11 – Workshop.
Design Patterns for Efficient Graph Algorithms in MapReduce Jimmy Lin and Michael Schatz University of Maryland Tuesday, June 29, 2010 This work is licensed.
Paper by: Grzegorz Malewicz, Matthew Austern, Aart Bik, James Dehnert, Ilan Horn, Naty Leiser, Grzegorz Czajkowski (Google, Inc.) Pregel: A System for.
Cloud Computing Lecture #4 Graph Algorithms with MapReduce Jimmy Lin The iSchool University of Maryland Wednesday, February 6, 2008 This work is licensed.
CS 425 / ECE 428 Distributed Systems Fall 2014 Indranil Gupta (Indy) Lecture 22: Stream Processing, Graph Processing All slides © IG.
A Lightweight Infrastructure for Graph Analytics Donald Nguyen Andrew Lenharth and Keshav Pingali The University of Texas at Austin.
Joseph Gonzalez Postdoc, UC Berkeley AMPLab A System for Distributed Graph-Parallel Machine Learning Yucheng Low Aapo Kyrola.
Joseph Gonzalez Yucheng Low Aapo Kyrola Danny Bickson Joe Hellerstein Alex Smola Distributed Graph-Parallel Computation on Natural Graphs Haijie Gu The.
BiGraph BiGraph: Bipartite-oriented Distributed Graph Partitioning for Big Learning Jiaxin Shi Rong Chen, Jiaxin Shi, Binyu Zang, Haibing Guan Institute.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University COT 5410 – Spring 2004.
Design Patterns for Efficient Graph Algorithms in MapReduce Jimmy Lin and Michael Schatz University of Maryland MLG, January, 2014 Jaehwan Lee.
Pregel: A System for Large-Scale Graph Processing
Network Aware Resource Allocation in Distributed Clouds.
1 Fast Failure Recovery in Distributed Graph Processing Systems Yanyan Shen, Gang Chen, H.V. Jagadish, Wei Lu, Beng Chin Ooi, Bogdan Marius Tudor.
Pregel: A System for Large-Scale Graph Processing Presented by Dylan Davis Authors: Grzegorz Malewicz, Matthew H. Austern, Aart J.C. Bik, James C. Dehnert,
X-Stream: Edge-Centric Graph Processing using Streaming Partitions
GRAPH PROCESSING Hi, I am Mayank and the second presenter for today is Shadi. We will be talking about Graph Processing.
Efficient Graph Processing with Distributed Immutable View Rong Chen Rong Chen +, Xin Ding +, Peng Wang +, Haibo Chen +, Binyu Zang + and Haibing Guan.
Distributed shared memory. What we’ve learnt so far  MapReduce/Dryad as a distributed programming model  Data-flow (computation as vertex, data flow.
CSE 486/586 CSE 486/586 Distributed Systems Graph Processing Steve Ko Computer Sciences and Engineering University at Buffalo.
Pregel: A System for Large-Scale Graph Processing Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, James C. Dehnert, Ilan Horn, Naty Leiser, and.
Mizan Mizan: Optimizing Graph Mining in Large Parallel Systems Panos Kalnis King Abdullah University of Science and Technology (KAUST) H. Jamjoom (IBM.
Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem.
Joseph Gonzalez Yucheng Low Danny Bickson Distributed Graph-Parallel Computation on Natural Graphs Haijie Gu Joint work with: Carlos Guestrin.
Most of contents are provided by the website Graph Essentials TJTSD66: Advanced Topics in Social Media.
CS223 Advanced Data Structures and Algorithms 1 Maximum Flow Neil Tang 3/30/2010.
CS 484 Load Balancing. Goal: All processors working all the time Efficiency of 1 Distribute the load (work) to meet the goal Two types of load balancing.
Data Structures and Algorithms in Parallel Computing Lecture 3.
Data Structures and Algorithms in Parallel Computing Lecture 7.
GraphX: Graph Analytics on Spark
Practical Message-passing Framework for Large-scale Combinatorial Optimization Inho Cho, Soya Park, Sejun Park, Dongsu Han, and Jinwoo Shin KAIST 2015.
Client Assignment in Content Dissemination Networks for Dynamic Data Shetal Shah Krithi Ramamritham Indian Institute of Technology Bombay Chinya Ravishankar.
Data Structures and Algorithms in Parallel Computing
Pregel: A System for Large-Scale Graph Processing Nov 25 th 2013 Database Lab. Wonseok Choi.
Graph-Based Parallel Computing
PowerGraph: Distributed Graph- Parallel Computation on Natural Graphs Joseph E. Gonzalez, Yucheng Low, Haijie Gu, and Danny Bickson, Carnegie Mellon University;
Graphs Definition: a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected.
Supporting On-Demand Elasticity in Distributed Graph Processing Mayank Pundir*, Manoj Kumar, Luke M. Leslie, Indranil Gupta, Roy H. Campbell University.
Department of Computer Science, Johns Hopkins University Pregel: BSP and Message Passing for Graph Computations EN Randal Burns 14 November 2013.
Chenning Xie+, Rong Chen+, Haibing Guan*, Binyu Zang+ and Haibo Chen+
Mizan:Graph Processing System
Pagerank and Betweenness centrality on Big Taxi Trajectory Graph
CSCI5570 Large Scale Data Processing Systems
PREGEL Data Management in the Cloud
Distributed Graph-Parallel Computation on Natural Graphs
Data Structures and Algorithms in Parallel Computing
Mayank Bhatt, Jayasi Mehar
Distributed Systems CS
Cloud Computing Lecture #4 Graph Algorithms with MapReduce
Replication-based Fault-tolerance for Large-scale Graph Processing
Lecture 19-Problem Solving 4 Incremental Method
تقسیم گراف در سیستم های کلان داده مرکزیت راس
Da Yan, James Cheng, Yi Lu, Wilfred Ng Presented By: Nafisa Anzum
Algorithms (2IL15) – Lecture 7
Network Flow.
Saeed Rahmani, Dr. Mohammd Hadi Sadroddini Shiraz University
Lecture 10 Graph Algorithms
Network Flow.
Gurbinder Gill Roshan Dathathri Loc Hoang Keshav Pingali
Presentation transcript:

Distributed Graph Analytics Imranul Hoque CS525 Spring 2013

Social Media Graphs encode relationships between: Big : billions of vertices and edges and rich metadata AdvertisingScienceWeb People Facts Products Interests Ideas 2

Graph Analytics Finding shortest paths – Routing Internet traffic and UPS trucks Finding minimum spanning trees – Design of computer/telecommunication/transportation networks Finding max flow – Flow scheduling Bipartite matching – Dating websites, content matching Identify special nodes and communities – Spread of diseases, terrorists 3

Different Approaches Custom-built system for specific algorithm – Bioinformatics, machine learning, NLP Stand-alone library – BGL, NetworkX Distributed data analytics platforms – MapReduce (Hadoop) Distributed graph processing – Vertex-centric: Pregel, GraphLab, PowerGraph – Matrix: Presto – Key-value memory cloud: Piccolo, Trinity

The Graph-Parallel Abstraction A user-defined Vertex-Program runs on each vertex Graph constrains interaction along edges – Using messages (e.g. Pregel [PODC’09, SIGMOD’10]) – Through shared state (e.g., GraphLab [UAI’10, VLDB’12]) Parallelism: run multiple vertex programs simultaneously 5

PageRank Algorithm Update ranks in parallel Iterate until convergence Rank of user i Weighted sum of neighbors’ ranks 6

The Pregel Abstraction Vertex-Programs interact by sending messages. i i Pregel_PageRank(i, messages) : // Receive all the messages total = 0 foreach( msg in messages) : total = total + msg // Update the rank of this vertex R[i] = total // Send new messages to neighbors foreach(j in out_neighbors[i]) : Send msg(R[i] * w ij ) to vertex j 7 Malewicz et al. [PODC’09, SIGMOD’10]

Pregel Distributed Execution (I) Machine 1 Machine B A C D Sum User defined commutative associative (+) message operation 8

Pregel Distributed Execution (II) Machine 1 Machine 2 B A C D Broadcast sends many copies of the same message to the same machine! 9

The GraphLab Abstraction Vertex-Programs directly read the neighbors state i i GraphLab_PageRank(i) // Compute sum over neighbors total = 0 foreach( j in in_neighbors(i)): total = total + R[j] * w ji // Update the PageRank R[i] = total // Trigger neighbors to run again if R[i] not converged then foreach( j in out_neighbors(i)): signal vertex-program on j 10 Low et al. [UAI’10, VLDB’12]

GraphLab Ghosting Changes to master are synced to ghosts Machine 1 A B C Machine 2 D D D A A B B C C Ghost 11

GraphLab Ghosting Changes to neighbors of high degree vertices creates substantial network traffic Machine 1 A B C Machine 2 D D D A A B B C C Ghost 12

PowerGraph Claims Existing graph frameworks perform poorly for natural (power-law) graphs – Communication overhead is high Partition (Pros/Cons) – Load imbalance is caused by high degree vertices Solution: – Partition individual vertices (vertex-cut), so each server contains a subset of a vertex’s edges (This can be achieved by random edge placement)

Machine 2 Machine 1 Machine 4 Machine 3 Distributed Execution of a PowerGraph Vertex-Program Σ1Σ1 Σ1Σ1 Σ2Σ2 Σ2Σ2 Σ3Σ3 Σ3Σ3 Σ4Σ4 Σ4Σ Y Y YY Y’ Σ Σ Gather Apply Scatter 14 Master Mirror

Constructing Vertex-Cuts Evenly assign edges to machines – Minimize machines spanned by each vertex Assign each edge as it is loaded – Touch each edge only once Propose three distributed approaches: – Random Edge Placement – Coordinated Greedy Edge Placement – Oblivious Greedy Edge Placement 15

Machine 2 Machine 1 Machine 3 Random Edge-Placement Randomly assign edges to machines Y Y Y YZYYYYZ YZ Y Spans 3 Machines Z Spans 2 Machines Balanced Vertex-Cut Not cut! 16

Greedy Vertex-Cuts Place edges on machines which already have the vertices in that edge. Machine1 Machine 2 BACB DAEB 17 Can this cause load imbalance?

Computation Balance Hypothesis: – Power-law graphs cause computation/communication imbalance – Real world graphs are power-law graphs, so they do too Maximum loaded worker 35x slower than the average worker 18

Computation Balance (II) Maximum loaded worker only 7% slower than the average worker Substantial variability across high- degree vertices ensures balanced load with hash-based partitioning 19

Communication Analysis Communication overhead of a vertex v: – # of values v sends over the network in an iteration Communication overhead of an algorithm: – Average across all vertices – Pregel: # of edge cuts – GraphLab: # of ghosts – PowerGraph: 2 x # of mirrors 20

Communication Overhead GraphLab has lower communication overhead than PowerGraph! Even Pregel is better than PowerGraph for large # of machines!

Meanwhile (in the paper …) 22 Total Network (GB) Seconds CommunicationRuntime Natural Graph with 40M Users, 1.4 Billion Links Reduces Communication Runs Faster 32 Nodes x 8 Cores (EC2 HPC cc1.4x)

Other issues … Graph storage: – Pregel: out-edges only – PowerGraph/GraphLab: (in + out)-edges – Drawback of storing both (in + out) edges? Leverage HDD for graph computation – GraphChi (OSDI ’12) Dynamic load balancing – Mizan (Eurosys ‘13)

Questions?