SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Pregel: A System for Large-Scale
          Graph Processing
Written by: Grzegorz Malewicz et al at SIGMOD 2010
Presented by: Abolfazl Asudeh

CSE 6339 – Spring 2013
Problem?
       Very large graphs are a popular object of analysis:
        e.g. Social networks, web and several other areas
       Efficient processing of large graphs is challenging:
           poor locality of memory access
           very little work per vertex
       Distribution over many machines:
           the locality issue?
           Machine failure?
       There was no scalable general-purpose system for
        implementing arbitrary graph algorithms over
        arbitrary graph representations in a large-scale
        distributed environment

    2                                           4/11/2013
Want to process a large scale graph?
The options:
       Crafting a custom distributed infrastructure
           Needs a lot of effort and has to be repeated for every new
            algorithm
       Relying on an existing distributed platform: e.g. Map
        Reduce
           Must store graph state in each state  too much
            communication between stages
       Using a single-computer graph algorithm library !!
       Using an existing parallel graph system
           Do not address problems like fault tolerance that are very
            important in large graph processing

    3                                                 4/11/2013
How can we solve the problem?




                             How to Assign?




Billions of Vertices/Edges                    Thousand/millions of Computers
          (Graph)                                  (Distributed System)


      4                                              4/11/2013
The high-level organization of Pregel
programs
                                                           All Vote

Input                                                      to Halt
                                                                      Output

       sequence of iterations, called super-steps.
       each vertex invokes a function conceptually in
        parallel
       The function specifies behavior at a single vertex V
        and a single superstep S
       can read messages from previous steps and send
        messages for next steps
       Can modify the state? of V and its outgoing edges.



    5                                          4/11/2013
advantage?
In vertex-centric approach
       users focus on a local action
       processing each item independently
       ensures that Pregel programs are inherently free of
        deadlocks and data races common in asynchronous
        systems.




    6                                        4/11/2013
MODEL OF COMPUTATION
       A Directed Graph is given to Pregel
       It runs the computation at each vertex
       Until all nodes vote for halt
       Then Returns the results

                                                             All Vote
                                                             to Halt
                                                                        Output




    7                                            4/11/2013
Vertex State Machine
       Algorithm termination is based on every vertex
        voting to halt
       In superstep 0, every vertex is in the active state
       A vertex deactivates itself by voting to halt
       It can be reactivated by receiving an (external)
        message




    8                                           4/11/2013
The C++ API (Vertex Class)
 1. template <typename VertexValue,
 2.       typename EdgeValue,
 3.       typename MessageValue>
 4. class Vertex {
 5. public:
 6.       virtual void Compute(MessageIterator* msgs) = 0;
 7.       const string& vertex_id() const;
 8.       int64 superstep() const;
 9.       const VertexValue& GetValue();
 10.      VertexValue* MutableValue();
 11.      OutEdgeIterator GetOutEdgeIterator();
 12.      void SendMessageTo(const string& dest_vertex,       const
     MessageValue& message);
 13.      void VoteToHalt();
 14. };




9                                                      4/11/2013
The C++ API - Message Passing
    Massages are guaranteed to deliver but not in
     original order
    Each message is delivered only once
    Each vertex can send massage to any vertex




    10                                    4/11/2013
Maximum Value Example




11                      4/11/2013
The C++ API – other classes
    Combiners (not active by default)
        User Can specify a way in this class to reduce the
         number of sending the same message
    Aggregators
        Gather The global information such as Statistical values
         (sum, average, min,…)
        Can Also be used as a global manager to force the
         vertices to run a specific branches of their Compute
         functions during specific SuperSteps




    12                                             4/11/2013
The C++ API
    Topology Mutation
        Some graph algorithms need to change the graph's
         topology.
            E.g. A clustering algorithm may need to replace a cluster with a
             node
        Add Vertex, Then add edge. Remove all edges then
         remove vertex
        User defined handlers can be added to solve the conflicts
    Input / Output
        It has Reader/Writer for famous file formats like text and
         relational DBs
        User can customize Reader/Writer for new input/outputs

    13                                                    4/11/2013
