SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
King Abdullah University of Science and
             Technology

       CS348: Cloud Computing

    Large-Scale Graph Processing


               Zuhair Khayyat
               10/March/2013
The Importance of Graphs
     ●   A graph is a mathematical structure that represents pairwise
         relations between entities or objects. Such as:

               –   Physical communication networks

               –   Web pages links

               –   Social interaction graphs

               –   Protein-to-protein interactions

     ●   Graphs are used to abstract application-specific features into a
         generic problem, which makes Graph Algorithms applicable to
         a wide variety of applications*.
*http://11011110.livejournal.com/164613.html
Graph algorithm characteristics*
    ●   Data-Drivin Computations: Computations in graph
        algorithms depends on the structure of the graph. It is hard to
        predict the algorithm behavior

    ●   Unstructured Problems: Different graph distributions
        requires distinct load balancing techniques.

    ●   Poor Data Locality.

    ●   High Data Access to Computation Ratio: Runtime can be
        dominated by waiting memory fetches.


*Lumsdaine et. al, Challenges in Parallel Graph Processing
Challenges in Graph processing
    ●   Graphs grows fast; a single computer either cannot fit a large
        graph into memory or it fits the large graph with huge cost.

    ●   Custom implementations for a single graph algorithm requires
        time and effort and cannot be used on other algorithms

    ●   Scientific parallel applications (i.e. parallel PDE solvers)
        cannot fully adapt to the computational requirements of graph
        algorithms*.

    ●   Fault tolerance is required to support large scale processing.


*Lumsdaine et. al, Challenges in Parallel Graph Processing
Why Cloud in Graph Processing
●   Easy to scale up and down; provision machines
    depending on your graph size.
●   Cheaper than buying a physical large cluster.
●   Can be used in the cloud as “Software as a services” to
    support online social networks.
Large Scale Graph Processing
●   Systems that tries to solve the problem of processing large
    graphs in parallel:
          –   MapReduce – auto task scheduling, distributed disk
               based computations:
                   ●  Pegasus
                   ● X-Rime


          –   Pregel - Bulk Synchronous Parallel Graph Processing:
                   ● Giraph
                   ● GPS


                   ● Mizan


          –   GraphLab – Asynchronous Parallel Graph Processing.
Pregel* Graph Processing
   ●   Consists of a series of synchronized iterations
       (supersteps); based on Bulk Synchronous Parallel
       computing model. Each superstep consists of:
             –   Concurrent computations
             –   Communication
             –   Synchronization barrier
   ●   Vertex centric computation, the user's compute() function
       is applied individually on each vertex, which is able to:
             –   Send message to vertices in the next superstep
             –   Receive messages from the previous superstep

*Malewicz et. al., Pregel: A System for Large-Scale Graph Processing
Pregel messaging Example 1
Superstep 0

       A      B



       D      C
Pregel messaging Example 1
Superstep 0            Superstep 1
                                         22
       A      B               A               B

                                     9            15


       D      C               D               C
                                         47
Pregel messaging Example 1
Superstep 0                          Superstep 1
                                                       22
        A              B                    A               B

                                                   9            15


        D              C                    D               C
                                                       47
Superstep 2
                  -2       22, 9
       A               B

              7            55


 47    D               C        15
                  14
Pregel messaging Example 1
Superstep 0                          Superstep 1
                                                       22
        A              B                    A               B

                                                   9            15


        D              C                    D               C
                                                       47
Superstep 2                          Superstep 3
                  -2       22, 9                        5        -2, 7
       A               B                     A              B

              7            55                      5            98


 47    D               C        15     14    D              C        55
                  14                                    9
Vertex's State
 ●   All vertices are active at superstep 1

 ●   All active vertices runs user function compute() at any
     superstep

 ●   A vertex deactivates itself by voting to halt, but returns to
     active if it received messages.

 ●   Pregel terminates of all vertices are inactive
Pregel Example 2
    Data Distribution
(Hash-based partitioning)

                             Worker 1          Worker 2           Worker 3



 Computation



 Communication
                                        Synchronization Barrier

                                         Yes               No
                 Terminate                       Done?
Pregel Example 3 – Max
       3     6     2     1
Pregel Example 3 – Max
       3     6     2     1


       6     6     2     6
Pregel Example 3 – Max
       3     6     2     1


       6     6     2     6


       6     6     6     6
Pregel Example 3 – Max
       3     6     2     1


       6     6     2     6


       6     6     6     6

       6     6     6     6
Pregel Example 4 – Max code                                 Vertex value
                                                               class
Class MaxFindVertex:public Vertex<double, void, double> {   Edge value class
  public:
                                                            Message class
  virtual void Compute(MessageIterator* msgs) {

      int currMax = GetValue();                             Send current Max
      SendMessageToAllNeighbors(currMax);
                                                            Check messages
      for ( ; !msgs­>Done(); msgs­>Next()) {                and store max
          if (msgs­>Value() > currMax)

               currMax = msgs­>Value();
                                                            Store new max
      }

      if (currMax > GetValue())

         *MutableValue() = currMax;

      else VoteToHalt();

  }

};
Pregel Message Optimizations
●   Message Combiners:

         –   A special function that combines the incoming
               messages for a vertex before running compute()

         –   Can run on the message sending or receiving worker
●   Global Aggregators :

         –   A shared object accessible to all vertices. that is
               synchronized at the end of each superstep, i.e., max
               and min aggregators.
Pregel Guarantees
 ●   Scalability: process vertices in parallel, overlap
     computation and communication.
 ●   Messages will be received without duplication in any
     order.
 ●   Fault tolerance through check points
Pregel's Limitations
 ●   Pregel's superstep waits for all workers to finish at the
     synchronization barrier. That is, it waits for the slowest
     worker to finish.
 ●   Smart partitioning can solve the load balancing problem
     for static algorithms. However not all algorithms are
     static, algorithms can have a variable execution behaviors
     which leads to an unbalanced supersteps.
Mizan* Graph Processing
      ●   Mizan is an open source graph processing system, similar
          to Pregel, developed locally at KAUST.
      ●   Mizan employs dynamic graph repartitioning without
          affecting the correctness of graph processing to
          rebalanced the execution of the supersteps for all types of
          workloads.




*Khayyat et. al., Mizan: A System for Dynamic Load Balancing in Large-scale
Graph Processing
Source of Imbalance in BSP
Source of Imbalance in BSP
Types of Graph Algorithms
 ●   Stationary Graph Algorithms:

           –   Algorithms with fixed message distribution across superstep

           –   All vertices are either active or inactive at same time

           –   i.e. PageRank, Diameter Estimation and weakly connected
                 components.

 ●   Non-stationary Graph Algorithms

           –   Algorithms with variable message distribution across supersteps

           –   Vertices can be active and inactive independent to others

           –   i.e. Distributed Minimal spanning tree
Mizan architecture
 ●   Each Mizan worker contains three distinct main
     components: BSP Processor, communicator and storage
     manager.
 ●   The distributed hash table (DHT) is used to maintain the
     location of each vertex
 ●   The migration planner interacts

     with other components during

     the BSP barrier
Mizan's Barriers
Dynamic migration: Statistics
 ●   Mizan monitors the following for every vertex:
          –   Response time
          –   Remote outgoing messages
          –   Incoming messages
Dynamic migration: planning
 ●   Mizan's migration planner runs after the BSP barrier and creates a
     new barrier. The planning includes the following steps:

      –   Identifying unbalanced workers.

      –   Identifying migration objective:
            ●   Response time
            ●   Incoming messages
            ●   Outgoing messages
      –   Pair over-utilized workers with underutilized

      –   Select vertices to migrate
Mizan's Migration Work-flow
Mizan PageRank Compute() Example
void compute(messageIterator<mDouble> * messages, userVertexObject<mLong, mDouble, 
mDouble, mLong> * data,messageManager<mLong, mDouble, mDouble, mLong> * comm) {

       double currVal = data­>getVertexValue().getValue();
       double newVal = 0;  double c = 0.85;

       while (messages­>hasNext()) {
            double tmp = messages­>getNext().getValue();              Processing
            newVal = newVal + tmp;                                    Messages
       }

       newVal = newVal * c + (1.0 ­ c) / ((double) vertexTotal);
       mDouble outVal(newVal / ((double) data­>getOutEdgeCount()));

       if (data­>getCurrentSS() <= maxSuperStep) {
          for (int i = 0; i < data­>getOutEdgeCount(); i++) {         Termination
               comm­>sendMessage(data­>getOutEdgeID(i), outVal);
               data­>getOutEdgeID(i);                                  Condition
          }
        } else {
           data­>voteToHalt();
        }                                                             Sending to
                                                                      Neighbors
      data­>setVertexValue(mDouble(newVal));
}
Mizan PageRank Combiner Example
void combineMessages(mLong dst, messageIterator<mDouble> * 
messages,messageManager<mLong, mDouble, mDouble, mLong> * mManager) {

       double newVal = 0;

       while (messages­>hasNext()) {
              double tmp = messages­>getNext().getValue();
              newVal = newVal + tmp;
       }

       mDouble messageOut(newVal);
       mManager­>sendMessage(dst,messageOut);
}
Mizan Max Aggregator Example
class maxAggregator: public IAggregator<mLong> {
Public:
       mlong aggValue;

       maxAggregator() {
          aggValue.setValue(0);
       }

       void aggregate(mLong value) {
           if (value > aggValue) {
               aggValue = value;
           }
       }

       mLong getValue() {
            return aggValue;
       }

       void setValue(mLong value) {
            this­>aggValue = value;
       }
       
       virtual ~maxAggregator() {}
};
Class Assignment
 ●   Your assignment is to configure, install and run Mizan on
     a single Linux machine throw following this tutorial:
     https://thegraphsblog.wordpress.com/mizan-on-ubuntu/
 ●   By the end of the tutorial, you should be able to execute
     the command on your machine:
     mpirun ­np 2 ./Mizan­0.1b ­u ubuntu ­g web­Google.txt ­w 2

 ●   Deliverables: you store the output of of the above
     command and submit it by Wednesday's class.
 ●   Any questions regarding the tutorial or to get an account
     for a Ubuntu machine, contact me on:
     zuhair.khayyat@kaust.edu.sa

Contenu connexe

Tendances

SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...
SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...
SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...Mohamed Elhariry
 
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...Dave Callen
 
Graph processing
Graph processingGraph processing
Graph processingyeahjs
 
Introduction to map reduce
Introduction to map reduceIntroduction to map reduce
Introduction to map reducePranshu Pathak
 
[Capella Day 2019] Model execution and system simulation in Capella
[Capella Day 2019] Model execution and system simulation in Capella[Capella Day 2019] Model execution and system simulation in Capella
[Capella Day 2019] Model execution and system simulation in CapellaObeo
 
Innovative Solar Array Drive Assembly for CubeSat Satellite
Innovative Solar Array Drive Assembly for CubeSat SatelliteInnovative Solar Array Drive Assembly for CubeSat Satellite
Innovative Solar Array Drive Assembly for CubeSat SatelliteMichele Marino
 
Mapreduce advanced
Mapreduce advancedMapreduce advanced
Mapreduce advancedChirag Ahuja
 
Modeling & Simulation of CubeSat-based Missions'Concept of Operations
Modeling & Simulation of CubeSat-based Missions'Concept of OperationsModeling & Simulation of CubeSat-based Missions'Concept of Operations
Modeling & Simulation of CubeSat-based Missions'Concept of OperationsObeo
 
Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...
Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...
Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...Flink Forward
 
Apache YARN Federation and Tez at Microsoft, Anupam Upadhyay, Adrian Nicoara,...
Apache YARN Federation and Tez at Microsoft, Anupam Upadhyay, Adrian Nicoara,...Apache YARN Federation and Tez at Microsoft, Anupam Upadhyay, Adrian Nicoara,...
Apache YARN Federation and Tez at Microsoft, Anupam Upadhyay, Adrian Nicoara,...Yahoo Developer Network
 
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasVirtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasFlink Forward
 
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
 
Distributed Convex Optimization Thesis - Behroz Sikander
Distributed Convex Optimization Thesis - Behroz SikanderDistributed Convex Optimization Thesis - Behroz Sikander
Distributed Convex Optimization Thesis - Behroz Sikanderrogerz1234567
 
Insight Demo
Insight DemoInsight Demo
Insight Demoreza-asad
 
Insight Recent Demo
Insight Recent DemoInsight Recent Demo
Insight Recent Demoreza-asad
 
Braxton McKee, Founder & CEO, Ufora at MLconf SF - 11/13/15
Braxton McKee, Founder & CEO, Ufora at MLconf SF - 11/13/15Braxton McKee, Founder & CEO, Ufora at MLconf SF - 11/13/15
Braxton McKee, Founder & CEO, Ufora at MLconf SF - 11/13/15MLconf
 
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScyllaDB
 

Tendances (20)

SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...
SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...
SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...
 
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
 
