Acknowledgement: Arijit Khan, Sameh Elnikety. Google: > 1 trillion indexed pages Web GraphSocial Network Facebook: > 1.5 billion active users 31 billion.

Slides:



Advertisements
Similar presentations
Pregel: A System for Large-Scale Graph Processing
Advertisements

Overview of this week Debugging tips for ML algorithms
Graphs (Part II) Shannon Quinn (with thanks to William Cohen and Aapo Kyrola of CMU, and J. Leskovec, A. Rajaraman, and J. Ullman of Stanford University)
1 TDD: Topics in Distributed Databases Distributed Query Processing MapReduce Vertex-centric models for querying graphs Distributed query evaluation by.
Armend Hoxha Trevor Hodde Kexin Shi Mizan: A system for Dynamic Load Balancing in Large-Scale Graph Processing Presented by:
Distributed Graph Analytics Imranul Hoque CS525 Spring 2013.
Distributed Graph Processing Abhishek Verma CS425.
GraphChi: Big Data – small machine
Data-Intensive Computing with MapReduce/Pig Pramod Bhatotia MPI-SWS Distributed Systems – Winter Semester 2014.
APACHE GIRAPH ON YARN Chuan Lei and Mohammad Islam.
IMapReduce: A Distributed Computing Framework for Iterative Computation Yanfeng Zhang, Northeastern University, China Qixin Gao, Northeastern University,
Design Patterns for Efficient Graph Algorithms in MapReduce Jimmy Lin and Michael Schatz University of Maryland Tuesday, June 29, 2010 This work is licensed.
Presented By: Wang Hao March 8 th, 2011 The PageRank Citation Ranking: Bringing Order to the Web Lawrence Page, Sergey Brin, Rajeev Motwani, Terry Winograd.
Pregel: A System for Large-Scale Graph Processing
Systems for Big-Graphs
Big Data Infrastructure Jimmy Lin University of Maryland Monday, April 13, 2015 Session 10: Beyond MapReduce — Graph Processing This work is licensed under.
Paper by: Grzegorz Malewicz, Matthew Austern, Aart Bik, James Dehnert, Ilan Horn, Naty Leiser, Grzegorz Czajkowski (Google, Inc.) Pregel: A System for.
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.
Pregel: A System for Large-Scale Graph Processing
Chronos: A Graph Engine for Temporal Graph Analysis
MapReduce and Graph Data Chapter 5 Based on slides from Jimmy Lin’s lecture slides ( (licensed.
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.
Big Graph Processing on Cloud Jeffrey Xu Yu ( 于旭 ) The Chinese University of Hong Kong
Hadoop/MapReduce Computing Paradigm 1 Shirish Agale.
CSE 486/586 CSE 486/586 Distributed Systems Graph Processing Steve Ko Computer Sciences and Engineering University at Buffalo.
Design Patterns for Efficient Graph Algorithms in MapReduce Jimmy Lin and Michael Schatz (Slides by Tyler S. Randolph)
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.
The PageRank Citation Ranking: Bringing Order to the Web Lawrence Page, Sergey Brin, Rajeev Motwani, Terry Winograd Presented by Anca Leuca, Antonis Makropoulos.
Mizan Mizan: Optimizing Graph Mining in Large Parallel Systems Panos Kalnis King Abdullah University of Science and Technology (KAUST) H. Jamjoom (IBM.
Fast, Exact Graph Diameter Computation with Vertex Programming Corey Pennycuff and Tim Weninger SIGKDD Workshop on High Performance Graph Mining August.
Keyword Search in Databases using PageRank By Michael Sirivianos April 11, 2003.
Joseph Gonzalez Yucheng Low Danny Bickson Distributed Graph-Parallel Computation on Natural Graphs Haijie Gu Joint work with: Carlos Guestrin.
Pregel Algorithms for Graph Connectivity Problems with Performance Guarantees Da Yan (CUHK), James Cheng (CUHK), Kai Xing (HKUST), Yi Lu (CUHK), Wilfred.
Distributed Systems CS
© 2015 A. Haeberlen, Z. Ives NETS 212: Scalable and Cloud Computing 1 University of Pennsylvania Iterative processing October 20, 2015.
Data Structures and Algorithms in Parallel Computing Lecture 4.
GraphX: Graph Analytics on Spark
Data Structures and Algorithms in Parallel Computing
Pregel: A System for Large-Scale Graph Processing Nov 25 th 2013 Database Lab. Wonseok Choi.
Memcached Integration with Twister Saliya Ekanayake - Jerome Mitchell - Yiming Sun -
Outline  Introduction  Subgraph Pattern Matching  Types of Subgraph Pattern Matching  Models of Computation  Distributed Algorithms  Performance.
Importance Measures on Nodes Lecture 2 Srinivasan Parthasarathy 1.
REX: RECURSIVE, DELTA-BASED DATA-CENTRIC COMPUTATION Yavuz MESTER Svilen R. Mihaylov, Zachary G. Ives, Sudipto Guha University of Pennsylvania.
Google's Page Rank. Google Page Ranking “The Anatomy of a Large-Scale Hypertextual Web Search Engine” by Sergey Brin and Lawrence Page
Department of Computer Science, Johns Hopkins University Pregel: BSP and Message Passing for Graph Computations EN Randal Burns 14 November 2013.
Big Data Infrastructure Week 11: Analyzing Graphs, Redux (1/2) This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0.
COMP7330/7336 Advanced Parallel and Distributed Computing MapReduce - Introduction Dr. Xiao Qin Auburn University
Big Data Infrastructure
Lecture 22: Stream Processing, Graph Processing
Distributed Programming in “Big Data” Systems Pramod Bhatotia wp
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
Sang-Woo Jun, Andy Wright, Sizhuo Zhang, Shuotao Xu and Arvind
Data Structures and Algorithms in Parallel Computing
Data-Intensive Distributed Computing
Pregelix: Big(ger) Graph Analytics on A Dataflow Engine
COS 518: Advanced Computer Systems Lecture 12 Mike Freedman
Distributed Systems CS
Apache Spark Lecture by: Faria Kalim (lead TA) CS425, UIUC
Pregelix: Think Like a Vertex, Scale Like Spandex
Da Yan, James Cheng, Yi Lu, Wilfred Ng Presented By: Nafisa Anzum
Apache Spark Lecture by: Faria Kalim (lead TA) CS425 Fall 2018 UIUC
Review of Bulk-Synchronous Communication Costs Problem of Semijoin
Computational Advertising and
Systems for Big-Graphs
Presentation transcript:

Acknowledgement: Arijit Khan, Sameh Elnikety

Google: > 1 trillion indexed pages Web GraphSocial Network Facebook: > 1.5 billion active users 31 billion RDF triples in 2011 Information Network Biological Network De Bruijn: 4 k nodes (k = 20, …, 40) Big Graphs Graphs in Machine Learning 100M Ratings, 480K Users, 17K Movies 31 billion RDF triples in 2011

3 Social Scale 100B (10 11 ) Web Scale 1T (10 12 ) Brain Scale, 100T (10 14 ) 100M(10 8 ) US Road Human Connectome, The Human Connectome Project, NIH Knowledge Graph BTC Semantic Web Web graph (Google) Internet Big-Graph Scales Acknowledgement: Y. Wu, WSU

4 Graph Data: Structure + Attributes LinkedIn

5 Graph Data: Structure + Attributes LinkedIn  Web Graph: 20 billion web pages × 20KB = 400 TB  MB/sec disk data-transfer rate = 4 months to read the web

6 Page Rank Computation: Offline Graph Analytics Acknowledgement: I. Mele, Web Information Retrieval

7 Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 V1V1 V2V2 V3V3 V4V4 PR(u): Page Rank of node u F u : Out-neighbors of node u B u : In-neighbors of node u

8 Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 V1V1 V2V2 V3V3 V4V4 K=0 PR(V 1 )0.25 PR(V 2 )0.25 PR(V 3 )0.25 PR(V 4 )0.25

9 Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 V1V1 V2V2 V3V3 V4V4 K=0K=1 PR(V 1 )0.25 ? PR(V 2 )0.25 PR(V 3 )0.25 PR(V 4 )0.25

10 Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 V1V1 V2V2 V3V3 V4V4 K=0K=1 PR(V 1 )0.25 ? PR(V 2 )0.25 PR(V 3 )0.25 PR(V 4 )

Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 V1V1 V2V2 V3V3 V4V4 K=0K=1 PR(V 1 ) PR(V 2 )0.25 PR(V 3 )0.25 PR(V 4 )

12 Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 K=0K=1 PR(V 1 ) PR(V 2 ) PR(V 3 ) PR(V 4 ) V1V1 V2V2 V3V3 V4V4

13 Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 K=0K=1K=2 PR(V 1 ) PR(V 2 ) PR(V 3 ) PR(V 4 ) V1V1 V2V2 V3V3 V4V4 Iterative Batch Processing

14 Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 K=0K=1K=2K=3 PR(V 1 ) PR(V 2 ) PR(V 3 ) PR(V 4 ) V1V1 V2V2 V3V3 V4V4 Iterative Batch Processing

15 Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 K=0K=1K=2K=3K=4 PR(V 1 ) PR(V 2 ) PR(V 3 ) PR(V 4 ) V1V1 V2V2 V3V3 V4V4 Iterative Batch Processing

16 Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 K=0K=1K=2K=3K=4K=5 PR(V 1 ) PR(V 2 ) PR(V 3 ) PR(V 4 ) V1V1 V2V2 V3V3 V4V4 Iterative Batch Processing

17 Page Rank Computation: Offline Graph Analytics Sergey Brin, Lawrence Page, “The Anatomy of Large-Scale Hypertextual Web Search Engine”, WWW ‘98 K=0K=1K=2K=3K=4K=5K=6 PR(V 1 ) PR(V 2 ) PR(V 3 ) PR(V 4 ) V1V1 V2V2 V3V3 V4V4 FixPoint

PageRank over MapReduce Each Page Rank Iteration:  Input: -(id 1, [PR t (1), out 11, out 12, …]), -(id 2, [PR t (2), out 21, out 22, …]), …  Output: -(id 1, [PR t+1 (1), out 11, out 12, …]), -(id 2, [PR t+1 (2), out 21, out 22, …]), … Multiple MapReduce iterations Iterate until convergence  another MapReduce instance V1V1 V2V2 V3V3 V4V4 V 1, [0.25, V 2, V 3, V 4 ] V 2, [0.25, V 3, V 4 ] V 3, [0.25, V 1 ] V 4,[0.25, V 1, V 3 ] V 1, [0.37, V 2, V 3, V 4 ] V 2, [0.08, V 3, V 4 ] V 3, [0.33, V 1 ] V 4,[0.20, V 1, V 3 ] Input: Output: One MapReduce Iteration

PageRank over MapReduce (One Iteration) Map  Input: (V 1, [0.25, V 2, V 3, V 4 ]); (V 2, [0.25, V 3, V 4 ]); (V 3, [0.25, V 1 ]); (V 4,[0.25, V 1, V 3 ])  Output: (V 2, 0.25/3), (V 3, 0.25/3), (V 4, 0.25/3), ……, (V 1, 0.25/2), (V 3, 0.25/2); (V 1, [V 2, V 3, V 4 ]), (V 2, [V 3, V 4 ]), (V 3, [V 1 ]), (V 4, [V 1, V 3 ]) V1V1 V2V2 V3V3 V4V4

PageRank over MapReduce (One Iteration) Map  Input: (V 1, [0.25, V 2, V 3, V 4 ]); (V 2, [0.25, V 3, V 4 ]); (V 3, [0.25, V 1 ]); (V 4,[0.25, V 1, V 3 ])  Output: (V 2, 0.25/3), (V 3, 0.25/3), (V 4, 0.25/3), ……, (V 1, 0.25/2), (V 3, 0.25/2); (V 1, [V 2, V 3, V 4 ]), (V 2, [V 3, V 4 ]), (V 3, [V 1 ]), (V 4, [V 1, V 3 ]) V1V1 V2V2 V3V3 V4V4

PageRank over MapReduce (One Iteration) Map  Input: (V 1, [0.25, V 2, V 3, V 4 ]); (V 2, [0.25, V 3, V 4 ]); (V 3, [0.25, V 1 ]); (V 4,[0.25, V 1, V 3 ])  Output: (V 2, 0.25/3), (V 3, 0.25/3), (V 4, 0.25/3), ……, (V 1, 0.25/2), (V 3, 0.25/2); (V 1, [V 2, V 3, V 4 ]), (V 2, [V 3, V 4 ]), (V 3, [V 1 ]), (V 4, [V 1, V 3 ]) Shuffle  Output: (V 1, 0.25/1), (V 1, 0.25/2), (V 1, [V 2, V 3, V 4 ]); ……. ; (V 4, 0.25/3), (V 4, 0.25/2), (V 4, [V 1, V 3 ]) V1V1 V2V2 V3V3 V4V4

PageRank over MapReduce (One Iteration) Map  Input: (V 1, [0.25, V 2, V 3, V 4 ]); (V 2, [0.25, V 3, V 4 ]); (V 3, [0.25, V 1 ]); (V 4,[0.25, V 1, V 3 ])  Output: (V 2, 0.25/3), (V 3, 0.25/3), (V 4, 0.25/3), ……, (V 1, 0.25/2), (V 3, 0.25/2); (V 1, [V 2, V 3, V 4 ]), (V 2, [V 3, V 4 ]), (V 3, [V 1 ]), (V 4, [V 1, V 3 ]) Shuffle  Output: (V 1, 0.25/1), (V 1, 0.25/2), (V 1, [V 2, V 3, V 4 ]); ……. ; (V 4, 0.25/3), (V 4, 0.25/2), (V 4, [V 1, V 3 ]) Reduce  Output: (V 1, [0.37, V 2, V 3, V 4 ]); (V 2, [0.08, V 3, V 4 ]); (V 3, [0.33, V 1 ]); (V 4,[0.20, V 1, V 3 ]) V1V1 V2V2 V3V3 V4V4

Key Insight in Parallelization (Page Rank over MapReduce) The ‘future’ Page Rank values depend on ‘current’ Page Rank values, but not on any other ‘future’ Page Rank values. ‘Future’ Page Rank value of each node can be computed in parallel.

Problems with MapReduce for Graph Analytics MapReduce does not directly support iterative algorithms  Invariant graph-topology-data re-loaded and re-processed at each iteration  wasting I/O, network bandwidth, and CPU  Materializations of intermediate results at every MapReduce iteration harm performance  Extra MapReduce job on each iteration for detecting if a fixpoint has been reached Each Page Rank Iteration: Input: (id 1, [PR t (1), out 11, out 12, … ]), (id 2, [PR t (2), out 21, out 22, … ]), … Output: (id 1, [PR t+1 (1), out 11, out 12, … ]), (id 2, [PR t+1 (2), out 21, out 22, … ]), …

Alternative to Simple MapReduce for Graph Analytics HALOOP [Y. Bu et. al., VLDB ‘10] TWISTER [J. Ekanayake et. al., HPDC ‘10] Piccolo [R. Power et. al., OSDI ‘10] SPARK [M. Zaharia et. al., HotCloud ‘10] PREGEL [G. Malewicz et. al., SIGMOD ‘10] GBASE [U. Kang et. al., KDD ‘11] Iterative Dataflow-based Solutions: Stratosphere [Ewen et. al., VLDB ‘12]; GraphX [R. Xin et. al., GRADES ‘13]; Naiad [D. Murray et. al., SOSP’13] DataLog-based Solutions: SociaLite [J. Seo et. al., VLDB ‘13]

Alternative to Simple MapReduce for Graph Analytics Bulk Synchronous Parallel (BSP) Computation HALOOP [Y. Bu et. al., VLDB ‘10] TWISTER [J. Ekanayake et. al., HPDC ‘10] Piccolo [R. Power et. al., OSDI ‘10] SPARK [M. Zaharia et. al., HotCloud ‘10] PREGEL [G. Malewicz et. al., SIGMOD ‘10] GBASE [U. Kang et. al., KDD ’11] Dataflow-based Solutions: Stratosphere [Ewen et. al., VLDB ‘12]; GraphX [R. Xin et. al., GRADES ‘13]; Naiad [D. Murray et. al., SOSP’13] DataLog-based Solutions: SociaLite [J. Seo et. al., VLDB ‘13]

PREGEL G. Malewicz et. al., “Pregel: A System for Large-Scale Graph Processing”, SIGMOD ‘10 Inspired by Valiant’s Bulk Synchronous Parallel (BSP) model Communication through message passing (usually sent along the outgoing edges from each vertex) + Shared-Nothing Vertex centric computation

PREGEL Inspired by Valiant’s Bulk Synchronous Parallel (BSP) model Communication through message passing (usually sent along the outgoing edges from each vertex) + Shared-Nothing Vertex centric computation Each vertex:  Receives messages sent in the previous superstep  Executes the same user-defined function  Modifies its value  If active, sends messages to other vertices (received in the next superstep)  Votes to halt if it has no further work to do  becomes inactive Terminate when all vertices are inactive and no messages in transmission

PREGEL ActiveInactive Message Received Votes to Halt State Machine for a Vertex in PREGEL Input Output Computation Communication Superstep Synchronization PREGEL Computation Model

PREGEL System Architecture Master-Slave architecture Acknowledgement: G. Malewicz, Google

PageRank in Giraph (Pregel) public void compute(Iterator msgIterator) { double sum = 0; while (msgIterator.hasNext()) sum += msgIterator.next().get(); DoubleWritable vertexValue = new DoubleWritable(0.15/ NUM_VERTICES * sum); setVertexValue(vertexValue); if (getSuperstep() < MAX_STEPS) { long edges = getOutEdgeMap().size(); sentMsgToAllEdges( new DoubleWritable(getVertexValue().get() / edges)); } else voteToHalt(); } Sum PageRank over incoming messages Suppose: PageRank = 0.15/NUM_VERTICES * SUM

Page Rank with PREGEL 0.2 PR = 0.15/ * SUM Superstep = 0 0.2

Page Rank with PREGEL PR = 0.15/ * SUM Superstep =

Page Rank with PREGEL PR = 0.15/ * SUM Superstep =

Page Rank with PREGEL PR = 0.15/ * SUM Superstep = Computation converged

Page Rank with PREGEL PR = 0.15/ * SUM Superstep =

Page Rank with PREGEL PR = 0.15/ * SUM Superstep =

Benefits of PREGEL over MapReduce MapReduce PREGEL Requires passing of entire graph topology from one iteration to the next Each node sends its state only to its neighbors. Graph topology information is not passed across iterations Intermediate results after every iteration is stored at disk and then read again from the disk Main memory based (20X faster for k-core decomposition problem; B. Elser et. al., IEEE BigData ‘13) Programmer needs to write a driver program to support iterations; another MapReduce program to check for fixpoint Usage of supersteps and master-client architecture makes programming easy

Graph Algorithms Implemented with PREGEL (and PREGEL-Like-Systems) Not an Exclusive List Page Rank Triangle Counting Connected Components Shortest Distance Random Walk Graph Coarsening Graph Coloring Minimum Spanning Forest Community Detection Collaborative Filtering Belief Propagation Named Entity Recognition

Disadvantages of PREGEL In Bulk Synchronous Parallel (BSP) model, performance is limited by the slowest machine  Real-world graphs have power-law degree distribution, which may lead to a few highly-loaded servers

BSP Programming Model and its Variants: Offline Graph Analytics PREGEL [G. Malewicz et. al., SIGMOD ‘10] GPS [S. Salihoglu et. al., SSDBM ‘13] X-Stream [A. Roy et. al., SOSP ‘13] GraphLab/ PowerGraph [Y. Low et. al., VLDB ‘12] Grace [G. Wang et. al., CIDR ‘13] SIGNAL/COLLECT [P. Stutz et. al., ISWC ‘10] Giraph++ [Tian et. al., VLDB ‘13] GraphChi [A. Kyrola et. al., OSDI ‘12] Asynchronous Accumulative Update [Y. Zhang et. al., ScienceCloud ‘12], PrIter [Y. Zhang et. al., SOCC ‘11] Synchronous Asynchronous