GraphIt - A High-Performance DSL for Graph Analytics

05/02/2018
by   Yunming Zhang, et al.
0

The performance bottlenecks of graph applications depend not only on the algorithm and the underlying hardware, but also on the size and structure of the input graph. Programmers must try different combinations of a large set of techniques to develop the best implementation for a specific algorithm and type of graph. Existing graph frameworks and domain specific languages (DSLs) lack flexibility, supporting only a limited set of optimizations. This paper introduces GraphIt, a new DSL for graph computations that generates fast implementations for algorithms with different performance characteristics running on graphs with different sizes and structures. GraphIt separates what is computed (algorithm) from how it is computed (schedule). Programmers specify the algorithm using an algorithm language, and performance optimizations are specified using a separate scheduling language. The algorithm language simplifies the expression of the algorithms, while exposing opportunities for optimizations. We formulate graph optimizations as tradeoffs among locality, parallelism, and work-efficiency. The scheduling language enables programmers to easily search through this complicated tradeoff space by composing together a large set of optimizations. The compiler uses a new scheduling representation, the graph iteration space, to model, compose, and ensure the validity of the optimizations. We evaluate GraphIt's performance with six algorithms on graphs with different structures and sizes. GraphIt outperforms the next fastest of six state-of-the-art shared-memory frameworks (Ligra, Green-Marl, GraphMat, Galois, Gemini, and Grazelle) on 22 out of 27 experiments by up to 4.8×, and is never more than 43 fastest framework. GraphIt also reduces the lines of code by up to an order of magnitude compared to the next fastest framework.

READ FULL TEXT
research
12/14/2020

Compilation Techniques for Graph Algorithms on GPUs

The performance of graph programs depends highly on the algorithm, the s...
research
08/26/2020

HipaccVX: Wedding of OpenVX and DSL-based Code Generation

Writing programs for heterogeneous platforms optimized for high performa...
research
11/17/2019

Optimizing Ordered Graph Algorithms with GraphIt

Many graph problems can be solved using ordered parallel graph algorithm...
research
02/16/2023

Decoupled Model Schedule for Deep Learning Training

Recent years have seen an increase in the development of large deep lear...
research
11/17/2019

PriorityGraph: A Unified Programming Model for Optimizing Ordered Graph Algorithms

Many graph problems can be solved using ordered parallel graph algorithm...
research
11/25/2021

Sketch-Guided Equality Saturation: Scaling Equality Saturation to Complex Optimizations of Functional Programs

Generating high-performance code for diverse hardware and application do...
research
04/17/2019

Terra: Scalable Cross-Layer GDA Optimizations

Geo-distributed analytics (GDA) frameworks transfer large datasets over ...

Please sign up or login with your details

Forgot password? Click here to reset