Modeling and Adaptive Scheduling Strategies for Distributed Graph Algorithms
Dindokar, Ravikant Devidas
MetadataShow full item record
Graph processing at scales of millions-billions of vertices and edges has become common to solve real-world problems in domains like social networks, smart cities and genomics. Distributed "Big Data" platforms for graph processing such as Pregel, GraphLab, and GoFFish provide a simpli ed component-centric programming model based on a Bulk Synchronous Parallel (BSP) model that iteratively executes at scale on commodity clusters and Clouds. Graph applications tend to be irregular and pose unique challenges for efficient execution on distributed resources. The topological variability of graphs and the asymmetric behavior of graph algorithms leads to an uneven distribution of load across Cloud Virtual Machines (VMs) holding the graph partitions. This results in poor VM utilization across different iterations, and increases monetary costs on pay-as-you-go public Cloud VMs that are billed for every coreminute acquired. Efforts to balance the execution load across different VMs at runtime also introduce overheads that increase the algorithms makespan. This gap offers the opportunity to dynamically control the VM's elasticity at each iteration such that only active partitions consume VM resources, thereby reducing the monetary cost of execution while minimizing the increase in runtime of the algorithm. We make two key contributions to achieve this. The rst is on a priori modeling of the characteristics of the distributed graph algorithm's execution on a given large graph to determine the active partitions in each iteration. For this, we propose a meta-graph as a coarse-grained analytical sketch of the entire graph to quickly estimate topological, complexity and execution properties of the large graph, including its partition activation schedule for non-stationary graph algorithms like Breadth First Search. The second contribution is a heuristic algorithm that uses the partition activation schedule to determine the fewest number of VMs required at each iteration, and the dynamic placement and movement of the partitions on to these VMs. Here, we scale-out and scale-in the VMs ondemand to ensure high utilization, while cognizant of the VM billing increment and partition movement costs. This decouples the costly partitioning, done once per graph, from the fast placement strategies done per algorithm run. Our results with real-world graphs show the heuristic to reduce VM costs by up to 75% while the makespan no more than doubles.