0db780056769f2a7.tex
1: \begin{abstract}
2: %Existing graph frameworks are designed to target a small subset of timing, communication, execution, and partitioning models. Although these design decisions are useful, they do not capture the need for a truly expressive and scalable graph framework. In this short paper we first identify essential components of graph analytics with the native-graph approach: the graph data structure, frontiers, operators, an iterative loop structure, and convergence conditions. We then propose a vision of a uniform abstraction, built on the these essential components that captures all the significant programming models within graph analytics, such as bulk-synchronous, asynchronous, shared-memory, message-passing, and push vs.\ pull traversals. Finally, we demonstrate the power of our uniform abstraction with an elegant implementation of single-source shortest-path and its required components.
3: We identify the graph data structure, frontiers, operators, an iterative loop structure, and convergence conditions as essential components of graph analytics systems based on the native-graph approach. Using these essential components, we propose an abstraction that captures all the significant programming models within graph analytics, such as bulk-synchronous, asynchronous, shared-memory, message-passing, and push vs.\ pull traversals. Finally, we demonstrate the power of our abstraction with an elegant modern C++ implementation of single-source shortest path and its required components.
4: \end{abstract}
5: