SuiteSparse:GraphBLAS is a full implementation of the GraphBLAS standard (graphblas.org), which defines a set of sparse matrix operations on an extended algebra of semirings using an almost unlimited variety of operators and types.  When applied to sparse adjacency matrices, these algebraic operations are equivalent to computations on graphs.  GraphBLAS provides a powerful and expressive framework for creating graph algorithms based on the elegant mathematics of sparse matrix operations on a semiring.


Download latest version:

SuiteSparse:GraphBLAS 2.2.3





GraphBLAS also appears as part of SuiteSparse (typically at a slower release cycle than this page).  This page includes the most recent update, all prior versions, and a few GraphBLAS extras.


GraphBLAS extras (these are now included in the GraphBLAS/Extras folder in the software bundle):


  1. ExactKronGen5: Massively-parallel Kronecker product computation.This package is a simple program for constructing a huge Kronecker product in parallel. It includes a top-level MPI-based program. It also includes a simple function (kron_submatrix) that can be used inside a larger MPI application, to run on a single MPI process or also without MPI at all. The function computes a submatrix of a larger Kronecker product and writes its submatrix to a uniquely-named file. Concatenating all such files together gives the resulting Kronecker product. The package uses GxB_kron in SuiteSparse:GraphBLAS.

  2. tri.tar.gz: triangle counting in GraphBLAS

  3. ktruss.tar.gz: K-truss computation in GraphBLAS


Papers (the ACM TOMS paper also appears in the SuiteSparse/GraphBLAS/Doc folder):


  1. IEEE HPEC’18 paper:  Graph algorithms via SuiteSparse:GraphBLAS: triangle counting and K-truss, T. Davis, 2018.  Davis_HPEC18.pdf.

  2. Algorithm 9xx: SuiteSparse:GraphBLAS: graph algorithms in the language of sparse linear algebra, T. Davis, submitted to the ACM Trans. on Mathematical Software, 2018.  toms_graphblas.pdf


Older versions:  click here for the GraphBLAS archive.


For GraphBLAS developers, click here for detailed doxygen documentation.


Talks on GraphBLAS and RedisGraph are linked below.  RedisGraph+GraphBLAS is the topic of the first 7 minutes, 20 seconds of the first talk.  The second talk is longer, and is only on RedisGraph and GraphBLAS.











  

RedisGraph v1.0 released: Nov 15, 2018


“By representing the data as sparse matrices and employing the power of GraphBLAS (a highly optimized library for sparse matrix operations), RedisGraph delivers a fast and efficient way to store, manage and process graphs. In fact, our initial benchmarks are already finding that RedisGraph is six to 600 times faster than existing graph databases!” (caveat: the TigerGraph results on the blog will be updated soon).



Acknowledgements:  SuiteSparse:GraphBLAS would not be possible without the concerted and long-term efforts of the GraphBLAS.org community -- in particular, the GraphBLAS C API Specification Committee:  Aydın Buluç (LBNL), Tim Mattson (Intel), Scott McMillan (CMU), José Moreira (IBM), and Carl Yang (CMU), and the GraphBLAS Steering Committee:  David Bader (Georgia Tech), Aydın Buluç (LBNL), John Gilbert (UCSB), Jeremy Kepner (MIT Lincoln Lab), Tim Mattson (Intel), and Henning Meyerhenke (Humboldt Univ. Berlin).


The mathematical foundation of GraphBLAS is the topic of the book, Graph Algorithms in the Language of Linear Algebra, Edited by Jeremy Kepner and John Gilbert, SIAM, 2011, part of the SIAM Book Series on Software, Environments, and Tools.





SuiteSparse:GraphBLAS was developed with partial support from NSF grant 1514406.