# The GraphBLAS

The GraphBLAS Forum is an open effort to define standard building
blocks for graph algorithms in the language of linear algebra.

We believe that the state of the art in constructing a large
collection of graph algorithms in terms of linear algebraic operations
is mature enough to support the emergence of a standard set of
primitive building blocks. We believe that it is critical to move
quickly and define such a standard, thereby freeing up researchers to
innovate and diversify at the level of higher level algorithms and
graph analytics applications. This effort was inspired by the Basic
Linear Algebra Subprograms (BLAS) of dense Linear Algebra, and hence
our working name for this standard is “the GraphBLAS”.

A key insight behind this work is that when a graph is represented by
a sparse incidence or adjacency matrix, sparse matrix-vector
multiplication is a step of breadth first search. By generalizing the
pair of scalar operations involved in the linear algebra computations
to define a semiring, we can extend the range of these primitives to
support a wide range of parallel graph algorithms.

The GraphBLAS Wikipedia Page

The C reference implementation is
SuiteSparse:GraphBLAS.

Our 2013 manifesto for this project can be found
here.

The mathematical definition of the GraphBLAS can be found
here.

Background information about graphs in the language of linear algebra
can be found in the book: Graph Algorithms in the Language of Linear
Algebra, edited by J. Kepner and
J. Gilbert, SIAM, 2011.

The Mathematics of Big
Data by
J. Kepner and H. Jananthan is the first book to present the common
mathematical foundations of big
data analysis across a range of applications and technologies.

A straw man proposal for the GraphBLAS can be found
here

Gabor Szarnyas maintains a list of GraphBLAS
pointers with lots
of tutorial material.

# Application Program Interface (API)

Version 1.0 (provisional) of the C language API is released on May
29, 2017 at the GABB workshop
here.

Version 1.1.0 (provisional) is released on November 14, 2017.

Version 1.2.0 (final) is released on May 18, 2018. It can be
downloaded from
here. This
is only available for archival purposes, you should use the latest
version 1.3.0 below.

Version 1.3.0 (final) is released on September 25, 2019. It can be
downloaded from
here.

# Projects developing implementations of the GraphBLAS

# Programming Language Interfaces to The GraphBLAS API

# Graph analysis systems that integrate GraphBLAS

# Workshops and conferences featuring the GraphBLAS (reverse chronological)

# Videos and other interesting discussions on GraphBLAS

# GraphBLAS mailing list

If you wish to join our effort (or just watch it), please send an
email message to our mailing list coordinator.

# Steering Committee (alphabetical)

# The GraphBLAS is supported by the following organizations

### The GraphBLAS logo is licensed under CC BY 4.0 (designer: Jakab Rokob)