Falcon: A Graph Manipulation Language for Heterogeneous Systems
Reads0
Chats0
TLDR
A domain-specific language (DSL) is proposed, Falcon, for implementing graph algorithms that abstracts the hardware, provides constructs to write explicitly parallel programs at a higher level, and can work with general algorithms that may change the graph structure.Abstract:
Graph algorithms have been shown to possess enough parallelism to keep several computing resources busy—even hundreds of cores on a GPU. Unfortunately, tuning their implementation for efficient execution on a particular hardware configuration of heterogeneous systems consisting of multicore CPUs and GPUs is challenging, time consuming, and error prone. To address these issues, we propose a domain-specific language (DSL), Falcon, for implementing graph algorithms that (i) abstracts the hardware, (ii) provides constructs to write explicitly parallel programs at a higher level, and (iii) can work with general algorithms that may change the graph structure (morph algorithms). We illustrate the usage of our DSL to implement local computation algorithms (that do not change the graph structure) and morph algorithms such as Delaunay mesh refinement, survey propagation, and dynamic SSSP on GPU and multicore CPUs. Using a set of benchmark graphs, we illustrate that the generated code performs close to the state-of-the-art hand-tuned implementations.read more
Citations
More filters
Proceedings ArticleDOI
Gluon: a communication-optimizing substrate for distributed heterogeneous graph analytics
Roshan Dathathri,Gurbinder Gill,Loc Hoang,Hoang-Vu Dang,Alex Brooks,Nikoli Dryden,Marc Snir,Keshav Pingali +7 more
TL;DR: This paper introduces a new approach to building distributed-memory graph analytics systems that exploits heterogeneity in processor types (CPU and GPU), partitioning policies, and programming models, and Gluon, a communication-optimizing substrate that enables these programs to run on heterogeneous clusters and optimizes communication in a novel way.
Proceedings ArticleDOI
A compiler for throughput optimization of graph algorithms on GPUs
Sreepathi Pai,Keshav Pingali +1 more
TL;DR: This paper argues that three optimizations called throughput optimizations are key to high-performance for this application class and has implemented these optimizations in a compiler that produces CUDA code from an intermediate-level program representation called IrGL.
Journal ArticleDOI
Pangolin: an efficient and flexible graph mining system on CPU and GPU
TL;DR: Pangolin this paper is an efficient and flexible in-memory graph pattern mining (GPM) framework targeting shared-memory CPUs and GPUs that provides high-level abstractions for GPU processing.
Proceedings ArticleDOI
MultiGraph: Efficient Graph Processing on GPUs
TL;DR: This paper develops an approach to graph processing on GPUs that seeks to overcome some of the performance limitations of existing frameworks, and uses multiple data representation and execution strategies for dense versus sparse vertex frontiers, dependent on the fraction of active graph vertices.
Journal ArticleDOI
An Efficient and Generic Construction for Signal’s Handshake (X3DH): Post-quantum, State Leakage Secure, and Deniable
TL;DR: This work cast the X3DH protocol as a specific type of authenticated key exchange (AKE) protocol, which it is called a Signal-conforming AKE protocol, and formally defines its security model based on the vast prior works on AKE protocols, which results in the first post-quantum secure replacement of the X 3DH protocol on well-established assumptions.
References
More filters
$\Delta$-Stepping: A Parallel Single Source Shortest Path Algorithm
Ulrich Meyer,Peter Sanders +1 more
TL;DR: In this article, the Δ-stepping algorithm, a generalization of Dial's algorithm and the Bellman-Ford algorithm, was proposed for the single source shortest path problem.
Proceedings ArticleDOI
Elixir: a system for synthesizing concurrent graph programs
TL;DR: Elixir is used to automatically generate many parallel implementations for three irregular problems: breadth-first search, single source shortest path, and betweenness-centrality computation, and experiments show that the best generated variants can be competitive with handwritten code for these problems from other research groups; for some inputs, they even outperform the handwritten versions.
Proceedings ArticleDOI
The energy case for graph processing on hybrid CPU and GPU systems
TL;DR: This paper investigates the power, energy, and performance characteristics of large-scale graph processing on hybrid (i.e., CPU and GPU) single-node systems and shows that a hybrid system is efficient in terms of both time-to-solution and energy.
Proceedings ArticleDOI
Paragon: collaborative speculative loop execution on GPU and CPU
TL;DR: Paragon is a collaborative static/dynamic compiler platform to speculatively run possibly-data-parallel pieces of sequential applications on GPUs that are present in everyday computing devices such as laptops and mobile systems.