Implementation
    Pregel was designed for the Google cluster
     architecture
    Each cluster consists of thousands of commodity
     PCs organized into racks with high intra-rack
     bandwidth
    Clusters are interconnected but distributed
     geographically
    Vertices are assigned to the machines based on
     their vertex-ID ( hash(ID) ) so that it can easily be
     understood that which node is where


    14                                        4/11/2013
Implementation
1.       User Programs are copied on machines
2.       One machine becomes the master.
        Other computer can find the master using name service
         and register themselves to it
        The master determines how many partitions the graph
         have
3.       The master assigns one or more partitions (why?)
         and a portion of user input to each worker
4.       The workers run the compute function for active
         vertices and send the messages asynchronously
        There is one thread for each partition in each worker
        When the superstep is finished workers tell the master
 15      how many vertices will be active for next superstep
                                                    4/11/2013
Fault tolerance
    At the end of each super step:
        Workers checkpoint V, E, and Messages
        Master checkpoints the aggregated values
    Failure is detected by “ping” messages from master
     to workers
    The Master reassigns the partition to available
     workers and it is recovered from the last check point
        In Confined recovery only the missed partitions have to
         be recomputed because the result of other computations
         are known
            Not possible for randomized algorithms


    16                                                4/11/2013
Worker implementation
    Maintains some partitions of the graph
    Has the message-queues for supersteps S and S+1
    If the destination is not in this machine it is buffered
     to be sent and when the buffer is full it is flashed
    The user may define Combiners to send the remote
     messages




    17                                        4/11/2013
Master Implementation
    maintains a list of all workers currently known to be
     alive, including the worker's ID and address, and
     which portion of the graph it has been assigned
    Does the synchronization and coordinates all
     operations
    Maintains statistics and runs a HTTP server for user




    18                                      4/11/2013
Aggregators Implementation
     The information are passed to the master in a Tree
     Structure
    The workers may send their information to the
     Aggregator machines and they aggregate and send
     the values the Master Machine
                                                       Worker


       Worker
                              Aggregator
                                              Master




19                                         4/11/2013
Application – Page Rank ?
class PageRankVertex
           : public Vertex<double, void, double> {
public:
  virtual void Compute(MessageIterator* msgs) {
           if (superstep() >= 1) {
                     double sum = 0;
                     for (; !msgs->Done(); msgs->Next())
                               sum += msgs->Value();
                     *MutableValue() =0.15 / NumVertices() + 0.85 * sum;
           }
           if (superstep() < 30) {
                     const int64 n = GetOutEdgeIterator().size();
                     SendMessageToAllNeighbors(GetValue() / n);
           } else
                     VoteToHalt();
  }
};

20                                                         4/11/2013
Application – Shortest Path ?
class ShortestPathVertex
         : public Vertex<int, int, int> {
  void Compute(MessageIterator* msgs) {
         int mindist = IsSource(vertex_id()) ? 0 : INF;
         for (; !msgs->Done(); msgs->Next())
                   mindist = min(mindist, msgs->Value());
         if (mindist < GetValue()) {
                   *MutableValue() = mindist;
                   OutEdgeIterator iter = GetOutEdgeIterator();
                   for (; !iter.Done(); iter.Next())
                               SendMessageTo(iter.Target(),mindist +
iter.GetValue());
         }
         VoteToHalt();
  }
};



 21                                                         4/11/2013
Application – Bipartite matching
    Problem: Find a set of edges in the bipartite graph
     that share no endpoint
1.       each left vertex not yet matched sends a message to
         each of its neighbors to request a match, and then
         unconditionally votes to halt
2.       each right vertex not yet matched randomly chooses
         one of the messages it receives, sends a message
         granting that request
3.       each left vertex not yet matched chooses one of the
         grants it receives and sends an acceptance message
4.       The right node receives the message and votes to halt


    22                                          4/11/2013
Experiments
    300 Multicore PCs were used
    They just count the running time (not check pointing)
    Measure the scalability of workers
    Measure the scalability over number of vertices




    23                                      4/11/2013
