arrow
Return

StarPlat: A versatile DSL for graph analytics

delete2024-12-01
delete0
delete
OA
AI
N
Nibedita Behera
A
Ashwina Kumar *
E
Ebenezer Rajadurai T
S
Sai Nitish
R
Rajesh Pandian Muniasamy
R
Rupesh Nasre
DOI:10.1016/j.jpdc.2024.104967delete
deleteOriginal
deleteShare
deleteSave
View PDF
Abstract

Abstract

En 中文
Graphs model several real-world phenomena. With the growth of unstructured and semi-structured data, parallelization of graph algorithms is inevitable. Unfortunately, due to inherent irregularity of computation, memory access, and communication, graph algorithms are traditionally challenging to parallelize. To tame this challenge, several libraries, frameworks, and domain-specific languages (DSLs) have been proposed to reduce the parallel programming burden of the users, who are often domain experts. However, existing frameworks to model graph algorithms typically target a single architecture. In this paper, we present a graph DSL, named StarPlat, that allows programmers to specify graph algorithms in a high-level format, but generates code for three different backends from the same algorithmic specification. In particular, the DSL compiler generates OpenMP for multi-core systems, MPI for distributed systems, and CUDA for many-core GPUs. Since these three are completely different parallel programming paradigms, binding them together under the same language is challenging. We share our experience with the language design. Central to our compiler is an intermediate representation which allows a common representation of the high-level program, from which individual backend code generations begin. We demonstrate the expressiveness of StarPlat by specifying four graph algorithms: betweenness centrality computation, page rank computation, single-source shortest paths, and triangle counting. Using a suite of ten large graphs, we illustrate the effectiveness of our approach by comparing the performance of the generated codes with that obtained with hand-crafted library codes. We find that the generated code is competitive to library-based codes in many cases. More importantly, we show the feasibility to generate efficient codes for different target architectures from the same algorithmic specification of graph algorithms.
Keywords:
Graph algorithms
Domain-specific language
OpenMP
MPI
CUDA
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

Journal of Parallel and Distributed Computing cover
Journal of Parallel and Distributed Computing
IF:
4
Papers:
3.8K
Citations:
4.8K

Organization

I
indian institute of technology system (iit system)
Scholars:
9.5W
Papers: 9.9W
Citations: 93
Cited Papers

Cited Papers

Julia: A Fresh Approach to Numerical Computing
err2017-01-01
err3.6K
errOAAI
errBezanson, Jeff; Edelman, Alan; Karpinski, Stefan; Shah, Viral B.
errShare
errSave
Kokkos 3: Programming Model Extensions for the Exascale Era
err2022-04-01
err165
errOAAI
errTrott, Christian R.; Lebrun-Grandie, Damien; Arndt, Daniel; Ciesko, Jan; Dang, Vinh; Ellingwood, Nathan; Gayatri, Rahulkumar; Harvey, Evan; Hollman, Daisy S.; Ibanez, Dan; Liber, Nevin; Madsen, Jonathan; Miles, Jeff; Poliakoff, David; Powell, Amy; Rajamanickam, Sivasankaran; Simberg, Mikael; Sunderland, Dan; Turcksin, Bruno; Wilke, Jeremiah
errShare
errSave
One‐trial reward learning in the snail Lymnea stagnalis
err2004-10-11
err0
PREAI
errJames Alexander; Teresa E. Audesirk; Gerald J. Audesirk
errShare
errSave