Graph processing
Graph processingGraph processing
Graph processing
 
Introduction to map reduce
Introduction to map reduceIntroduction to map reduce
Introduction to map reduce
 
[Capella Day 2019] Model execution and system simulation in Capella
[Capella Day 2019] Model execution and system simulation in Capella[Capella Day 2019] Model execution and system simulation in Capella
[Capella Day 2019] Model execution and system simulation in Capella
 
Innovative Solar Array Drive Assembly for CubeSat Satellite
Innovative Solar Array Drive Assembly for CubeSat SatelliteInnovative Solar Array Drive Assembly for CubeSat Satellite
Innovative Solar Array Drive Assembly for CubeSat Satellite
 
Mapreduce advanced
Mapreduce advancedMapreduce advanced
Mapreduce advanced
 
Modeling & Simulation of CubeSat-based Missions'Concept of Operations
Modeling & Simulation of CubeSat-based Missions'Concept of OperationsModeling & Simulation of CubeSat-based Missions'Concept of Operations
Modeling & Simulation of CubeSat-based Missions'Concept of Operations
 
Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...
Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...
Flink Forward Berlin 2017: Matt Zimmer - Custom, Complex Windows at Scale Usi...
 
Progress_190118
Progress_190118Progress_190118
Progress_190118
 
Apache YARN Federation and Tez at Microsoft, Anupam Upadhyay, Adrian Nicoara,...
Apache YARN Federation and Tez at Microsoft, Anupam Upadhyay, Adrian Nicoara,...Apache YARN Federation and Tez at Microsoft, Anupam Upadhyay, Adrian Nicoara,...
Apache YARN Federation and Tez at Microsoft, Anupam Upadhyay, Adrian Nicoara,...
 
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasVirtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
 
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
 
Distributed Convex Optimization Thesis - Behroz Sikander
Distributed Convex Optimization Thesis - Behroz SikanderDistributed Convex Optimization Thesis - Behroz Sikander
Distributed Convex Optimization Thesis - Behroz Sikander
 
Insight Demo
Insight DemoInsight Demo
Insight Demo
 
Insight Recent Demo
Insight Recent DemoInsight Recent Demo
Insight Recent Demo
 
Braxton McKee, Founder & CEO, Ufora at MLconf SF - 11/13/15
Braxton McKee, Founder & CEO, Ufora at MLconf SF - 11/13/15Braxton McKee, Founder & CEO, Ufora at MLconf SF - 11/13/15
Braxton McKee, Founder & CEO, Ufora at MLconf SF - 11/13/15
 
RTX Kernal
RTX KernalRTX Kernal
RTX Kernal
 
MapReduce
MapReduceMapReduce
MapReduce
 
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
 

Similaire à Large Graph Processing

Pregel: A System For Large Scale Graph Processing
Pregel: A System For Large Scale Graph ProcessingPregel: A System For Large Scale Graph Processing
Pregel: A System For Large Scale Graph ProcessingRiyad Parvez
 
Pregel reading circle
Pregel reading circlePregel reading circle
Pregel reading circlecharlingual
 
MHH_20Feb_2012111111111111111111111111111.ppt
MHH_20Feb_2012111111111111111111111111111.pptMHH_20Feb_2012111111111111111111111111111.ppt
MHH_20Feb_2012111111111111111111111111111.pptBiHongPhc
 
Optimization for Deep Networks (D2L1 2017 UPC Deep Learning for Computer Vision)
Optimization for Deep Networks (D2L1 2017 UPC Deep Learning for Computer Vision)Optimization for Deep Networks (D2L1 2017 UPC Deep Learning for Computer Vision)
Optimization for Deep Networks (D2L1 2017 UPC Deep Learning for Computer Vision)Universitat Politècnica de Catalunya
 
Optimizing Deep Networks (D1L6 Insight@DCU Machine Learning Workshop 2017)
Optimizing Deep Networks (D1L6 Insight@DCU Machine Learning Workshop 2017)Optimizing Deep Networks (D1L6 Insight@DCU Machine Learning Workshop 2017)
Optimizing Deep Networks (D1L6 Insight@DCU Machine Learning Workshop 2017)Universitat Politècnica de Catalunya
 
Computer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I💻 Anton Gerdelan
 
Mining quasi bicliques using giraph
Mining quasi bicliques using giraphMining quasi bicliques using giraph
Mining quasi bicliques using giraphHsiao-Fei Liu
 
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
 