shortest paths runtimes for a binary tree with a
billion vertices (and, thus, a billion minus one edges)
when the number of Pregel workers varies from 50 to
800




   24                                      4/11/2013
shortest paths runtimes for binary trees varying in
size from a billion to 50 billion vertices, now using a
fixed number of 800 worker tasks scheduled on 300
multicore machines.




   25                                       4/11/2013
Random graphs that use a log-normal
distribution of outdegrees




  26                        4/11/2013
Thank you




27          4/11/2013

Weitere ähnliche Inhalte

Was ist angesagt?

Data flow architecture
Data flow architectureData flow architecture
Data flow architectureSourav Routh
 
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTING
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTINGDYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTING
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTINGcscpconf
 
Signals And Systems Lab Manual, R18 Batch
Signals And Systems Lab Manual, R18 BatchSignals And Systems Lab Manual, R18 Batch
Signals And Systems Lab Manual, R18 BatchAmairullah Khan Lodhi
 
Feng’s classification
Feng’s classificationFeng’s classification
Feng’s classificationNarayan Kandel
 
Pregel reading circle
Pregel reading circlePregel reading circle
Pregel reading circlecharlingual
 
Lecture 4 principles of parallel algorithm design updated
Lecture 4   principles of parallel algorithm design updatedLecture 4   principles of parallel algorithm design updated
Lecture 4 principles of parallel algorithm design updatedVajira Thambawita
 
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP IJCSEIT Journal
 
advanced computer architesture-conditions of parallelism
advanced computer architesture-conditions of parallelismadvanced computer architesture-conditions of parallelism
advanced computer architesture-conditions of parallelismPankaj Kumar Jain
 
Parallel Processors (SIMD)
Parallel Processors (SIMD) Parallel Processors (SIMD)
Parallel Processors (SIMD) Ali Raza
 
Design of optimized Interval Arithmetic Multiplier
Design of optimized Interval Arithmetic MultiplierDesign of optimized Interval Arithmetic Multiplier
Design of optimized Interval Arithmetic MultiplierVLSICS Design
 
11 construction productivity and cost estimation using artificial
11 construction productivity and cost estimation using artificial 11 construction productivity and cost estimation using artificial
11 construction productivity and cost estimation using artificial Vivan17
 
Presentation on "Mizan: A System for Dynamic Load Balancing in Large-scale Gr...
Presentation on "Mizan: A System for Dynamic Load Balancing in Large-scale Gr...Presentation on "Mizan: A System for Dynamic Load Balancing in Large-scale Gr...
Presentation on "Mizan: A System for Dynamic Load Balancing in Large-scale Gr...Zuhair khayyat
 
A complete user adaptive antenna tutorial demonstration. a gui based approach...
A complete user adaptive antenna tutorial demonstration. a gui based approach...A complete user adaptive antenna tutorial demonstration. a gui based approach...
A complete user adaptive antenna tutorial demonstration. a gui based approach...Pablo Velarde A
 
Intel’S Larrabee
Intel’S LarrabeeIntel’S Larrabee
Intel’S Larrabeevipinpnair
 
Map reduce in Hadoop
Map reduce in HadoopMap reduce in Hadoop
Map reduce in Hadoopishan0019
 
Accelerating Real Time Applications on Heterogeneous Platforms
Accelerating Real Time Applications on Heterogeneous PlatformsAccelerating Real Time Applications on Heterogeneous Platforms
Accelerating Real Time Applications on Heterogeneous PlatformsIJMER
 
Block Image Encryption using Wavelet
Block Image Encryption using WaveletBlock Image Encryption using Wavelet
Block Image Encryption using WaveletIRJET Journal
 
Harnessing the Killer Micros
Harnessing the Killer MicrosHarnessing the Killer Micros
Harnessing the Killer MicrosJim Belak
 

Was ist angesagt? (20)

Systolic, Transposed & Semi-Parallel Architectures and Programming
Systolic, Transposed & Semi-Parallel Architectures and ProgrammingSystolic, Transposed & Semi-Parallel Architectures and Programming
Systolic, Transposed & Semi-Parallel Architectures and Programming
 
