Mathematical Foundations of the GraphBLAS
Jeremy Kepner, Peter Aaltonen, David Bader, Ayd{\i}n Buluc, Franz, Franchetti, John Gilbert, Dylan Hutchison, Manoj Kumar, Andrew Lumsdaine,, Henning Meyerhenke, Scott McMillan, Jose Moreira, John D. Owens, Carl Yang,, Marcin Zalewski, Timothy Mattson

TL;DR
The paper introduces the mathematical principles of the GraphBLAS standard, emphasizing matrix operations for graph algorithms, and demonstrates its low performance overhead in implementations.
Contribution
It provides a mathematical foundation for GraphBLAS, detailing how matrix operations can efficiently implement diverse graph algorithms across programming environments.
Findings
Matrix operations enable wide range of graph algorithms
Prototype implementations show low performance overhead
GraphBLAS facilitates composable and efficient graph processing
Abstract
The GraphBLAS standard (GraphBlas.org) is being developed to bring the potential of matrix based graph algorithms to the broadest possible audience. Mathematically the Graph- BLAS defines a core set of matrix-based graph operations that can be used to implement a wide class of graph algorithms in a wide range of programming environments. This paper provides an introduction to the mathematics of the GraphBLAS. Graphs represent connections between vertices with edges. Matrices can represent a wide range of graphs using adjacency matrices or incidence matrices. Adjacency matrices are often easier to analyze while incidence matrices are often better for representing data. Fortunately, the two are easily connected by matrix mul- tiplication. A key feature of matrix mathematics is that a very small number of matrix operations can be used to manipulate a very wide range of graphs. This…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
