Results

**1 - 4**of**4**### GridGraph: Large-scale graph processing on a single machine using 2-level hierarchical partitioning

- In Proceedings of the Usenix Annual Technical Conference (2015), USENIX Association

"... (USENIX ATC ’15) is sponsored by USENIX. ..."

(Show Context)
### Fast Iterative Graph Computation with Resource Aware Graph Parallel Abstractions

"... Iterative computation on large graphs has challenged system research from two aspects: (1) how to conduct high per-formance parallel processing for both in-memory and out-of-core graphs; and (2) how to handle large graphs that exceed the resource boundary of traditional systems by re-source aware gr ..."

Abstract
- Add to MetaCart

(Show Context)
Iterative computation on large graphs has challenged system research from two aspects: (1) how to conduct high per-formance parallel processing for both in-memory and out-of-core graphs; and (2) how to handle large graphs that exceed the resource boundary of traditional systems by re-source aware graph partitioning such that it is feasible to run large-scale graph analysis on a single PC. This paper presents GraphLego, a resource adaptive graph processing system with multi-level programmable graph parallel ab-stractions. GraphLego is novel in three aspects: (1) we argue that vertex-centric or edge-centric graph partitioning are ineffective for parallel processing of large graphs and we introduce three alternative graph parallel abstractions to enable a large graph to be partitioned at the granularity of subgraphs by slice, strip and dice based partitioning; (2) we use dice-based data placement algorithm to store a large graph on disk by minimizing non-sequential disk access and enabling more structured in-memory access; and (3) we dy-namically determine the right level of graph parallel abstrac-tion to maximize sequential access and minimize random access. GraphLego can run efficiently on different computers with diverse resource capacities and respond to different memory requirements by real-world graphs of different com-plexity. Extensive experiments show the competitiveness of GraphLego against existing representative graph processing systems, such as GraphChi, GraphLab and X-Stream.

### Scaling Iterative Graph Computations with GraphMap

"... In recent years, systems researchers have devoted consider-able effort to the study of large-scale graph processing. Ex-isting distributed graph processing systems such as Pregel, based solely on distributed memory for their computations, fail to provide seamless scalability when the graph data and ..."

Abstract
- Add to MetaCart

(Show Context)
In recent years, systems researchers have devoted consider-able effort to the study of large-scale graph processing. Ex-isting distributed graph processing systems such as Pregel, based solely on distributed memory for their computations, fail to provide seamless scalability when the graph data and their intermediate computational results no longer fit into the memory; and most distributed approaches for itera-tive graph computations do not consider utilizing secondary storage a viable solution. This paper presents GraphMap, a distributed iterative graph computation framework that maximizes access locality and speeds up distributed itera-tive graph computations by effectively utilizing secondary storage. GraphMap has three salient features: (1) It distin-guishes data states that are mutable during iterative compu-tations from those that are read-only in all iterations to max-imize sequential access and minimize random access. (2) It entails a two-level graph partitioning algorithm that enables balanced workloads and locality-optimized data placement. (3) It contains a proposed suite of locality-based optimiza-tions that improve computational efficiency. Extensive ex-periments on several real-world graphs show that GraphMap outperforms existing distributed memory-based systems for various iterative graph algorithms.

### Shared-memory parallelism can be simple, . . .

, 2015

"... Parallelism is the key to achieving high performance in computing. How-ever, writing efficient and scalable parallel programs is notoriously difficult, and often requires significant expertise. To address this challenge, it is crucial to provide programmers with high-level tools to enable them to de ..."

Abstract
- Add to MetaCart

Parallelism is the key to achieving high performance in computing. How-ever, writing efficient and scalable parallel programs is notoriously difficult, and often requires significant expertise. To address this challenge, it is crucial to provide programmers with high-level tools to enable them to develop solutions efficiently, and at the same time emphasize the theoretical and practical aspects of algorithm design to allow the solutions developed to run efficiently under all possible settings. This thesis addresses this challenge using a three-pronged approach consisting of the design of shared-memory programming techniques, frameworks, and algorithms for important problems in computing. The thesis provides evidence that with appropriate programming techniques, frameworks, and algorithms, shared-memory programs can be simple, fast, and scalable, both in theory and in practice. The results developed in this thesis serve to ease the transition into the multicore era. The first part of this thesis introduces tools and techniques for deterministic