EEDC Programming Models
EEDC Programming ModelsEEDC Programming Models
EEDC Programming Models
 
Data flow architecture
Data flow architectureData flow architecture
Data flow architecture
 
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTING
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTINGDYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTING
DYNAMIC TASK PARTITIONING MODEL IN PARALLEL COMPUTING
 
Signals And Systems Lab Manual, R18 Batch
Signals And Systems Lab Manual, R18 BatchSignals And Systems Lab Manual, R18 Batch
Signals And Systems Lab Manual, R18 Batch
 
Feng’s classification
Feng’s classificationFeng’s classification
Feng’s classification
 
Pregel reading circle
Pregel reading circlePregel reading circle
Pregel reading circle
 
Lecture 4 principles of parallel algorithm design updated
Lecture 4   principles of parallel algorithm design updatedLecture 4   principles of parallel algorithm design updated
Lecture 4 principles of parallel algorithm design updated
 
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP
Performance Analysis of Parallel Algorithms on Multi-core System using OpenMP
 
advanced computer architesture-conditions of parallelism
advanced computer architesture-conditions of parallelismadvanced computer architesture-conditions of parallelism
advanced computer architesture-conditions of parallelism
 
Parallel Processors (SIMD)
Parallel Processors (SIMD) Parallel Processors (SIMD)
Parallel Processors (SIMD)
 
Design of optimized Interval Arithmetic Multiplier
Design of optimized Interval Arithmetic MultiplierDesign of optimized Interval Arithmetic Multiplier
Design of optimized Interval Arithmetic Multiplier
 
11 construction productivity and cost estimation using artificial
11 construction productivity and cost estimation using artificial 11 construction productivity and cost estimation using artificial
11 construction productivity and cost estimation using artificial
 
Presentation on "Mizan: A System for Dynamic Load Balancing in Large-scale Gr...
Presentation on "Mizan: A System for Dynamic Load Balancing in Large-scale Gr...Presentation on "Mizan: A System for Dynamic Load Balancing in Large-scale Gr...
Presentation on "Mizan: A System for Dynamic Load Balancing in Large-scale Gr...
 
A complete user adaptive antenna tutorial demonstration. a gui based approach...
A complete user adaptive antenna tutorial demonstration. a gui based approach...A complete user adaptive antenna tutorial demonstration. a gui based approach...
A complete user adaptive antenna tutorial demonstration. a gui based approach...
 
Intel’S Larrabee
Intel’S LarrabeeIntel’S Larrabee
Intel’S Larrabee
 
Map reduce in Hadoop
Map reduce in HadoopMap reduce in Hadoop
Map reduce in Hadoop
 
Accelerating Real Time Applications on Heterogeneous Platforms
Accelerating Real Time Applications on Heterogeneous PlatformsAccelerating Real Time Applications on Heterogeneous Platforms
Accelerating Real Time Applications on Heterogeneous Platforms
 
Block Image Encryption using Wavelet
Block Image Encryption using WaveletBlock Image Encryption using Wavelet
Block Image Encryption using Wavelet
 
Harnessing the Killer Micros
Harnessing the Killer MicrosHarnessing the Killer Micros
Harnessing the Killer Micros
 

Ähnlich wie Pregel: A System for Large-Scale Graph Processing

2011.10.14 Apache Giraph - Hortonworks
2011.10.14 Apache Giraph - Hortonworks2011.10.14 Apache Giraph - Hortonworks
2011.10.14 Apache Giraph - HortonworksAvery Ching
 
Map reduce presentation
Map reduce presentationMap reduce presentation
Map reduce presentationateeq ateeq
 
MapReduce: Ordering and Large-Scale Indexing on Large Clusters
MapReduce: Ordering and  Large-Scale Indexing on Large ClustersMapReduce: Ordering and  Large-Scale Indexing on Large Clusters
MapReduce: Ordering and Large-Scale Indexing on Large ClustersIRJET Journal
 