Time-Evolving Graph Processing On Commodity Clusters
Time-Evolving Graph Processing On Commodity ClustersTime-Evolving Graph Processing On Commodity Clusters
Time-Evolving Graph Processing On Commodity ClustersJen Aman
 
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018Greenplum Overview for Postgres Hackers - Greenplum Summit 2018
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018VMware Tanzu
 
Narayanan Sundaram, Research Scientist, Intel Labs at MLconf SF - 11/13/15
Narayanan Sundaram, Research Scientist, Intel Labs at MLconf SF - 11/13/15Narayanan Sundaram, Research Scientist, Intel Labs at MLconf SF - 11/13/15
Narayanan Sundaram, Research Scientist, Intel Labs at MLconf SF - 11/13/15MLconf
 
Advanced Spark Programming - Part 2 | Big Data Hadoop Spark Tutorial | CloudxLab
Advanced Spark Programming - Part 2 | Big Data Hadoop Spark Tutorial | CloudxLabAdvanced Spark Programming - Part 2 | Big Data Hadoop Spark Tutorial | CloudxLab
Advanced Spark Programming - Part 2 | Big Data Hadoop Spark Tutorial | CloudxLabCloudxLab
 
Graph Neural Network #2-1 (PinSage)
Graph Neural Network #2-1 (PinSage)Graph Neural Network #2-1 (PinSage)
Graph Neural Network #2-1 (PinSage)seungwoo kim
 
Hpg2011 papers kazakov
Hpg2011 papers kazakovHpg2011 papers kazakov
Hpg2011 papers kazakovmistercteam
 
New Directions for Mahout
New Directions for MahoutNew Directions for Mahout
New Directions for MahoutTed Dunning
 
Introduction to Machine Learning with Spark
Introduction to Machine Learning with SparkIntroduction to Machine Learning with Spark
Introduction to Machine Learning with Sparkdatamantra
 
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)Universitat Politècnica de Catalunya
 

Similaire à Large Graph Processing (20)

Pregel: A System For Large Scale Graph Processing
Pregel: A System For Large Scale Graph ProcessingPregel: A System For Large Scale Graph Processing
Pregel: A System For Large Scale Graph Processing
 
Pregel reading circle
Pregel reading circlePregel reading circle
Pregel reading circle
 
MHH_20Feb_2012111111111111111111111111111.ppt
MHH_20Feb_2012111111111111111111111111111.pptMHH_20Feb_2012111111111111111111111111111.ppt
MHH_20Feb_2012111111111111111111111111111.ppt
 
Optimization for Deep Networks (D2L1 2017 UPC Deep Learning for Computer Vision)
Optimization for Deep Networks (D2L1 2017 UPC Deep Learning for Computer Vision)Optimization for Deep Networks (D2L1 2017 UPC Deep Learning for Computer Vision)
Optimization for Deep Networks (D2L1 2017 UPC Deep Learning for Computer Vision)
 
Optimizing Deep Networks (D1L6 Insight@DCU Machine Learning Workshop 2017)
Optimizing Deep Networks (D1L6 Insight@DCU Machine Learning Workshop 2017)Optimizing Deep Networks (D1L6 Insight@DCU Machine Learning Workshop 2017)
Optimizing Deep Networks (D1L6 Insight@DCU Machine Learning Workshop 2017)
 
Computer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I
 
Mining quasi bicliques using giraph
Mining quasi bicliques using giraphMining quasi bicliques using giraph
Mining quasi bicliques using giraph
 
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...
 
Time-Evolving Graph Processing On Commodity Clusters
Time-Evolving Graph Processing On Commodity ClustersTime-Evolving Graph Processing On Commodity Clusters
Time-Evolving Graph Processing On Commodity Clusters
 
Pregel
PregelPregel
Pregel
 
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018Greenplum Overview for Postgres Hackers - Greenplum Summit 2018
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018
 
Narayanan Sundaram, Research Scientist, Intel Labs at MLconf SF - 11/13/15
Narayanan Sundaram, Research Scientist, Intel Labs at MLconf SF - 11/13/15Narayanan Sundaram, Research Scientist, Intel Labs at MLconf SF - 11/13/15
Narayanan Sundaram, Research Scientist, Intel Labs at MLconf SF - 11/13/15
 
