SciPy 2023

GraphBLAS for Sparse Data and Graphs
07-12, 16:05–16:35 (America/Chicago), Amphitheater 204

GraphBLAS solves graph problems using sparse linear algebra. We are using it to build graphblas-algorithms, a fast backend to NetworkX. python-graphblas is faster and more capable than scipy.sparse for both graph algorithms and sparse operations. If you have sparse data or graph workloads that you want to scale and make faster, then this is for you. Come learn what makes GraphBLAS special--and fast!--and how to use it effectively.


Sparse data and graph problems appear in virtually all science and engineering disciplines. Nevertheless, adoption of sparse and graph techniques has been slow (so opportunity to exploit sparsity are plentiful)--perhaps because it's not always obvious to know when to apply them, or existing libraries are too slow or difficult to use. GraphBLAS can help. By expressing graph algorithms in the language of linear algebra, it can handle larger data in parallel and is versatile enough to express custom analyses and integrate into larger workflows.

In this talk, we will cover:

  • How to recognize sparse or graph problems and when to use GraphBLAS
  • Representing a graph as a sparse matrix
  • The equivalence between graph problems and sparse problems
  • How GraphBLAS extends linear algebra with masking and arbitrary semirings to be more capable and work-efficient than scipy.sparse
  • The underlying sparse data structures and how to efficiently convert to and from them
  • Examples of graph algorithms written in python-graphblas
  • Using GraphBLAS as a backend to NetworkX via dispatching to graphblas-algorithms
  • Benchmarks comparing GraphBLAS, NetworkX, and scipy.sparse

Come learn what makes GraphBLAS special--and fast!--and how to use it effectively.

I am a Senior Software Engineer at Anaconda, focused on graph analytics and sparse data. I am a member of the GraphBLAS C API committee and an author of the python-graphblas library.