Mathematical Foundations of the GraphBLAS

Authors:
  • JKJeremy Kepner
    Jeremy Kepner
  • PAPeter Aaltonen
    Peter Aaltonen
  • DBDavid Bader
    David Bader
  • ABAydın Buluc
    Aydın Buluc
  • FFFranz Franchetti
    Franz Franchetti
  • JGJohn Gilbert
    John Gilbert
  • DHDylan Hutchison
    Dylan Hutchison
  • MKManoj Kumar
    Manoj Kumar
  • ALAndrew Lumsdaine
    Andrew Lumsdaine
  • HMHenning Meyerhenke
    Henning Meyerhenke
  • SMScott McMillan
    Scott McMillan
  • JMJose Moreira
    Jose Moreira

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 composability of small number of operations is the foundation of the GraphBLAS. A standard such as the GraphBLAS can only be effective if it has low performance overhead. Performance measurements of prototype GraphBLAS implementations indicate that the overhead is low.