Advanced Spark Programming - Part 2 | Big Data Hadoop Spark Tutorial | CloudxLab
Advanced Spark Programming - Part 2 | Big Data Hadoop Spark Tutorial | CloudxLabAdvanced Spark Programming - Part 2 | Big Data Hadoop Spark Tutorial | CloudxLab
Advanced Spark Programming - Part 2 | Big Data Hadoop Spark Tutorial | CloudxLab
 
Graph Neural Network #2-1 (PinSage)
Graph Neural Network #2-1 (PinSage)Graph Neural Network #2-1 (PinSage)
Graph Neural Network #2-1 (PinSage)
 
Hpg2011 papers kazakov
Hpg2011 papers kazakovHpg2011 papers kazakov
Hpg2011 papers kazakov
 
New Directions for Mahout
New Directions for MahoutNew Directions for Mahout
New Directions for Mahout
 
Introduction to Machine Learning with Spark
Introduction to Machine Learning with SparkIntroduction to Machine Learning with Spark
Introduction to Machine Learning with Spark
 
PREDIcT
PREDIcTPREDIcT
PREDIcT
 
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
 
RCIM 2008 - Modello Generale
RCIM 2008 - Modello GeneraleRCIM 2008 - Modello Generale
RCIM 2008 - Modello Generale
 

Plus de Zuhair khayyat

Scaling Big Data Cleansing
Scaling Big Data CleansingScaling Big Data Cleansing
Scaling Big Data CleansingZuhair khayyat
 
BigDansing presentation slides for KAUST
BigDansing presentation slides for KAUSTBigDansing presentation slides for KAUST
BigDansing presentation slides for KAUSTZuhair khayyat
 
IEJoin and Big Data Cleansing
IEJoin and Big Data CleansingIEJoin and Big Data Cleansing
IEJoin and Big Data CleansingZuhair khayyat
 
BigDansing presentation slides for SIGMOD 2015
BigDansing presentation slides for SIGMOD 2015BigDansing presentation slides for SIGMOD 2015
BigDansing presentation slides for SIGMOD 2015Zuhair khayyat
 
Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing
Mizan: A System for Dynamic Load Balancing in Large-scale Graph ProcessingMizan: A System for Dynamic Load Balancing in Large-scale Graph Processing
Mizan: A System for Dynamic Load Balancing in Large-scale Graph ProcessingZuhair khayyat
 
Graphlab under the hood
Graphlab under the hoodGraphlab under the hood
Graphlab under the hoodZuhair khayyat
 

Plus de Zuhair khayyat (10)

Scaling Big Data Cleansing
Scaling Big Data CleansingScaling Big Data Cleansing
Scaling Big Data Cleansing
 
BigDansing presentation slides for KAUST
BigDansing presentation slides for KAUSTBigDansing presentation slides for KAUST
BigDansing presentation slides for KAUST
 
IEJoin and Big Data Cleansing
IEJoin and Big Data CleansingIEJoin and Big Data Cleansing
IEJoin and Big Data Cleansing
 
BigDansing presentation slides for SIGMOD 2015
BigDansing presentation slides for SIGMOD 2015BigDansing presentation slides for SIGMOD 2015
BigDansing presentation slides for SIGMOD 2015
 
Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing
Mizan: A System for Dynamic Load Balancing in Large-scale Graph ProcessingMizan: A System for Dynamic Load Balancing in Large-scale Graph Processing
Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing
 
Google appengine
Google appengineGoogle appengine
Google appengine
 
MapReduce
MapReduceMapReduce
MapReduce
 
Kineograph
KineographKineograph
Kineograph
 
Graphlab under the hood
Graphlab under the hoodGraphlab under the hood
Graphlab under the hood
 
Dynamo db
Dynamo dbDynamo db
Dynamo db
 

Dernier

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
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
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
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
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
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinojohnmickonozaleda
 
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
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
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
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 

Dernier (20)

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
 
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
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
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
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
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)
 
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
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
FILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipinoFILIPINO PSYCHology sikolohiyang pilipino
FILIPINO PSYCHology sikolohiyang pilipino
 
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
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
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
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 

Large Graph Processing

  • 1. King Abdullah University of Science and Technology CS348: Cloud Computing Large-Scale Graph Processing Zuhair Khayyat 10/March/2013
  • 2. The Importance of Graphs ● A graph is a mathematical structure that represents pairwise relations between entities or objects. Such as: – Physical communication networks – Web pages links – Social interaction graphs – Protein-to-protein interactions ● Graphs are used to abstract application-specific features into a generic problem, which makes Graph Algorithms applicable to a wide variety of applications*. *http://11011110.livejournal.com/164613.html
  • 3. Graph algorithm characteristics* ● Data-Drivin Computations: Computations in graph algorithms depends on the structure of the graph. It is hard to predict the algorithm behavior ● Unstructured Problems: Different graph distributions requires distinct load balancing techniques. ● Poor Data Locality. ● High Data Access to Computation Ratio: Runtime can be dominated by waiting memory fetches. *Lumsdaine et. al, Challenges in Parallel Graph Processing
  • 4. Challenges in Graph processing ● Graphs grows fast; a single computer either cannot fit a large graph into memory or it fits the large graph with huge cost. ● Custom implementations for a single graph algorithm requires time and effort and cannot be used on other algorithms ● Scientific parallel applications (i.e. parallel PDE solvers) cannot fully adapt to the computational requirements of graph algorithms*. ● Fault tolerance is required to support large scale processing. *Lumsdaine et. al, Challenges in Parallel Graph Processing
  • 5. Why Cloud in Graph Processing ● Easy to scale up and down; provision machines depending on your graph size. ● Cheaper than buying a physical large cluster. ● Can be used in the cloud as “Software as a services” to support online social networks.
  • 6. Large Scale Graph Processing ● Systems that tries to solve the problem of processing large graphs in parallel: – MapReduce – auto task scheduling, distributed disk based computations: ● Pegasus ● X-Rime – Pregel - Bulk Synchronous Parallel Graph Processing: ● Giraph ● GPS ● Mizan – GraphLab – Asynchronous Parallel Graph Processing.
  • 7. Pregel* Graph Processing ● Consists of a series of synchronized iterations (supersteps); based on Bulk Synchronous Parallel computing model. Each superstep consists of: – Concurrent computations – Communication – Synchronization barrier ● Vertex centric computation, the user's compute() function is applied individually on each vertex, which is able to: – Send message to vertices in the next superstep – Receive messages from the previous superstep *Malewicz et. al., Pregel: A System for Large-Scale Graph Processing
  • 8. Pregel messaging Example 1 Superstep 0 A B D C
  • 9. Pregel messaging Example 1 Superstep 0 Superstep 1 22 A B A B 9 15 D C D C 47
  • 10. Pregel messaging Example 1 Superstep 0 Superstep 1 22 A B A B 9 15 D C D C 47 Superstep 2 -2 22, 9 A B 7 55 47 D C 15 14
  • 11. Pregel messaging Example 1 Superstep 0 Superstep 1 22 A B A B 9 15 D C D C 47 Superstep 2 Superstep 3 -2 22, 9 5 -2, 7 A B A B 7 55 5 98 47 D C 15 14 D C 55 14 9
  • 12. Vertex's State ● All vertices are active at superstep 1 ● All active vertices runs user function compute() at any superstep ● A vertex deactivates itself by voting to halt, but returns to active if it received messages. ● Pregel terminates of all vertices are inactive
  • 13. Pregel Example 2 Data Distribution (Hash-based partitioning) Worker 1 Worker 2 Worker 3 Computation Communication Synchronization Barrier Yes No Terminate Done?
  • 14. Pregel Example 3 – Max 3 6 2 1
  • 15. Pregel Example 3 – Max 3 6 2 1 6 6 2 6
  • 16. Pregel Example 3 – Max 3 6 2 1 6 6 2 6 6 6 6 6
  • 17. Pregel Example 3 – Max 3 6 2 1 6 6 2 6 6 6 6 6 6 6 6 6
  • 18. Pregel Example 4 – Max code Vertex value class Class MaxFindVertex:public Vertex<double, void, double> { Edge value class   public: Message class   virtual void Compute(MessageIterator* msgs) {       int currMax = GetValue(); Send current Max       SendMessageToAllNeighbors(currMax); Check messages       for ( ; !msgs­>Done(); msgs­>Next()) { and store max           if (msgs­>Value() > currMax)                currMax = msgs­>Value(); Store new max       }       if (currMax > GetValue())          *MutableValue() = currMax;       else VoteToHalt();   } };
  • 19. Pregel Message Optimizations ● Message Combiners: – A special function that combines the incoming messages for a vertex before running compute() – Can run on the message sending or receiving worker ● Global Aggregators : – A shared object accessible to all vertices. that is synchronized at the end of each superstep, i.e., max and min aggregators.
  • 20. Pregel Guarantees ● Scalability: process vertices in parallel, overlap computation and communication. ● Messages will be received without duplication in any order. ● Fault tolerance through check points
  • 21. Pregel's Limitations ● Pregel's superstep waits for all workers to finish at the synchronization barrier. That is, it waits for the slowest worker to finish. ● Smart partitioning can solve the load balancing problem for static algorithms. However not all algorithms are static, algorithms can have a variable execution behaviors which leads to an unbalanced supersteps.
  • 22. Mizan* Graph Processing ● Mizan is an open source graph processing system, similar to Pregel, developed locally at KAUST. ● Mizan employs dynamic graph repartitioning without affecting the correctness of graph processing to rebalanced the execution of the supersteps for all types of workloads. *Khayyat et. al., Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing
  • 25. Types of Graph Algorithms ● Stationary Graph Algorithms: – Algorithms with fixed message distribution across superstep – All vertices are either active or inactive at same time – i.e. PageRank, Diameter Estimation and weakly connected components. ● Non-stationary Graph Algorithms – Algorithms with variable message distribution across supersteps – Vertices can be active and inactive independent to others – i.e. Distributed Minimal spanning tree
  • 26. Mizan architecture ● Each Mizan worker contains three distinct main components: BSP Processor, communicator and storage manager. ● The distributed hash table (DHT) is used to maintain the location of each vertex ● The migration planner interacts with other components during the BSP barrier
  • 28. Dynamic migration: Statistics ● Mizan monitors the following for every vertex: – Response time – Remote outgoing messages – Incoming messages
  • 29. Dynamic migration: planning ● Mizan's migration planner runs after the BSP barrier and creates a new barrier. The planning includes the following steps: – Identifying unbalanced workers. – Identifying migration objective: ● Response time ● Incoming messages ● Outgoing messages – Pair over-utilized workers with underutilized – Select vertices to migrate
  • 31. Mizan PageRank Compute() Example void compute(messageIterator<mDouble> * messages, userVertexObject<mLong, mDouble,  mDouble, mLong> * data,messageManager<mLong, mDouble, mDouble, mLong> * comm) {        double currVal = data­>getVertexValue().getValue();        double newVal = 0;  double c = 0.85;        while (messages­>hasNext()) {             double tmp = messages­>getNext().getValue(); Processing             newVal = newVal + tmp; Messages        }        newVal = newVal * c + (1.0 ­ c) / ((double) vertexTotal);        mDouble outVal(newVal / ((double) data­>getOutEdgeCount()));        if (data­>getCurrentSS() <= maxSuperStep) {           for (int i = 0; i < data­>getOutEdgeCount(); i++) { Termination                comm­>sendMessage(data­>getOutEdgeID(i), outVal);                data­>getOutEdgeID(i); Condition           }         } else {            data­>voteToHalt();         } Sending to         Neighbors       data­>setVertexValue(mDouble(newVal)); }
  • 32. Mizan PageRank Combiner Example void combineMessages(mLong dst, messageIterator<mDouble> *  messages,messageManager<mLong, mDouble, mDouble, mLong> * mManager) {        double newVal = 0;        while (messages­>hasNext()) {               double tmp = messages­>getNext().getValue();               newVal = newVal + tmp;        }        mDouble messageOut(newVal);        mManager­>sendMessage(dst,messageOut); }
  • 33. Mizan Max Aggregator Example class maxAggregator: public IAggregator<mLong> { Public:        mlong aggValue;        maxAggregator() {           aggValue.setValue(0);        }        void aggregate(mLong value) {            if (value > aggValue) {                aggValue = value;            }        }        mLong getValue() {             return aggValue;        }        void setValue(mLong value) {             this­>aggValue = value;        }                virtual ~maxAggregator() {} };
  • 34. Class Assignment ● Your assignment is to configure, install and run Mizan on a single Linux machine throw following this tutorial: https://thegraphsblog.wordpress.com/mizan-on-ubuntu/ ● By the end of the tutorial, you should be able to execute the command on your machine: mpirun ­np 2 ./Mizan­0.1b ­u ubuntu ­g web­Google.txt ­w 2 ● Deliverables: you store the output of of the above command and submit it by Wednesday's class. ● Any questions regarding the tutorial or to get an account for a Ubuntu machine, contact me on: zuhair.khayyat@kaust.edu.sa