This site contains information related to the GraphBLAS Graph Linear Algebra API.
The GraphBLAS Forum is an open effort to define standard buildingblocks for graph algorithms in the language of linear algebra.
We believe that the state of the art in constructing a largecollection of graph algorithms in terms of linear algebraic operationsis mature enough to support the emergence of a standard set ofprimitive building blocks. We believe that it is critical to movequickly and define such a standard, thereby freeing up researchers toinnovate and diversify at the level of higher level algorithms andgraph analytics applications. This effort was inspired by the BasicLinear Algebra Subprograms (BLAS) of dense Linear Algebra, and henceour working name for this standard is “the GraphBLAS”.
A key insight behind this work is that when a graph is represented bya sparse incidence or adjacency matrix, sparse matrix-vectormultiplication is a step of breadth first search. By generalizing thepair of scalar operations involved in the linear algebra computationsto define a semiring, we can extend the range of these primitives tosupport a wide range of parallel graph algorithms.
The C reference implementation isSuiteSparse:GraphBLAS,which implements the version 2.1.0 (final) C API.
Our 2013 manifesto for this project can be foundhere.
The mathematical definition of the GraphBLAS can be foundhere.
Background information about graphs in the language of linear algebracan be found in the book:Graph Algorithms in the Language of LinearAlgebra, edited by J. Kepner andJ. Gilbert, SIAM, 2011.
The Mathematics of BigData byJ. Kepner and H. Jananthan is the first book to present the commonmathematical foundations of bigdata analysis across a range of applications and technologies.
A straw man proposal for the GraphBLAS can be foundhere
Gabor Szarnyas maintains a list ofGraphBLASpointers with lotsof tutorial material.
Version 1.0 (provisional) of the C language API was released on May29, 2017 at the GABB workshophere.Version 1.1.0 (provisional) released on November 14, 2017.Version 1.2.0 was released on May 18, 2018.Version 1.3.0 was released on September 25, 2019.
MATLAB (comes with SuiteSparse). MATLAB R2021a and later uses SuiteSparse:GraphBLAS v3.1 for C=A*B when A and B are sparse.Release Notes,under Performance.
GraphBLAS Forum Update at SC’22 (November 15, 2022)
A good discussion thread on dropping explicit zeros (fall2019)
If you wish to join our effort (or just watch it), please send anemail message to ourmailing list coordinator.
![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |