The GraphBLAS in Julia and Python: the PageRank and Triangle Centralities

The GraphBLAS is a standard API for expressing Graphs in the language of linear algebra. The goal is to provide high performance while exploiting the fundamental simplicity of Graph algorithms in terms of a common set of "Basic Linear Algebra Subprograms". A robust parallel implementation...

Full description

Saved in:
Bibliographic Details
Published inIEEE Conference on High Performance Extreme Computing (Online) pp. 1 - 7
Main Authors Pelletier, Michel, Kimmerer, Will, Davis, Timothy A., Mattson, Timothy G.
Format Conference Proceeding
LanguageEnglish
Published IEEE 20.09.2021
Subjects
Online AccessGet full text
ISSN2643-1971
DOI10.1109/HPEC49654.2021.9622789

Cover

More Information
Summary:The GraphBLAS is a standard API for expressing Graphs in the language of linear algebra. The goal is to provide high performance while exploiting the fundamental simplicity of Graph algorithms in terms of a common set of "Basic Linear Algebra Subprograms". A robust parallel implementation of the GraphBLAS C specification is available as the SuiteSparse GraphBLAS library [1]. The simplicity of the GraphBLAS, so apparent "in the math", is diminished when expressed in terms of a low level language such as C. To see the full expressive power of the GraphBLAS, a high level interface is needed so that the elegance of the mathematical underpinnings of the GraphBLAS is clearly apparent in the code. In this paper we introduce the Julia interface to the SuiteSparse:GraphBLAS library and compare it to the Python interface [2]. We implement the PageRank and Triangle Centrality algorithms with remarkably little code and show that no significant performance is sacrificed by moving from C to the more productive Python and Julia interfaces.
ISSN:2643-1971
DOI:10.1109/HPEC49654.2021.9622789