MALT: Distributed Data-Parallelism for Existing ML Applications (Distributed ...
MALT: Distributed Data-Parallelism for Existing ML Applications (Distributed ...MALT: Distributed Data-Parallelism for Existing ML Applications (Distributed ...
MALT: Distributed Data-Parallelism for Existing ML Applications (Distributed ...asimkadav
 
Directive-based approach to Heterogeneous Computing
Directive-based approach to Heterogeneous ComputingDirective-based approach to Heterogeneous Computing
Directive-based approach to Heterogeneous ComputingRuymán Reyes
 
Migration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming ModelsMigration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming ModelsZvi Avraham
 
parallel programming models
 parallel programming models parallel programming models
parallel programming modelsSwetha S
 
An Introduction to TensorFlow architecture
An Introduction to TensorFlow architectureAn Introduction to TensorFlow architecture
An Introduction to TensorFlow architectureMani Goswami
 
Simplified Data Processing On Large Cluster
Simplified Data Processing On Large ClusterSimplified Data Processing On Large Cluster
Simplified Data Processing On Large ClusterHarsh Kevadia
 
Big data shim
Big data shimBig data shim
Big data shimtistrue
 
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”Databricks
 
Mapreduce2008 cacm
Mapreduce2008 cacmMapreduce2008 cacm
Mapreduce2008 cacmlmphuong06
 
2004 map reduce simplied data processing on large clusters (mapreduce)
2004 map reduce simplied data processing on large clusters (mapreduce)2004 map reduce simplied data processing on large clusters (mapreduce)
2004 map reduce simplied data processing on large clusters (mapreduce)anh tuan
 
Report Hadoop Map Reduce
Report Hadoop Map ReduceReport Hadoop Map Reduce
Report Hadoop Map ReduceUrvashi Kataria
 

Ähnlich wie Pregel: A System for Large-Scale Graph Processing (20)

Pregel
PregelPregel
Pregel
 
2011.10.14 Apache Giraph - Hortonworks
2011.10.14 Apache Giraph - Hortonworks2011.10.14 Apache Giraph - Hortonworks
2011.10.14 Apache Giraph - Hortonworks
 
Map reduce presentation
Map reduce presentationMap reduce presentation
Map reduce presentation
 
MapReduce: Ordering and Large-Scale Indexing on Large Clusters
MapReduce: Ordering and  Large-Scale Indexing on Large ClustersMapReduce: Ordering and  Large-Scale Indexing on Large Clusters
MapReduce: Ordering and Large-Scale Indexing on Large Clusters
 
MALT: Distributed Data-Parallelism for Existing ML Applications (Distributed ...
MALT: Distributed Data-Parallelism for Existing ML Applications (Distributed ...MALT: Distributed Data-Parallelism for Existing ML Applications (Distributed ...
MALT: Distributed Data-Parallelism for Existing ML Applications (Distributed ...
 
Directive-based approach to Heterogeneous Computing
Directive-based approach to Heterogeneous ComputingDirective-based approach to Heterogeneous Computing
Directive-based approach to Heterogeneous Computing
 
Migration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming ModelsMigration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming Models
 
Interpreting the Data:Parallel Analysis with Sawzall
Interpreting the Data:Parallel Analysis with SawzallInterpreting the Data:Parallel Analysis with Sawzall
Interpreting the Data:Parallel Analysis with Sawzall
 
Pregel - Paper Review
Pregel - Paper ReviewPregel - Paper Review
Pregel - Paper Review
 
parallel programming models
 parallel programming models parallel programming models
parallel programming models
 
An Introduction to TensorFlow architecture
An Introduction to TensorFlow architectureAn Introduction to TensorFlow architecture
An Introduction to TensorFlow architecture
 
1844 1849
1844 18491844 1849
1844 1849
 
1844 1849
1844 18491844 1849
1844 1849
 
Simplified Data Processing On Large Cluster
Simplified Data Processing On Large ClusterSimplified Data Processing On Large Cluster
Simplified Data Processing On Large Cluster
 
Big data shim
Big data shimBig data shim
Big data shim
 
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”
 
Mapreduce2008 cacm
Mapreduce2008 cacmMapreduce2008 cacm
Mapreduce2008 cacm
 
Map reduce
Map reduceMap reduce
Map reduce
 
2004 map reduce simplied data processing on large clusters (mapreduce)
2004 map reduce simplied data processing on large clusters (mapreduce)2004 map reduce simplied data processing on large clusters (mapreduce)
2004 map reduce simplied data processing on large clusters (mapreduce)
 
Report Hadoop Map Reduce
Report Hadoop Map ReduceReport Hadoop Map Reduce
Report Hadoop Map Reduce
 

Mehr von Abolfazl Asudeh

Efficient Computation of Regret-ratio Minimizing Set: A Compact Maxima Repres...
Efficient Computation ofRegret-ratio Minimizing Set:A Compact Maxima Repres...Efficient Computation ofRegret-ratio Minimizing Set:A Compact Maxima Repres...
Efficient Computation of Regret-ratio Minimizing Set: A Compact Maxima Repres...Abolfazl Asudeh
 
Query Reranking As A Service
Query Reranking As A ServiceQuery Reranking As A Service
Query Reranking As A ServiceAbolfazl Asudeh
 
[Slides] Crowdsourcing Pareto-Optimal Object Finding By Pairwise Comparisons
[Slides] Crowdsourcing Pareto-Optimal Object Finding By Pairwise Comparisons[Slides] Crowdsourcing Pareto-Optimal Object Finding By Pairwise Comparisons
[Slides] Crowdsourcing Pareto-Optimal Object Finding By Pairwise ComparisonsAbolfazl Asudeh
 
MapReduce : Simplified Data Processing on Large Clusters
MapReduce : Simplified Data Processing on Large ClustersMapReduce : Simplified Data Processing on Large Clusters
MapReduce : Simplified Data Processing on Large ClustersAbolfazl Asudeh
 
GBLENDER: Towards blending visual query formulation and query processing in g...
GBLENDER: Towards blending visual query formulation and query processing in g...GBLENDER: Towards blending visual query formulation and query processing in g...
GBLENDER: Towards blending visual query formulation and query processing in g...Abolfazl Asudeh
 
Using incompletely cooperative game theory in wireless sensor networks
Using incompletely cooperative game theory in wireless sensor networksUsing incompletely cooperative game theory in wireless sensor networks
Using incompletely cooperative game theory in wireless sensor networksAbolfazl Asudeh
 

Mehr von Abolfazl Asudeh (6)

Efficient Computation of Regret-ratio Minimizing Set: A Compact Maxima Repres...
Efficient Computation ofRegret-ratio Minimizing Set:A Compact Maxima Repres...Efficient Computation ofRegret-ratio Minimizing Set:A Compact Maxima Repres...
Efficient Computation of Regret-ratio Minimizing Set: A Compact Maxima Repres...
 
Query Reranking As A Service
Query Reranking As A ServiceQuery Reranking As A Service
Query Reranking As A Service
 
[Slides] Crowdsourcing Pareto-Optimal Object Finding By Pairwise Comparisons
[Slides] Crowdsourcing Pareto-Optimal Object Finding By Pairwise Comparisons[Slides] Crowdsourcing Pareto-Optimal Object Finding By Pairwise Comparisons
[Slides] Crowdsourcing Pareto-Optimal Object Finding By Pairwise Comparisons
 
MapReduce : Simplified Data Processing on Large Clusters
MapReduce : Simplified Data Processing on Large ClustersMapReduce : Simplified Data Processing on Large Clusters
MapReduce : Simplified Data Processing on Large Clusters
 
GBLENDER: Towards blending visual query formulation and query processing in g...
GBLENDER: Towards blending visual query formulation and query processing in g...GBLENDER: Towards blending visual query formulation and query processing in g...
GBLENDER: Towards blending visual query formulation and query processing in g...
 
Using incompletely cooperative game theory in wireless sensor networks
Using incompletely cooperative game theory in wireless sensor networksUsing incompletely cooperative game theory in wireless sensor networks
Using incompletely cooperative game theory in wireless sensor networks
 

Kürzlich hochgeladen

HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxPoojaSen20
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 

Kürzlich hochgeladen (20)

Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 

Pregel: A System for Large-Scale Graph Processing

  • 1. Pregel: A System for Large-Scale Graph Processing Written by: Grzegorz Malewicz et al at SIGMOD 2010 Presented by: Abolfazl Asudeh CSE 6339 – Spring 2013
  • 2. Problem?  Very large graphs are a popular object of analysis: e.g. Social networks, web and several other areas  Efficient processing of large graphs is challenging:  poor locality of memory access  very little work per vertex  Distribution over many machines:  the locality issue?  Machine failure?  There was no scalable general-purpose system for implementing arbitrary graph algorithms over arbitrary graph representations in a large-scale distributed environment 2 4/11/2013
  • 3. Want to process a large scale graph? The options:  Crafting a custom distributed infrastructure  Needs a lot of effort and has to be repeated for every new algorithm  Relying on an existing distributed platform: e.g. Map Reduce  Must store graph state in each state  too much communication between stages  Using a single-computer graph algorithm library !!  Using an existing parallel graph system  Do not address problems like fault tolerance that are very important in large graph processing 3 4/11/2013
  • 4. How can we solve the problem? How to Assign? Billions of Vertices/Edges Thousand/millions of Computers (Graph) (Distributed System) 4 4/11/2013
  • 5. The high-level organization of Pregel programs All Vote Input to Halt Output  sequence of iterations, called super-steps.  each vertex invokes a function conceptually in parallel  The function specifies behavior at a single vertex V and a single superstep S  can read messages from previous steps and send messages for next steps  Can modify the state? of V and its outgoing edges. 5 4/11/2013
  • 6. advantage? In vertex-centric approach  users focus on a local action  processing each item independently  ensures that Pregel programs are inherently free of deadlocks and data races common in asynchronous systems. 6 4/11/2013
  • 7. MODEL OF COMPUTATION  A Directed Graph is given to Pregel  It runs the computation at each vertex  Until all nodes vote for halt  Then Returns the results All Vote to Halt Output 7 4/11/2013
  • 8. Vertex State Machine  Algorithm termination is based on every vertex voting to halt  In superstep 0, every vertex is in the active state  A vertex deactivates itself by voting to halt  It can be reactivated by receiving an (external) message 8 4/11/2013
  • 9. The C++ API (Vertex Class) 1. template <typename VertexValue, 2. typename EdgeValue, 3. typename MessageValue> 4. class Vertex { 5. public: 6. virtual void Compute(MessageIterator* msgs) = 0; 7. const string& vertex_id() const; 8. int64 superstep() const; 9. const VertexValue& GetValue(); 10. VertexValue* MutableValue(); 11. OutEdgeIterator GetOutEdgeIterator(); 12. void SendMessageTo(const string& dest_vertex, const MessageValue& message); 13. void VoteToHalt(); 14. }; 9 4/11/2013
  • 10. The C++ API - Message Passing  Massages are guaranteed to deliver but not in original order  Each message is delivered only once  Each vertex can send massage to any vertex 10 4/11/2013
  • 12. The C++ API – other classes  Combiners (not active by default)  User Can specify a way in this class to reduce the number of sending the same message  Aggregators  Gather The global information such as Statistical values (sum, average, min,…)  Can Also be used as a global manager to force the vertices to run a specific branches of their Compute functions during specific SuperSteps 12 4/11/2013
  • 13. The C++ API  Topology Mutation  Some graph algorithms need to change the graph's topology.  E.g. A clustering algorithm may need to replace a cluster with a node  Add Vertex, Then add edge. Remove all edges then remove vertex  User defined handlers can be added to solve the conflicts  Input / Output  It has Reader/Writer for famous file formats like text and relational DBs  User can customize Reader/Writer for new input/outputs 13 4/11/2013
  • 14. Implementation  Pregel was designed for the Google cluster architecture  Each cluster consists of thousands of commodity PCs organized into racks with high intra-rack bandwidth  Clusters are interconnected but distributed geographically  Vertices are assigned to the machines based on their vertex-ID ( hash(ID) ) so that it can easily be understood that which node is where 14 4/11/2013
  • 15. Implementation 1. User Programs are copied on machines 2. One machine becomes the master.  Other computer can find the master using name service and register themselves to it  The master determines how many partitions the graph have 3. The master assigns one or more partitions (why?) and a portion of user input to each worker 4. The workers run the compute function for active vertices and send the messages asynchronously  There is one thread for each partition in each worker  When the superstep is finished workers tell the master 15 how many vertices will be active for next superstep 4/11/2013
  • 16. Fault tolerance  At the end of each super step:  Workers checkpoint V, E, and Messages  Master checkpoints the aggregated values  Failure is detected by “ping” messages from master to workers  The Master reassigns the partition to available workers and it is recovered from the last check point  In Confined recovery only the missed partitions have to be recomputed because the result of other computations are known  Not possible for randomized algorithms 16 4/11/2013
  • 17. Worker implementation  Maintains some partitions of the graph  Has the message-queues for supersteps S and S+1  If the destination is not in this machine it is buffered to be sent and when the buffer is full it is flashed  The user may define Combiners to send the remote messages 17 4/11/2013
  • 18. Master Implementation  maintains a list of all workers currently known to be alive, including the worker's ID and address, and which portion of the graph it has been assigned  Does the synchronization and coordinates all operations  Maintains statistics and runs a HTTP server for user 18 4/11/2013
  • 19. Aggregators Implementation  The information are passed to the master in a Tree Structure  The workers may send their information to the Aggregator machines and they aggregate and send the values the Master Machine Worker Worker Aggregator Master 19 4/11/2013
  • 20. Application – Page Rank ? class PageRankVertex : public Vertex<double, void, double> { public: virtual void Compute(MessageIterator* msgs) { if (superstep() >= 1) { double sum = 0; for (; !msgs->Done(); msgs->Next()) sum += msgs->Value(); *MutableValue() =0.15 / NumVertices() + 0.85 * sum; } if (superstep() < 30) { const int64 n = GetOutEdgeIterator().size(); SendMessageToAllNeighbors(GetValue() / n); } else VoteToHalt(); } }; 20 4/11/2013
  • 21. Application – Shortest Path ? class ShortestPathVertex : public Vertex<int, int, int> { void Compute(MessageIterator* msgs) { int mindist = IsSource(vertex_id()) ? 0 : INF; for (; !msgs->Done(); msgs->Next()) mindist = min(mindist, msgs->Value()); if (mindist < GetValue()) { *MutableValue() = mindist; OutEdgeIterator iter = GetOutEdgeIterator(); for (; !iter.Done(); iter.Next()) SendMessageTo(iter.Target(),mindist + iter.GetValue()); } VoteToHalt(); } }; 21 4/11/2013
  • 22. Application – Bipartite matching  Problem: Find a set of edges in the bipartite graph that share no endpoint 1. each left vertex not yet matched sends a message to each of its neighbors to request a match, and then unconditionally votes to halt 2. each right vertex not yet matched randomly chooses one of the messages it receives, sends a message granting that request 3. each left vertex not yet matched chooses one of the grants it receives and sends an acceptance message 4. The right node receives the message and votes to halt 22 4/11/2013
  • 23. Experiments  300 Multicore PCs were used  They just count the running time (not check pointing)  Measure the scalability of workers  Measure the scalability over number of vertices 23 4/11/2013
  • 24. shortest paths runtimes for a binary tree with a billion vertices (and, thus, a billion minus one edges) when the number of Pregel workers varies from 50 to 800 24 4/11/2013
  • 25. shortest paths runtimes for binary trees varying in size from a billion to 50 billion vertices, now using a fixed number of 800 worker tasks scheduled on 300 multicore machines. 25 4/11/2013
  • 26. Random graphs that use a log-normal distribution of outdegrees 26 4/11/2013
  • 27. Thank you 27 4/11/2013