Giter VIP home page Giter VIP logo

graphblas.github.io's Introduction

The GraphBLAS

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

An example graph and adjacency matrix

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.

More information

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)

graphblas.github.io's People

Contributors

aydinbuluc avatar drtimothyaldendavis avatar michelp avatar szarnyasg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.