GraFS: Graph Analytics Fusion and Synthesis

05/27/2020
by   Farzin Houshmand, et al.
0

Graph analytics elicits insights from large graphs to inform critical decisions for business, safety and security. Several large-scale graph processing frameworks feature efficient runtime systems; however, they often provide programming models that are low-level and subtly different from each other. Therefore, end users can find implementation and specially optimization of graph analytics time-consuming and error-prone. This paper regards the abstract interface of the graph processing frameworks as the instruction set for graph analytics, and presents Grafs, a high-level declarative specification language for graph analytics and a synthesizer that automatically generates efficient code for five high-performance graph processing frameworks. It features novel semantics-preserving fusion transformations that optimize the specifications and reduce them to three primitives: reduction over paths, mapping over vertices and reduction over vertices. Reductions over paths are commonly calculated based on push or pull models that iteratively apply kernel functions at the vertices. This paper presents conditions, parametric in terms of the kernel functions, for the correctness and termination of the iterative models, and uses these conditions as specifications to automatically synthesize the kernel functions. Experimental results show that the generated code matches or outperforms hand-optimized code, and that fusion accelerates execution.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/05/2023

StarPlat: A Versatile DSL for Graph Analytics

Graphs model several real-world phenomena. With the growth of unstructur...
research
12/10/2018

SIMD-X: Programming and Processing of Graph Algorithms on GPUs

With high computation power and memory bandwidth, graphics processing un...
research
12/02/2022

Knowledge-Decks: Automatically Generating Presentation Slide Decks of Visual Analytics Knowledge Discovery Applications

Visual Analytics (VA) tools provide ways for users to harness insights a...
research
07/18/2020

PaSh: Light-touch Data-Parallel Shell Processing

This paper presents PaSh, a system for parallelizing POSIX shell scripts...
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
06/21/2021

Automatic Synthesis of Experiment Designs from Probabilistic Environment Specifications

This paper presents an extension to the probabilistic programming langua...
research
11/17/2019

Optimizing Ordered Graph Algorithms with GraphIt

Many graph problems can be solved using ordered parallel graph algorithm...

Please sign up or login with your details

Forgot password? Click here to reset