if you’re new to GraphBLAS, check out these pointers first
mix of theory and implementation
Selected readings and presentations
GraphBLAS design papers
The GraphBLAS C API Specification, v2.0.0 by Benjamin Brock, Aydın Buluç, Timothy Mattson, Scott McMillan, and José Moreira
The GraphBLAS C API Specification, v1.3.0 by Aydın Buluç, Tim Mattson, Scott McMillan, José Moreira, Carl Yang
Introduction to GraphBLAS 2.0 (GrAPL @ IPDPS 2021) by Benjamin Brock et al.
SuiteSparse:GraphBLAS User Guide by Tim Davis
LAGraph – A library of algorithms for GraphBLAS, similar to LAPACK for BLAS
Traversals, max-flow, and shortest paths
Triangle counting, k-truss, clustering coefficient, etc.
Context-free path querying (CFPQ)
Overviews on GraphBLAS and linear algebra-based graph processing
Gábor Szárnyas: GraphBLAS: A linear algebraic approach for high-performance graph algorithms (introduction to GraphBLAS, 100+ slides), Talk at FOSDEM 2020’s HPC room (abridged version)
Jeremy Kepner: Mathematical Foundations of the GraphBLAS and Big Data (SIAM Minisymposium 2020 on Linear Algebraic Tools for Graph Computation)
- John R. Gilbert’s talks:
- Scott McMillan’s talks:
- Aydın Buluç’s talks:
Sparse Matrices Beyond Solvers: Graphs, Biology, and Machine Learning (MIT CSAIL Fast Code Seminar, June 22 2020), Video
GraphBLAST: A high-performance C++ GPU library implementing GraphBLAS (ECP Annual Meeting 2020)
GraphBLAS: Concepts, algorithms, and applications (Scheduling Workshop 2019)
Graph algorithms, computational motifs, and GraphBLAS (ECP Annual Meeting 2018)
Concepts in the GraphBLAS C API (2017)
Parallel Algorithms across the GraphBLAS Stack (ACS HPC and Data Analytics Workshop 2017) co-authored by Ariful Azad
Faster parallel GraphBLAS kernels (EECS, UC Berkeley, 2016)
The Graph BLAS effort and its implications for Exascale (SIAM Workshop on Exascale Applied Mathematics Challenges and Opportunities, 2014)
Task Parallel Approach to the Linear Algebra-Based Implementation of miniTri Michael Wolf (SIAM Annual Meeting, 2016) by Michael Wolf
- Albert-Jan Yzelman’s talks:
- Tim Davis’ talks:
Multiplex graph analysis with GraphBLAS (Graph Developer room @ FOSDEM 2019) by Gábor Szárnyas
Graph Algorithms in the Language of Linear Algebra (SIAM, 2011) by Jeremy Kepner and John R. Gilbert
- This is the best reference on the topic of linear algebra-based graph processing. However, note that GraphBLAS effort was not yet started when this book was written. Therefore, there are some differences between the notation of GraphBLAS documents and the one used in this book.
Mathematics of Big Data: Spreadsheets, Databases, Matrices, and Graphs (MIT Press, 2018) by Jeremy Kepner and Hayden Jananthan
- An updated version of paper Mathematical Foundations of the GraphBLAS is reprinted in this book (Chapter 6, p81-113)
- This book is currently the latest detailed reference on semiring-based computations, including graph algorithms. It also covers many other topics such as associative arrays. The book is not intended to be a GraphBLAS reference, but it can be used for providing a background in linear algebra (see e.g. Chapter 8, “Visualizing the Algebra of Associative Arrays”).
Path Problems in Networks (Morgan & Claypool Publishers, 2010) by John S. Baras and George Theodorakopoulos.
- This book is about the algebraic path problem – a semiring-based generalization of shortest path problem. The mathematical foundations of semiring-based graph analysis are described. Basic ideas to create new semirings to solve new problems are described.
- The section 3.1 “Alternative viewpoints: paths and matrices” (p17-19) provides a matrix-based framework for the algebraic path problem which is highly relevant to GraphBLAS.
- The table on pages 58-59 contains 29 different semirings and respective applied problems.
- Python wrappers:
pygraphblas: a Python wrapper for SuiteSparse:GraphBLAS aiming to provide a Pythonic AP
grblas: a Python wrapper for SuiteSparse:GraphBLAS with a new high-level syntax that provides a 1:1 mapping between the C API and Python
- This library and all dependencies can be installed with conda for OS X and Linux
dask-grblas: mirrors the grblas API and uses dask for out-of-core or distributed computation
PyGB: a Python wrapper for GBTL
SuiteSparseGraphBLAS.jl: a Julia wrapper for SuiteSparse:GraphBLAS
rustgraphblas: a Rust wrapper
graphblas-java-native: a Java wrapper
- MATLAB wrapper: built-in for SuiteSparse:GraphBLAS
- Docker containers on Docker Hub
See also the ongoing design of the GraphBLAS C++ API and its
rgri reference implementation.
Graphulo: Graph Analytics in Apache Accumulo (Accumulo Summit 2016) by Vijay Gadepally, Timothy Weale, Dylan Hutchison, Jeremy Kepner
Interacting with Accumulo and Graphulo using Julia/Python D4M (Accumulo Summit 2018) by Lauren Milechin, Hayden Jananthan, Vijay Gadepally, Jeremy Kepner
Accumulo and the Convergence of Machine Learning, Big Data, and Supercomputing (Accumulo Summit 2017) by Jeremy Kepner
Server-side Sparse Matrix Multiply in the Accumulo Database (HPEC 2015) by Dylan Hutchison, Jeremy Kepner, Vijay Gadepally, Adam Fuchs
Using D4M for rapid prototyping of analytics for Apache Accumulo (Accumulo Summit 2015) by Vijay Gadepally, Lauren Edwards, Jeremy Kepner
Graph Analytics expressed in GraphBLAS (2014) by Jeremy Kepner, Vijay Gadepally, Ben Miller
You can also find many papers, posters, and presentations in the Accumulo repository.
News, interviews, popular science
nicematrix LaTeX package can be used to typeset block matrices.
The source of this page is available at https://github.com/GraphBLAS/GraphBLAS-Pointers.