The SuiteSparse GraphBLAS C-library implements high performance hypersparse matrices with bindings to a variety of languages (Python, Julia, and Matlab/Octave). GraphBLAS provides a lightweight in-memory database implementation of hypersparse matrices that are ideal for analyzing many types of network data, while providing rigorous mathematical guarantees, such as linearity. Streaming updates of hypersparse matrices put enormous pressure on the memory hierarchy. This work benchmarks an implementation of hierarchical hypersparse matrices that reduces memory pressure and dramatically increases the update rate into a hypersparse matrices. The parameters of hierarchical hypersparse matrices rely on controlling the number of entries in each level in the hierarchy before an update is cascaded. The parameters are easily tunable to achieve optimal performance for a variety of applications. Hierarchical hypersparse matrices achieve over 1,000,000 updates per second in a single instance. Scaling to 31,000 instances of hierarchical hypersparse matrices arrays on 1,100 server nodes on the MIT SuperCloud achieved a sustained update rate of 75,000,000,000 updates per second. This capability allows the MIT SuperCloud to analyze extremely large streaming network data sets.
@article{arxiv.2001.06935,
title = {75,000,000,000 Streaming Inserts/Second Using Hierarchical Hypersparse GraphBLAS Matrices},
author = {Jeremy Kepner and Tim Davis and Chansup Byun and William Arcand and David Bestor and William Bergeron and Vijay Gadepally and Matthew Hubbell and Michael Houle and Michael Jones and Anna Klein and Peter Michaleas and Lauren Milechin and Julie Mullen and Andrew Prout and Antonio Rosa and Siddharth Samsi and Charles Yee and Albert Reuther},
journal= {arXiv preprint arXiv:2001.06935},
year = {2020}
}
Comments
4 pages, 4 figures, 28 references, accepted to IPDPS GrAPL 2020. arXiv admin note: substantial text overlap with arXiv:1907.04217