The suite adapts real applications to a portable array-programming style. This catalog is generated from metadata.json in the main repository.

Model Counting using einsum

Benchmarks Model Counting Algorithm using einsum operations.

Authors Richard Wan <rwan41@gatech.edu>
ACM CCS
10010583.10010717.10010721.10010727 Hardware › Theorem proving and SAT solving 500 10002950.10003648.10003662 Mathematics of computing › Probabilistic inference problems 500 10010583.10010717.10010721.10003791 Hardware › Model checking 500
Motivation

Model Counting is used to determine the total number of satisfying assignments for a SAT problem.

Input generators (2)

Model Counting Generator

Parses standard DIMACS CNF test strings into sparse arrays for model counting.

Authors Richard Wan <rwan41@gatech.edu>
Motivation

Uses a predefined set of formulas to verify correctness.

Model Counting Competition Track1 Generator

Loads exact model counting CNF instances from MCComp Track1.

Motivation

Track1 instances have exact integer model counts, so they can be run by the existing unweighted model-counting einsum benchmark.

References
  1. . "Model Counting Competition test instances", URL: https://github.com/arijitsh/mccomp-test-instances.
Weighted Model Counting using einsum

Benchmarks Weighted Model Counting Algorithm using einsum operations.

Authors Richard Wan <rwan41@gatech.edu>
Motivation

Weighted Model Counting extends model counting by assigning specific weights to the variables.

Input generators (2)

Weighted Model Counting Generator

Parses DIMACS CNF test strings into sparse arrays.

Authors Richard Wan <rwan41@gatech.edu>
Motivation

Uses a predefined set of formulas to verify correctness.

Model Counting Competition Track4 Generator

Loads projected weighted model counting CNF instances from MCComp Track4.

Motivation

Track4 instances provide weighted CNF formulas from a standard model-counting corpus.

References
  1. . "Model Counting Competition test instances", URL: https://github.com/arijitsh/mccomp-test-instances.
Bellman Ford Algorithm

This code implements an Array-API compatible version of Bellman Ford Algorithm to find the shortest distance from a src node to all edges across a graph. It takes in an adjacency matrix as an input and then slowly relaxes each vector by broadcasting it and then determining the minimum distances iteratively.

Authors Ilisha Gupta <igupta90@gatech.edu>, Joel Mathew Cherian <jcherian32@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
Motivation

Linear algebraic graph algorithms use sparsity to avoid unnecessary computations by focusing only on non-zero elements. Optimizing the use of sparse data structures and algorithms is key to achieving high performance, as it reduces memory footprint and leads to faster traversals.

References
  1. Kepner, Jeremy, Gilbert, John. "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics (SIAM), Philadelphia, 2011.

Input generators (3)

Bellman-Ford Test Input Generator

Small deterministic Bellman-Ford examples.

Motivation

Provide small graph examples for Bellman-Ford correctness checks.

Bellman-Ford Input Generator

Input generator for Bellman-Ford shortest-path benchmarks.

Motivation

Generate weighted graph inputs for Bellman-Ford.

Bellman-Ford GAP Input Generator

Input GAP generator for Bellman-Ford shortest-path benchmarks.

Motivation

Generate weighted GAP graph inputs for Bellman-Ford.

References
  1. Scott Beamer, Krste Asanović, David Patterson. "The GAP Benchmark Suite", 2015, URL: https://arxiv.org/abs/1508.03619.
Betweenness Centrality Algorithm

This code is based on the Brandes betweenness centrality algorithm. The current code for the benchmark takes a two step approach. The first step involves going layer by layer from each potential starting node to find the total amount of shortest paths that lead to a node. So for example 4 -> 6 could have 3 diff shortest paths and 4 -> 2 could have only 1 shortest path. The second step is for tracing backwards to see how many times a node appears in other shortest paths. The number of times this node is in one of the shortest path divided by total shortest paths between the two edge nodes gets added to the intermediate nodes bc score.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
References
  1. John Matta, Gunes Ercal, Koushik Sinha. "Comparing the speed and accuracy of approaches to betweenness centrality approximation", Computational Social Networks, Springer Science and Business Media LLC, Vol. 6, No. 1, 2019, URL: https://doi.org/10.1186/s40649-019-0062-5, DOI: 10.1186/s40649-019-0062-5.
  2. Kepner, Jeremy, Gilbert, John. "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics (SIAM), Philadelphia, 2011.

Input generators (3)

Betweenness Centrality Test Input Generator

Small deterministic betweenness centrality examples.

Motivation

Provide small graph examples for centrality correctness checks.

Betweenness Centrality Input Generator

Input generator for betweenness centrality benchmarks.

Motivation

Generate sparse directed graph inputs for betweenness centrality.

Betweenness Centrality GAP Input Generator

Input GAP generator for betweenness centrality benchmarks.

Motivation

Generate GAP graph inputs for betweenness centrality.

References
  1. Scott Beamer, Krste Asanović, David Patterson. "The GAP Benchmark Suite", 2015, URL: https://arxiv.org/abs/1508.03619.
Breadth-First Search Algorithm

The Breadth-First Search algorithm is an important graph traversal technique used to explore vertices by layers. It is a fundamental building block for more complex graph algorithms, especially in areas like parallel processing and high-performance computing.

Authors Aarav Joglekar <ajoglekar32@gatech.edu>, Joel Mathew Cherian <jcherian32@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
Motivation

In standard BFS, algorithms on sparse graphs are faster because they process fewer edges, and specialized algebraic methods use sparsity to avoid unnecessary computations by focusing only on non-zero elements. Optimizing the use of sparse data structures and algorithms is key to achieving high performance, as it reduces memory footprint and leads to faster traversals.

References
  1. Kepner, Jeremy, Gilbert, John. "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics (SIAM), Philadelphia, 2011.

Input generators (3)

Breadth-First Search Input Generator

Input generator for breadth-first search benchmarks.

Motivation

Generate sparse graph inputs for breadth-first search.

Breadth-First Search Test Input Generator

Small deterministic BFS examples with reference outputs.

Motivation

Provide small BFS examples for benchmark correctness checks.

Breadth-First Search GAP Input Generator

GAP Input generator for breadth-first search benchmarks.

Motivation

Generate GAP graph inputs for breadth-first search.

References
  1. Scott Beamer, Krste Asanović, David Patterson. "The GAP Benchmark Suite", 2015, URL: https://arxiv.org/abs/1508.03619.
Brusselator — Backward Euler

2D Brusselator ODE with diffusion.

Authors Akarsh Duddu <aduddu3@gatech.edu>

Input generators (1)

Brusselator

2D Brusselator ODE with diffusion.

Authors Akarsh Duddu <aduddu3@gatech.edu>
Brusselator — Forward Euler

2D Brusselator ODE with diffusion.

Authors Akarsh Duddu <aduddu3@gatech.edu>

Input generators (1)

Brusselator

2D Brusselator ODE with diffusion.

Authors Akarsh Duddu <aduddu3@gatech.edu>
Brusselator — RK4

2D Brusselator ODE with diffusion.

Authors Akarsh Duddu <aduddu3@gatech.edu>

Input generators (1)

Brusselator

2D Brusselator ODE with diffusion.

Authors Akarsh Duddu <aduddu3@gatech.edu>
1D Finite Difference (Buckley-Leverett flux)

The purpose of this is to analyze the importance of numerical methods for PDEs, and applications sparse array theory into these method, through the form of benchmarks. This paticular benchmark analyzes the use of the Lax–Friedrichs method for solving nonlinear hyberbolic PDEs, with numerical stability and accuracy not seen in FTCS. This benchmark will run a simulation using both Lax–Friedrichs and analyze core concepts such as numerical stability, conservation law consistency, etc.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
ACM CCS
10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10010147.10010341.10010349.10010357 Computing methodologies › Continuous simulation 500 10002950.10003714.10003715.10003750 Mathematics of computing › Discretization 500
Motivation

Updates are done using a matrix representation, to updates the spatial coordinates for time t.

References
  1. Jacob Laurel, Ignacio Laguna, Jan Hückelheim. "Synthesizing Sound and Precise Abstract Transformers for Nonlinear Hyperbolic PDE Solvers.", Proceedings of the ACM on Programming Languages, Association for Computing Machinery (ACM), Vol. 9, No. OOPSLA2, pp. 1063-1091, 2025, URL: https://doi.org/10.1145/3763088, DOI: 10.1145/3763088.

Input generators (1)

Finite Difference Data Generator

The finite difference generator uses a finite difference grid of500 by 500 cells, matching roughly the scale of areal finite difference problem, Norris/torso3 from UF Matrix Collection

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
Motivation

For linear advection, updates are done using a sparse matrix representation, to updates the spatial coordinates for time t.

References
  1. Timothy A. Davis, Yifan Hu. "The university of Florida sparse matrix collection", ACM Transactions on Mathematical Software, Association for Computing Machinery (ACM), Vol. 38, No. 1, pp. 1-25, 2011, URL: https://doi.org/10.1145/2049662.2049663, DOI: 10.1145/2049662.2049663.
2D Finite Difference (Buckley-Leverett flux)

The purpose of this is to analyze the importance of numerical methods for PDEs, and applications sparse array theory into these method, through the form of benchmarks. This paticular benchmark analyzes the use of the Lax–Friedrichs method for solving nonlinear hyberbolic PDEs, with numerical stability and accuracy not seen in FTCS. This benchmark will run a simulation using both Lax–Friedrichs and analyze core concepts such as numerical stability, conservation law consistency, etc.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
ACM CCS
10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10010147.10010341.10010349.10010357 Computing methodologies › Continuous simulation 500 10002950.10003714.10003715.10003750 Mathematics of computing › Discretization 500
Motivation

Updates are done using a matrix representation, to updates the spatial coordinates for time t.

References
  1. Jacob Laurel, Ignacio Laguna, Jan Hückelheim. "Synthesizing Sound and Precise Abstract Transformers for Nonlinear Hyperbolic PDE Solvers.", Proceedings of the ACM on Programming Languages, Association for Computing Machinery (ACM), Vol. 9, No. OOPSLA2, pp. 1063-1091, 2025, URL: https://doi.org/10.1145/3763088, DOI: 10.1145/3763088.

Input generators (1)

Finite Difference Data Generator

The finite difference generator uses a finite difference grid of500 by 500 cells, matching roughly the scale of areal finite difference problem, Norris/torso3 from UF Matrix Collection

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
Motivation

For linear advection, updates are done using a sparse matrix representation, to updates the spatial coordinates for time t.

References
  1. Timothy A. Davis, Yifan Hu. "The university of Florida sparse matrix collection", ACM Transactions on Mathematical Software, Association for Computing Machinery (ACM), Vol. 38, No. 1, pp. 1-25, 2011, URL: https://doi.org/10.1145/2049662.2049663, DOI: 10.1145/2049662.2049663.
1D Finite Difference (Burgers flux)

The purpose of this is to analyze the importance of numerical methods for PDEs, and applications sparse array theory into these method, through the form of benchmarks. This paticular benchmark analyzes the use of the Lax–Friedrichs method for solving nonlinear hyberbolic PDEs, with numerical stability and accuracy not seen in FTCS. This benchmark will run a simulation using both Lax–Friedrichs and analyze core concepts such as numerical stability, conservation law consistency, etc.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
ACM CCS
10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10010147.10010341.10010349.10010357 Computing methodologies › Continuous simulation 500 10002950.10003714.10003715.10003750 Mathematics of computing › Discretization 500
Motivation

Updates are done using a matrix representation, to updates the spatial coordinates for time t.

References
  1. Jacob Laurel, Ignacio Laguna, Jan Hückelheim. "Synthesizing Sound and Precise Abstract Transformers for Nonlinear Hyperbolic PDE Solvers.", Proceedings of the ACM on Programming Languages, Association for Computing Machinery (ACM), Vol. 9, No. OOPSLA2, pp. 1063-1091, 2025, URL: https://doi.org/10.1145/3763088, DOI: 10.1145/3763088.

Input generators (1)

Finite Difference Data Generator

The finite difference generator uses a finite difference grid of500 by 500 cells, matching roughly the scale of areal finite difference problem, Norris/torso3 from UF Matrix Collection

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
Motivation

For linear advection, updates are done using a sparse matrix representation, to updates the spatial coordinates for time t.

References
  1. Timothy A. Davis, Yifan Hu. "The university of Florida sparse matrix collection", ACM Transactions on Mathematical Software, Association for Computing Machinery (ACM), Vol. 38, No. 1, pp. 1-25, 2011, URL: https://doi.org/10.1145/2049662.2049663, DOI: 10.1145/2049662.2049663.
2D Finite Difference (Burgers flux)

The purpose of this is to analyze the importance of numerical methods for PDEs, and applications sparse array theory into these method, through the form of benchmarks. This paticular benchmark analyzes the use of the Lax–Friedrichs method for solving nonlinear hyberbolic PDEs, with numerical stability and accuracy not seen in FTCS. This benchmark will run a simulation using both Lax–Friedrichs and analyze core concepts such as numerical stability, conservation law consistency, etc.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
ACM CCS
10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10010147.10010341.10010349.10010357 Computing methodologies › Continuous simulation 500 10002950.10003714.10003715.10003750 Mathematics of computing › Discretization 500
Motivation

Updates are done using a matrix representation, to updates the spatial coordinates for time t.

References
  1. Jacob Laurel, Ignacio Laguna, Jan Hückelheim. "Synthesizing Sound and Precise Abstract Transformers for Nonlinear Hyperbolic PDE Solvers.", Proceedings of the ACM on Programming Languages, Association for Computing Machinery (ACM), Vol. 9, No. OOPSLA2, pp. 1063-1091, 2025, URL: https://doi.org/10.1145/3763088, DOI: 10.1145/3763088.

Input generators (1)

Finite Difference Data Generator

The finite difference generator uses a finite difference grid of500 by 500 cells, matching roughly the scale of areal finite difference problem, Norris/torso3 from UF Matrix Collection

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
Motivation

For linear advection, updates are done using a sparse matrix representation, to updates the spatial coordinates for time t.

References
  1. Timothy A. Davis, Yifan Hu. "The university of Florida sparse matrix collection", ACM Transactions on Mathematical Software, Association for Computing Machinery (ACM), Vol. 38, No. 1, pp. 1-25, 2011, URL: https://doi.org/10.1145/2049662.2049663, DOI: 10.1145/2049662.2049663.
Coupled Cluster Singles and Doubles (CCSD)

Computes T1 and T2 amplitudes for CCSD. Ported from the CTF (Cyclops Tensor Framework) CCSD reference implementation

Authors Tarun Devi <tdevi3@gatech.edu>
Motivation

Coupled cluster theory is one of the most accurate and widely used methods in quantum chemistry for computing ground-state energies of molecular systems. The two-electron integral tensors (Vabef, Vabij, etc.) are antisymmetric, which means roughly 3/4 of entries are redundant. Exploiting this antisymmetry reduces both storage and compute by up to 8x for 4-index tensors. Here antisymmetry means swapping an antisymmetric index pair flips the sign, for example T[a,b,i,j] = -T[b,a,i,j] and T[a,b,i,j] = -T[a,b,j,i].

References
  1. G. D. Purvis, R. J. Bartlett. "A full coupled-cluster singles and doubles model: The inclusion of disconnected triples", J. Chem. Phys., Vol. 76, No. 4, pp. 1910-1918, 1982, URL: https://doi.org/10.1063/1.443164.
  2. E. Solomonik, D. Matthews, J. R. Hammond, J. F. Stanton, J. Demmel. "A massively parallel tensor contraction framework for coupled-cluster computations", J. Parallel Distrib. Comput., Vol. 74, No. 12, pp. 3176-3190, 2014, URL: https://doi.org/10.1016/j.jpdc.2014.06.002.

Input generators (1)

CCSD Input Generator
Inputs are generated using the same deterministic pseudorandom fill as the C++ CTF reference (ccsd.cxx): canonical antisymmetric elements are set to ((flat_index * multiplier + tensor_id) % 13077) / 13077 - 0.5, then reflected via antisymmetry. This exactly reproduces the C++ reference output T = 380638.
Authors Tarun Devi <tdevi3@gatech.edu>
ACM CCS
10010147.10010341.10010349.10010350 Computing methodologies › Quantum mechanic simulation 500 10010405.10010432.10010441 Applied computing › Physics 500 10010405.10010432.10010436 Applied computing › Chemistry 500
References
  1. G. D. Purvis, R. J. Bartlett. "A full coupled-cluster singles and doubles model: The inclusion of disconnected triples", J. Chem. Phys., Vol. 76, No. 4, pp. 1910-1918, 1982, URL: https://doi.org/10.1063/1.443164.
  2. E. Solomonik, D. Matthews, J. R. Hammond, J. F. Stanton, J. Demmel. "A massively parallel tensor contraction framework for coupled-cluster computations", J. Parallel Distrib. Comput., Vol. 74, No. 12, pp. 3176-3190, 2014, URL: https://doi.org/10.1016/j.jpdc.2014.06.002.
Conjugate Gradient Iterative Solver

Solves sparse symmetric positive definite linear systems with CG.

Authors Benjamin Berol <bberol3@gatech.edu>
ACM CCS
10002950.10003705.10003707 Mathematics of computing › Solvers 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500
Motivation

Each iteration of the conjugate gradient requires a SpMV to compute Ap which can be done in O(nnz) time rather than O(n^2) time for dense matrices.

References
  1. Yousef Saad. "Iterative Methods for Sparse Linear Systems", SIAM, 2003.

Input generators (2)

Conjugate Gradient Test Data Generator

Inlined matrices from the CG pytest examples.

Authors Benjamin Berol <bberol3@gatech.edu>
Motivation

Uses small inlined linear systems to verify solver correctness.

Conjugate Gradient SuiteSparse Data Generator

Accesses and prepares symmetric positive definite matrices from SuiteSparse for conjugate gradient.

Authors Benjamin Berol <bberol3@gatech.edu>
Motivation

Data collected from SuiteSparse Matrix Collection consisting of symmetric positive definite matrices, particularly those with a low convergence criteria

CANDECOMP/PARAFAC (CP) Decomposition via Alternating Least Squares

Computes the CP decomposition using Alternating Least Squares (ALS). Factorizes an N-D tensor X into factor matrices such that: $X \approx \sum_{r=1}^{R} \lambda_r \cdot a_r \circ b_r \circ …$ where $\circ$ denotes the outer product, R is the rank, and $\lambda$ are the weights. Handwritten code based on the standard CP-ALS algorithm from Kolda and Bader (2009).

Authors Grace Wang <gwang426@gatech.edu>
ACM CCS
10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500 10010147.10010257.10010293.10010309 Computing methodologies › Factorization methods 500
Motivation

The Alternating Least Squares (ALS) algorithm for CANDECOMP/PARAFAC (CP) plays a critical role in tensor decomposition, which has applications in various fields such as signal processing, pscyhometrics, neuroscience, and graph analysis. Within the ALS algorithm, the Matricized-Tensor Times Khatri-Rao Product (MTTKRP) operation is a computationally intensive step that often dominates the overall runtime. Efficiently implementing MTTKRP is crucial for the performance of the ALS algorithm. The input tensor is sparse, and the ALS algorithm takes advantage of this sparsity through its MTTKRP kernel, which process only the non-zero elements of the tensor. For sparse tensors with nnz « I * J * K, the complexity reduces from O(I * J * K * R) to O(nnz * R), where nnz is the number of non-zero elements in the tensor and R is the decomposition rank. This makes it practical to work with large-scale applications.

References
  1. T. G. Kolda, B. W. Bader. "Tensor Decompositions and Applications", SIAM Review, Vol. 51, No. 3, pp. 455-500, 2009, DOI: 10.1137/07070111X.
  2. Willow Ahrens, Alvin Shi. "CS 18.335 Final Project: CP Decomposition", 2025, URL: https://github.com/willow-ahrens/18.335FinalProject/blob/submit/TFGDCANDECOMP.py.
  3. Tensorly Contributors. "Tensorly", 2025, URL: https://github.com/tensorly/tensorly/blob/main/tensorly/decomposition/_cp.py.

Input generators (2)

Factorizable Tensor for CP Decomposition
        Generating small factorizable tensors by creating random factor matrices
        and reconstructing the tensor from them (tensor should decompose easily
        with low reconstruction error).
Authors Grace Wang <gwang426@gatech.edu>
FROSTT Sparse Tensor Generator for CP-ALS

Real sparse tensors downloaded from FROSTT (frostt.io), factorized directly. No dense reconstruction check is performed since these tensors are stored in genuinely sparse (COO) form.

Motivation

Real sparse tensors from FROSTT exercise CP-ALS’s MTTKRP kernel against genuinely irregular sparsity patterns, unlike the synthetic low-rank-by-construction tensors generated elsewhere in this file.

References
  1. Shaden Smith, Jee W. Choi, Jiajia Li, Richard Vuduc, Jongsoo Park, Xing Liu, George Karypis. "FROSTT: The Formidable Repository of Open Sparse Tensors and Tools", 2017, URL: http://frostt.io/.
FastSV Algorithm

The FastSV algorithm is a graph algorithm used to find the connected components for a simple graph. This algorithm introduces several optimizations that allow for faster convergence to a solution compared to the SV algorithm it is based on, specifically through modifications to the tree hooking and termination condition.

Authors Richard Wan <rwan41@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
References
  1. Zhang, Y., Azad, A., Hu, Z.. "FastSV: A distributed-memory connected component algorithm with fast convergence.", Proceedings of the 2020 SIAM Conference on Parallel Processing for Scientific Computing, Society for Industrial and Applied Mathematics, pp. 46-57, 2020.

Input generators (3)

FastSV Test Input Generator

Small deterministic FastSV examples with reference labels.

Motivation

Provide small graph examples for FastSV correctness checks.

FastSV Input Generator

Input generator for FastSV connected-components benchmarks.

Motivation

Generate sparse graph inputs for FastSV.

FastSV GAP Input Generator

Input GAP generator for FastSV connected-components benchmarks.

Motivation

Generate GAP graph inputs for FastSV.

References
  1. Scott Beamer, Krste Asanović, David Patterson. "The GAP Benchmark Suite", 2015, URL: https://arxiv.org/abs/1508.03619.
Floyd-Warshall

The Floyd-Warshall algorithm computes the shortest paths between every pair of vertices in a weighted directed graph.

Authors Aarav Joglekar <ajoglekar32@gatech.edu>, Joel Mathew Cherian <jcherian32@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
Motivation

Sparse graphs reduce unnecessary computation, as most entries in the adjacency matrix represent non-edges and begin as inifinity. Efficient sparse representations allow the backend framework to skip work and minimize memory movement during the relaxation steps of the algorithm.

References
  1. Kepner, Jeremy, Gilbert, John. "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics (SIAM), SIAM, 2011.

Input generators (2)

Floyd-Warshall Test Input Generator

Small deterministic Floyd-Warshall examples.

Motivation

Provide small graph examples for shortest-path correctness checks.

Floyd-Warshall Input Generator

Data is collected from the SuiteSparse Matrix Collection and standard benchmark graph datasets, with sparse adjacency matrices converted into unweighted all-pairs shortest path inputs. This generator uses real-world networks, including the Chesapeake road network and soc-tribes network from the Network Repository.

Authors Aarav Joglekar <ajoglekar32@gatech.edu>, Joel Mathew Cherian <jcherian32@gatech.edu>
References
  1. Kepner, Jeremy, Gilbert, John. "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics (SIAM), 2011.
  2. Ryan A. Rossi, Nesreen K. Ahmed. "The Network Data Repository with Interactive Graph Analytics and Visualization", AAAI, 2015, URL: https://networkrepository.com.
4-Clique Counting

4-clique Counting: A 4-clique must contain 6 edges that connect all 4 vertices. The einsum does the following: for a given vertex i, checks for existence of 3 edges to 3 other vertices, then checks for existence of 3 edges between those 3 vertices. This constitutes a 4-clique. Divide by 24 to avoid overcounting. These methods are implemented using the property that multiplying a graph’s adjacency matrix by itself n times yields the number of walks of length n that begin at the vertex denoted by the row label and end at the vertex denoted by the column label.

Authors Jeffrey Xu <jxu743@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
Motivation

Adjacency matrices are often sparse, and are used as input in this problem.’It is generally known that counting the exact number oftriangles in a graph G can be described using the language oflinear algebra as 1/6 Γ(A3),where A is the adjacency matrix of the graph G, and Γ(X)is the trace of the square matrix X [1]. Other linear algebraapproaches [2], [3] also require a sparse-matrix multiplicationof A or parts of A as part of their computation. Alternativeapproaches that are not based on linear algebra leverage otherformats for describing graphs such as the adjacency list todesign their algorithms [4], [5].’‘…the shortcut method of computing a power of a [adjacency] matrix,is isomorphic to a similar shortcut for finding all shortest paths.’

References
  1. T. M. Low, V. N. Rao, M. Lee, D. Popovici, F. Franchetti, S. McMillan. "First look: Linear algebra-based triangle counting without matrix multiplication", IEEE High Performance Extreme Computing Conference (HPEC), 2017, URL: https://doi.org/10.1109/HPEC.2017.8091046.
  2. Kepner, Jeremy, Gilbert, John. "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics, 2011, URL: https://doi.org/10.1137/1.9780898719918.

Input generators (3)

4-Clique Count Test Input Generator

Small deterministic 4-clique-count examples.

Motivation

Provide small graph examples for 4-clique-count correctness checks.

4-Clique Count Input Generator

Input generator for 4-clique counting benchmarks.

Authors Jeffrey Xu <jxu743@gatech.edu>
Motivation

Generate sparse graph inputs for 4-clique counting.

References
  1. Leskovec, Jure, Sosič, Rok. "SNAP: A General Purpose Network Analysis and Graph Mining Library", ACM Transactions on Intelligent Systems and Technology, Vol. 8, No. 1, 2016, URL: https://snap.stanford.edu/index.html.
4-Clique Count GAP Input Generator

Input GAP generator for 4-clique counting benchmarks.

Authors Willow Ahrens <ahrens@gatech.edu>
Motivation

Generate GAP graph inputs for 4-clique counting.

References
  1. Scott Beamer, Krste Asanović, David Patterson. "The GAP Benchmark Suite", 2015, URL: https://arxiv.org/abs/1508.03619.
Graph Convolutional Network Inference

Computes a 2-layer Graph Convolutional Network forward pass: h1 = ReLU(adjacency @ features @ weights1 + bias1) output = adjacency @ h1 @ weights2 + bias2 Implementation based on Scorch (Yan et al., 2024).

Authors Tarun Devi <tdevi3@gatech.edu>
ACM CCS
10010147.10010257.10010293.10010294 Computing methodologies › Neural networks 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500
Motivation

Graphs are widely used for abstracting systems of interacting objects, such as social networks (Easley et al., 2010), knowledge graphs (Nickel et al., 2015), molecular graphs (Wu et al., 2018), and biological networks (Barabasi & Oltvai, 2004), as well as for modeling 3D objects (Simonovsky & Komodakis, 2017), manifolds (Bronstein et al., 2017), and source code (Allamanis et al., 2017). Machine learning (ML), especially deep learning, on graphs is an emerging field (Hamilton et al., 2017b; Bronstein et al., 2017). W. Hu et al. To represent a graph, an adjaceny matrix is used, which is inherently sparse.

References
  1. Bobby Yan, Alexander J. Root, Trevor Gale, David Broman, Fredrik Kjolstad. "Scorch: A Library for Sparse Deep Learning", Arxiv, Vol. arXiv:2405.16883, 2024, URL: https://anonymous.4open.science/r/scorch/README.md.
  2. Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta, Jure Leskovec. "Open Graph Benchmark: Datasets for Machine Learning on Graphs", Arxiv, Vol. arXiv:2005.00687, 2020, URL: https://arxiv.org/abs/2005.00687.
  3. Thomas N. Kipf, Max Welling. "Semi-Supervised Classification with Graph Convolutional Networks", Arxiv, Vol. arXiv:1609.02907, 2016, URL: https://arxiv.org/abs/1609.02907.

Input generators (3)

GCN Test Input Generator

Small inlined GCN forward-pass examples.

Authors Tarun Devi <tdevi3@gatech.edu>
Motivation

Uses small graph examples to verify the GCN forward pass.

References
  1. Bobby Yan, Alexander J. Root, Trevor Gale, David Broman, Fredrik Kjolstad. "Scorch: A Library for Sparse Deep Learning", Arxiv, Vol. arXiv:2405.16883, 2024, URL: https://anonymous.4open.science/r/scorch/README.md.
  2. Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta, Jure Leskovec. "Open Graph Benchmark: Datasets for Machine Learning on Graphs", Arxiv, Vol. arXiv:2005.00687, 2020, URL: https://arxiv.org/abs/2005.00687.
  3. Thomas N. Kipf, Max Welling. "Semi-Supervised Classification with Graph Convolutional Networks", Arxiv, Vol. arXiv:1609.02907, 2016, URL: https://arxiv.org/abs/1609.02907.
Graph Convolutional Network Weights

Generates random weights for a 2-layer Graph Convolutional Network.

Authors Tarun Devi <tdevi3@gatech.edu>
Motivation

Graphs are widely used for abstracting systems of interacting objects, such as social networks (Easley et al., 2010), knowledge graphs (Nickel et al., 2015), molecular graphs (Wu et al., 2018), and biological networks (Barabasi & Oltvai, 2004), as well as for modeling 3D objects (Simonovsky & Komodakis, 2017), manifolds (Bronstein et al., 2017), and source code (Allamanis et al., 2017). Machine learning (ML), especially deep learning, on graphs is an emerging field (Hamilton et al., 2017b; Bronstein et al., 2017). W. Hu et al. To represent a graph, an adjaceny matrix is used, which is inherently sparse.

References
  1. Bobby Yan, Alexander J. Root, Trevor Gale, David Broman, Fredrik Kjolstad. "Scorch: A Library for Sparse Deep Learning", Arxiv, Vol. arXiv:2405.16883, 2024, URL: https://anonymous.4open.science/r/scorch/README.md.
  2. Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta, Jure Leskovec. "Open Graph Benchmark: Datasets for Machine Learning on Graphs", Arxiv, Vol. arXiv:2005.00687, 2020, URL: https://arxiv.org/abs/2005.00687.
Open Graph Benchmark GCN Inputs

Loads full OGB node-property graphs for 2-layer GCN inference.

Authors Tarun Devi <tdevi3@gatech.edu>
Motivation

Uses complete real-world node features and graph structure from the Open Graph Benchmark instead of synthesized GCN inputs. SAPS caching is disabled because its JSON/hex representation would expand these very large graphs substantially; OGB maintains the source-data cache instead.

References
  1. Bobby Yan, Alexander J. Root, Trevor Gale, David Broman, Fredrik Kjolstad. "Scorch: A Library for Sparse Deep Learning", Arxiv, Vol. arXiv:2405.16883, 2024, URL: https://anonymous.4open.science/r/scorch/README.md.
  2. Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta, Jure Leskovec. "Open Graph Benchmark: Datasets for Machine Learning on Graphs", Arxiv, Vol. arXiv:2005.00687, 2020, URL: https://arxiv.org/abs/2005.00687.
  3. Thomas N. Kipf, Max Welling. "Semi-Supervised Classification with Graph Convolutional Networks", Arxiv, Vol. arXiv:1609.02907, 2016, URL: https://arxiv.org/abs/1609.02907.
Graph Convolutional Network Inference

Benchmarks 2-layer GCN training loop (forward, backward, weight updates).

Each iteration: Forward pass: Z1 = A @ X H1_pre = Z1 @ W1 + b1 H1 = ReLU(H1_pre) Z2 = A @ H1 Y = Z2 @ W2 + b2

Backward pass (MSE loss):
    dY = (2/N) * (Y - T)
    dW2 = Z2.T @ dY
    db2 = sum(dY, axis=0)
    dZ2 = dY @ W2.T
    dH1 = A.T @ dZ2
    dH1_pre = dH1 * (H1_pre > 0)
    dW1 = Z1.T @ dH1_pre
    db1 = sum(dH1_pre, axis=0)

Weight updates:
    W1 = W1 - lr * dW1
    b1 = b1 - lr * db1
    W2 = W2 - lr * dW2
    b2 = b2 - lr * db2
Authors Tarun Devi <tdevi3@gatech.edu>
ACM CCS
10010147.10010257.10010293.10010294 Computing methodologies › Neural networks 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500
Motivation

Graphs are widely used for abstracting systems of interacting objects, such as social networks (Easley et al., 2010), knowledge graphs (Nickel et al., 2015), molecular graphs (Wu et al., 2018), and biological networks (Barabasi & Oltvai, 2004), as well as for modeling 3D objects (Simonovsky & Komodakis, 2017), manifolds (Bronstein et al., 2017), and source code (Allamanis et al., 2017). Machine learning (ML), especially deep learning, on graphs is an emerging field (Hamilton et al., 2017b; Bronstein et al., 2017). W. Hu et al. To represent a graph, an adjaceny matrix is used, which is inherently sparse.

References
  1. Bobby Yan, Alexander J. Root, Trevor Gale, David Broman, Fredrik Kjolstad. "Scorch: A Library for Sparse Deep Learning", Arxiv, Vol. arXiv:2405.16883, 2024, URL: https://anonymous.4open.science/r/scorch/README.md.
  2. Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta, Jure Leskovec. "Open Graph Benchmark: Datasets for Machine Learning on Graphs", Arxiv, Vol. arXiv:2005.00687, 2020, URL: https://arxiv.org/abs/2005.00687.

Input generators (3)

GCN Backward Test Input Generator

Small inlined GCN training examples.

Authors Tarun Devi <tdevi3@gatech.edu>
Motivation

Uses small graph examples to verify the GCN training loop.

References
  1. Bobby Yan, Alexander J. Root, Trevor Gale, David Broman, Fredrik Kjolstad. "Scorch: A Library for Sparse Deep Learning", Arxiv, Vol. arXiv:2405.16883, 2024, URL: https://anonymous.4open.science/r/scorch/README.md.
  2. Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta, Jure Leskovec. "Open Graph Benchmark: Datasets for Machine Learning on Graphs", Arxiv, Vol. arXiv:2005.00687, 2020, URL: https://arxiv.org/abs/2005.00687.
Graph Convolutional Network Weights

Generates random weights for a 2-layer Graph Convolutional Network.

Authors Tarun Devi <tdevi3@gatech.edu>
Motivation

Graphs are widely used for abstracting systems of interacting objects, such as social networks (Easley et al., 2010), knowledge graphs (Nickel et al., 2015), molecular graphs (Wu et al., 2018), and biological networks (Barabasi & Oltvai, 2004), as well as for modeling 3D objects (Simonovsky & Komodakis, 2017), manifolds (Bronstein et al., 2017), and source code (Allamanis et al., 2017). Machine learning (ML), especially deep learning, on graphs is an emerging field (Hamilton et al., 2017b; Bronstein et al., 2017). W. Hu et al. To represent a graph, an adjaceny matrix is used, which is inherently sparse.

References
  1. Bobby Yan, Alexander J. Root, Trevor Gale, David Broman, Fredrik Kjolstad. "Scorch: A Library for Sparse Deep Learning", Arxiv, Vol. arXiv:2405.16883, 2024, URL: https://anonymous.4open.science/r/scorch/README.md.
  2. Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta, Jure Leskovec. "Open Graph Benchmark: Datasets for Machine Learning on Graphs", Arxiv, Vol. arXiv:2005.00687, 2020, URL: https://arxiv.org/abs/2005.00687.
Open Graph Benchmark GCN Backward Inputs

Loads full OGB node-property graphs for 2-layer GCN training.

Authors Tarun Devi <tdevi3@gatech.edu>
Motivation

Uses complete real-world node features, graph structure, and labels from the Open Graph Benchmark for the GCN training loop. SAPS caching is disabled for these benchmark-specific training tensors because the shared OGB shell generator caches the prepared source graph.

References
  1. Bobby Yan, Alexander J. Root, Trevor Gale, David Broman, Fredrik Kjolstad. "Scorch: A Library for Sparse Deep Learning", Arxiv, Vol. arXiv:2405.16883, 2024, URL: https://anonymous.4open.science/r/scorch/README.md.
  2. Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta, Jure Leskovec. "Open Graph Benchmark: Datasets for Machine Learning on Graphs", Arxiv, Vol. arXiv:2005.00687, 2020, URL: https://arxiv.org/abs/2005.00687.
GMRES Iterative Solver

This code is implements the GMRES algorithm for solving indefinite and non-symmetric linear systems. The algorithm follows the Arnoldi iteration process where a Krylov matrix is maintained at each iteration. Starting with an initial guess and the residual for that guess, the matrix A is dot producted with the previous residual to obtain the next basis vector. This algorithm also uses a similar method to Gram-Schmidt to ensure that the Kyrlov matrix is orthogonal. I also maintain an upper Hessenberg matrix which keeps track of the dot products between different basis vectors and the norm of the new basis vector. The Hessenberg matrix follows the property: Q_n * A = Q_(n+1) * H_n where Q is the Krylov matrix. This matrix allows for a simplified least squares problem to be solved at each iteration so that the residual is minimized at each step. My implementation restarts the Kyrlov matrix every 50 iterations and will end when the current residual / initial residual is less than the tolerance level.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
ACM CCS
10002950.10003705.10003707 Mathematics of computing › Solvers 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500
Motivation

GMRES is the most widely used and effective method for solving linear systems that are indefinite, non-symmetric, and are sparse in nature.

References
  1. . "", URL: https://www.netlib.org/templates/templates.pdf.
  2. . "", URL: https://www.netlib.org/utk/people/JackDongarra/PAPERS/sparse-bench.pdf.

Input generators (2)

GMRES Test Data Generator

Inlined matrices and seeded systems from the GMRES pytest examples.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
Motivation

Uses small inlined linear systems to verify GMRES convergence.

References
  1. . "", URL: https://www.netlib.org/templates/templates.pdf.
  2. . "", URL: https://www.netlib.org/utk/people/JackDongarra/PAPERS/sparse-bench.pdf.
GMRES SuiteSparse Data Generator

Accesses and prepares sparse matrices from SuiteSparse for GMRES.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
Motivation

GMRES is the most widely used and effective method for solving linear systems that are indefinite, non-symmetric, and sparse.

References
  1. . "", URL: https://www.netlib.org/templates/templates.pdf.
High-Order SVD (Tucker Decomposition)

This code implements the Tucker Decomposition or HOSVD algorithm for decomposing high-order tensors into a core-tensor that can be projected onto factor matrices along each mode. A typical 3D tensor will have 3 modes (row, column, and frontal) and thus 3 factor matrices. The algorithm starts by finding the initial factor matrices by performing SVD on matrix unfoldings along each mode. Certain columns in these factor matrices are selected based on the ranks parameter. Then, the algorithm iteratively updates each factor matrix by projecting the original tensor onto other factor matrices. The iteration continues until max iterations is reached or the change in factor matrices becomes insignificant. The resulting factor matrices and the core tensor are returned by the benchmark function.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
ACM CCS
10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500 10010147.10010257.10010293.10010309 Computing methodologies › Factorization methods 500
Motivation

Tensor decomposition are essential for efficiently analyzing multi-dimensional data and can cut out noise during preprocessing. Tensor decomposition has applications in signal processing, computer vision, numerical linear algebra, and many other fields. HOSVD or Tucker Decomposition is one of the most widely used methods for tensor decomposition on high-level tensors, which are tensors with 3 or more dimensions.

References
  1. Tamara G. Kolda, Brett W. Bader. "Tensor Decompositions and Applications", SIAM Review, Society for Industrial & Applied Mathematics (SIAM), Vol. 51, No. 3, pp. 455-500, 2009, URL: https://doi.org/10.1137/07070111x, DOI: 10.1137/07070111x.
  2. Evgeni Rustik, Emiliya Viktoriia, Aliona Tatyana. "Harnessing Tensor Decomposition for High-Dimensional Machine Learning", Institute of Electrical and Electronics Engineers (IEEE), 2025, URL: https://doi.org/10.36227/techrxiv.174417403.38431928/v1, DOI: 10.36227/techrxiv.174417403.38431928/v1.

Input generators (3)

Dense Low-Rank HOSVD Input Generator

Generates dense low-rank tensors using random factor matrices.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
Motivation

The data for this benchmark was created by randomly generating factor matrices that were both sparse and dense. These factor matrices were used to construct a factorizable matrix.

References
  1. Tamara G. Kolda, Brett W. Bader. "Tensor Decompositions and Applications", SIAM Review, Society for Industrial & Applied Mathematics (SIAM), Vol. 51, No. 3, pp. 455-500, 2009, URL: https://doi.org/10.1137/07070111x, DOI: 10.1137/07070111x.
  2. Evgeni Rustik, Emiliya Viktoriia, Aliona Tatyana. "Harnessing Tensor Decomposition for High-Dimensional Machine Learning", Institute of Electrical and Electronics Engineers (IEEE), 2025, URL: https://doi.org/10.36227/techrxiv.174417403.38431928/v1, DOI: 10.36227/techrxiv.174417403.38431928/v1.
Sparse Low-Rank HOSVD Input Generator

Generates sparse low-rank tensors using random factor matrices.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
Motivation

The data for this benchmark was created by randomly generating factor matrices that were both sparse and dense. These factor matrices were used to construct a factorizable matrix.

References
  1. Tamara G. Kolda, Brett W. Bader. "Tensor Decompositions and Applications", SIAM Review, Society for Industrial & Applied Mathematics (SIAM), Vol. 51, No. 3, pp. 455-500, 2009, URL: https://doi.org/10.1137/07070111x, DOI: 10.1137/07070111x.
  2. Evgeni Rustik, Emiliya Viktoriia, Aliona Tatyana. "Harnessing Tensor Decomposition for High-Dimensional Machine Learning", Institute of Electrical and Electronics Engineers (IEEE), 2025, URL: https://doi.org/10.36227/techrxiv.174417403.38431928/v1, DOI: 10.36227/techrxiv.174417403.38431928/v1.
FROSTT Sparse Tensor Generator for HOSVD

Real sparse tensors downloaded from FROSTT (frostt.io), decomposed directly. No dense reconstruction check is performed since these tensors are stored in genuinely sparse (COO) form.

Motivation

Real sparse tensors from FROSTT exercise HOSVD’s per-mode unfolding against genuinely irregular sparsity patterns. The larger 4D and 5D tensors can have mode unfoldings that are heavy to densify for SVD with the current algorithm, so select datasets by name rather than running this whole generator unfiltered.

References
  1. Shaden Smith, Jee W. Choi, Jiajia Li, Richard Vuduc, Jongsoo Park, Xing Liu, George Karypis. "FROSTT: The Formidable Repository of Open Sparse Tensors and Tools", 2017, URL: http://frostt.io/.
Preconditioned Conjugate Gradient (Jacobi)

Hand-written code modelling the algorithm structure outlined in https://www.netlib.org/templates/templates.pdf Page 13.

Authors Benjamin Berol <bberol3@gatech.edu>
ACM CCS
10002950.10003705.10003707 Mathematics of computing › Solvers 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500
Motivation

“The preconditioned conjugate gradient method is well established for solving linear systems of equations that arise from the discretization of partial differential equations. Point and block Jacobi preconditioning are both common preconditioning techniques.” Sparsity enhances the functionality of both the solver and the preconditioner. Similar to normal conjugate gradient, the SpMV done once per iteration reduces complexity from O(n^2) to O(nnz). Furthermore, the sparse block Jacobi preconditioner avoids filling in all the 0s around the blocks, which prevents memory overhead and keeps the per-iteration block solve cost proportional to the block size instead of the full matrix dimension.

References
  1. M. Hegland, P. E. Saylor. "Block Jacobi Preconditioning of the Conjugate Gradient Method on a Vector Processor", International Journal of Computer Mathematics, Vol. 44, No. 1-4, pp. 71-89, 1992.
  2. . "", URL: https://www.netlib.org/templates/templates.pdf.

Input generators (1)

Jacobi CG SuiteSparse Data Generator

Data collected from SuiteSparse Matrix Collection consisting of symmetric positive definite matrices, particularly those with a low convergence criteria.

Authors Benjamin Berol <bberol3@gatech.edu>
Motivation

“The preconditioned conjugate gradient method is well established for solving linear systems of equations that arise from the discretization of partial differential equations. Point and block Jacobi preconditioning are both common preconditioning techniques.” Sparsity enhances the functionality of both the solver and the preconditioner. Similar to normal conjugate gradient, the SpMV done once per iteration reduces complexity from O(n^2) to O(nnz). Furthermore, the sparse block Jacobi preconditioner avoids filling in all the 0s around the blocks, which prevents memory overhead and keeps the per-iteration block solve cost proportional to the block size instead of the full matrix dimension.

References
  1. M. Hegland, P. E. Saylor. "Block Jacobi Preconditioning of the Conjugate Gradient Method on a Vector Processor", International Journal of Computer Mathematics, Vol. 44, No. 1-4, pp. 71-89, 1992.
  2. . "", URL: https://www.netlib.org/templates/templates.pdf.
Jacobi Iterative Solver

Solves linear systems using the Jacobi iterative method.

Authors Benjamin Berol <bberol3@gatech.edu>
ACM CCS
10002950.10003705.10003707 Mathematics of computing › Solvers 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500
Motivation

Sparsity makes the Jacobi method efficient because each update only needs to access the nonzero entries, reducing complexity from O(mn) to O(nnz)

References
  1. J. Cockayne, I. C. F. Ipsen, C. J. Oates, T. W. Reid. "Probabilistic iterative methods for linear systems", J. Mach. Learn. Res., Vol. 22, pp. 1-34, 2021, URL: https://www.jmlr.org/papers/volume22/21-0031/21-0031.pdf.

Input generators (2)

Jacobi Test Data Generator

Inlined matrices from the Jacobi pytest examples.

Authors Benjamin Berol <bberol3@gatech.edu>
Motivation

Uses small inlined linear systems to verify solver correctness.

Jacobi SuiteSparse Data Generator

Accesses and prepares symmetric positive definite matrices from SuiteSparse.

Authors Benjamin Berol <bberol3@gatech.edu>
Motivation

Data collected from SuiteSparse Matrix Collection consisting of symmetric positive definite matrices whose Jacobi iteration matrices have spectral radius < 1.

Johnson-Lindenstrauss Approximate Nearest Neighbor

Benchmarks Johnson-Lindenstrauss projection followed by k-nearest-neighbor ranking in projected space.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
ACM CCS
10002951.10003317.10003347.10003356 Information systems › Clustering and classification 500 10002951.10003317.10003347.10003350 Information systems › Recommender systems 300 10002951.10003317 Information systems › Information retrieval 500 Computing methodologies › Machine learning algorithms 10010147.10010257.10010258.10010260.10003697 Computing methodologies › Cluster analysis 500 10010147.10010257.10010258.10010260.10010271 Computing methodologies › Dimensionality reduction and manifold learning 500 Mathematics of computing › Dimensionality reduction Theory of computation › Nearest neighbor algorithms
Motivation

The purpose of this is to create python tests that are for RLA methods. Specifically, I will first show the application of the JL Lemma for NN. My goal is to write benchmarks on applications of RNLA, for graph algorithms, PDEs, and Scientific Machine Learning

References
  1. scikit-learn contributors. "Random projection implementation reference", URL: https://github.com/scikit-learn/scikit-learn/blob/d3898d9d57aeb1e960d266613a2e31b07bca39d7/sklearn/random_projection.py#L615.
  2. Riley Murray, James Demmel, Michael W. Mahoney, N. Benjamin Erichson, Maksim Melnichenko, Osman Asif Malik, Laura Grigori, Piotr Luszczek, Michał Dereziński, Miles E. Lopes, Tianyu Liang, Hengrui Luo, Jack Dongarra. "Randomized Numerical Linear Algebra : A Perspective on the Field With an Eye to Software", Arxiv, Vol. arXiv:2302.11474, 2023, URL: https://arxiv.org/abs/2302.11474.

Input generators (4)

JL Projection Test Input Generator

Small JL approximate nearest-neighbor example.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>, Willow Ahrens <ahrens@gatech.edu>
Motivation

Provide a small JL ANN example for benchmark correctness checks.

References
  1. Riley Murray, James Demmel, Michael W. Mahoney, N. Benjamin Erichson, Maksim Melnichenko, Osman Asif Malik, Laura Grigori, Piotr Luszczek, Michał Dereziński, Miles E. Lopes, Tianyu Liang, Hengrui Luo, Jack Dongarra. "Randomized Numerical Linear Algebra : A Perspective on the Field With an Eye to Software", 2023, URL: https://arxiv.org/abs/2302.11474.
  2. scikit-learn contributors. "Random projection implementation reference", URL: https://github.com/scikit-learn/scikit-learn/blob/d3898d9d57aeb1e960d266613a2e31b07bca39d7/sklearn/random_projection.py#L615.
JL Projection Input Generator

Generates uniformly random data/query matrices and sparse random projection matrices for JL approximate nearest-neighbor.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>, Willow Ahrens <ahrens@gatech.edu>
Motivation

Sparse Johnson-Lindenstrauss projection is a fundamental primitive in randomized numerical linear algebra, and is used in many applications such as approximate nearest neighbor search.

References
  1. Riley Murray, James Demmel, Michael W. Mahoney, N. Benjamin Erichson, Maksim Melnichenko, Osman Asif Malik, Laura Grigori, Piotr Luszczek, Michał Dereziński, Miles E. Lopes, Tianyu Liang, Hengrui Luo, Jack Dongarra. "Randomized Numerical Linear Algebra : A Perspective on the Field With an Eye to Software", 2023, URL: https://arxiv.org/abs/2302.11474.
  2. scikit-learn contributors. "Random projection implementation reference", URL: https://github.com/scikit-learn/scikit-learn/blob/d3898d9d57aeb1e960d266613a2e31b07bca39d7/sklearn/random_projection.py#L615.
JL ANN OpenML Generator

Loads OpenML image datasets for JL approximate nearest-neighbor.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
Motivation

MNIST and CIFAR-10 provide dense image feature matrices from OpenML for approximate nearest-neighbor search.

References
  1. Yann LeCun, Léon Bottou, Yoshua Bengio, Patrick Haffner. "Gradient-Based Learning Applied to Document Recognition", Proceedings of the IEEE, 1998, URL: http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf.
  2. Alex Krizhevsky. "Learning Multiple Layers of Features from Tiny Images", 2009, URL: https://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf.
JL ANN Netflix Generator

Loads Netflix Prize ratings for JL approximate nearest-neighbor.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
Motivation

The Netflix Prize dataset provides a ~480K users × 17,770 movies sparse ratings matrix. Uses sparse JL projection due to the dataset’s sparsity.

References
  1. Vini Hong, Anastasios Tsamis. "Use of KNN for the Netflix Prize", Stanford CS229, URL: https://cs229.stanford.edu/proj2008/HongTsamis-UseOfKNNForTheNetflixPrize.pdf.
1D Finite Difference (Linear Advection flux)

The purpose of this is to analyze the importance of numerical methods for PDEs, and applications sparse array theory into these method, through the form of benchmarks. This paticular benchmark analyzes the use of the Lax–Friedrichs method for solving nonlinear hyberbolic PDEs, with numerical stability and accuracy not seen in FTCS. This benchmark will run a simulation using both Lax–Friedrichs and analyze core concepts such as numerical stability, conservation law consistency, etc.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
ACM CCS
10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10010147.10010341.10010349.10010357 Computing methodologies › Continuous simulation 500 10002950.10003714.10003715.10003750 Mathematics of computing › Discretization 500
Motivation

Updates are done using a matrix representation, to updates the spatial coordinates for time t.

References
  1. Jacob Laurel, Ignacio Laguna, Jan Hückelheim. "Synthesizing Sound and Precise Abstract Transformers for Nonlinear Hyperbolic PDE Solvers.", Proceedings of the ACM on Programming Languages, Association for Computing Machinery (ACM), Vol. 9, No. OOPSLA2, pp. 1063-1091, 2025, URL: https://doi.org/10.1145/3763088, DOI: 10.1145/3763088.

Input generators (1)

Finite Difference Data Generator

The finite difference generator uses a finite difference grid of500 by 500 cells, matching roughly the scale of areal finite difference problem, Norris/torso3 from UF Matrix Collection

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
Motivation

For linear advection, updates are done using a sparse matrix representation, to updates the spatial coordinates for time t.

References
  1. Timothy A. Davis, Yifan Hu. "The university of Florida sparse matrix collection", ACM Transactions on Mathematical Software, Association for Computing Machinery (ACM), Vol. 38, No. 1, pp. 1-25, 2011, URL: https://doi.org/10.1145/2049662.2049663, DOI: 10.1145/2049662.2049663.
2D Finite Difference (Linear Advection flux)

The purpose of this is to analyze the importance of numerical methods for PDEs, and applications sparse array theory into these method, through the form of benchmarks. This paticular benchmark analyzes the use of the Lax–Friedrichs method for solving nonlinear hyberbolic PDEs, with numerical stability and accuracy not seen in FTCS. This benchmark will run a simulation using both Lax–Friedrichs and analyze core concepts such as numerical stability, conservation law consistency, etc.

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
ACM CCS
10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10010147.10010341.10010349.10010357 Computing methodologies › Continuous simulation 500 10002950.10003714.10003715.10003750 Mathematics of computing › Discretization 500
Motivation

Updates are done using a matrix representation, to updates the spatial coordinates for time t.

References
  1. Jacob Laurel, Ignacio Laguna, Jan Hückelheim. "Synthesizing Sound and Precise Abstract Transformers for Nonlinear Hyperbolic PDE Solvers.", Proceedings of the ACM on Programming Languages, Association for Computing Machinery (ACM), Vol. 9, No. OOPSLA2, pp. 1063-1091, 2025, URL: https://doi.org/10.1145/3763088, DOI: 10.1145/3763088.

Input generators (1)

Finite Difference Data Generator

The finite difference generator uses a finite difference grid of500 by 500 cells, matching roughly the scale of areal finite difference problem, Norris/torso3 from UF Matrix Collection

Authors Vilohith Gokarakonda <vgokarakonda3@gatech.edu>
Motivation

For linear advection, updates are done using a sparse matrix representation, to updates the spatial coordinates for time t.

References
  1. Timothy A. Davis, Yifan Hu. "The university of Florida sparse matrix collection", ACM Transactions on Mathematical Software, Association for Computing Machinery (ACM), Vol. 38, No. 1, pp. 1-25, 2011, URL: https://doi.org/10.1145/2049662.2049663, DOI: 10.1145/2049662.2049663.
LSQR Iterative Solver

Hand written code based on the algorithm defined in Paige and Saunders’ LSQR paper. Implementation structure was also based around the work of Michael Friedlander and Dominique Orban.

Authors Benjamin Berol <bberol3@gatech.edu>
ACM CCS
10002950.10003705.10003707 Mathematics of computing › Solvers 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500
Motivation

“[LSQR] is analytically equivalent to the standard method of conjugate gradients, but possesses more favorable numerical properties… Numerical tests are described comparing LSQR with several other conjugate-gradient algorithms, indicating that LSQR is the most reliable algorithm when A is ill-conditioned.” C. C. Paige and M. A. Saunders, “LSQR: An Algorithm for Sparse Linear Equations and Sparse Least Squares,” ACM Transactions on Mathematical Software, vol. 8, no. 1, 1982, p. 43. The main computation of the algorithm is 2 SpMVs per iteration Av and ATu. Through sparsity the computation is lowered from two operations of O(n^2) to two O(nnz). This efficiency allows the algorithm to handle massive, ill-conditioned systems with very low storage requirements.

References
  1. . "", URL: https://web.stanford.edu/group/SOL/software/lsqr/lsqr-toms82a.pdf.
  2. . "", URL: https://github.com/PythonOptimizers/pykrylov/blob/master/pykrylov/lls/lsqr.py#L293.

Input generators (2)

LSQR Test Data Generator

Inlined matrices from the LSQR pytest examples.

Authors Benjamin Berol <bberol3@gatech.edu>
Motivation

Uses small inlined least-squares systems to verify convergence.

References
  1. . "", URL: https://web.stanford.edu/group/SOL/software/lsqr/lsqr-toms82a.pdf.
  2. . "", URL: https://github.com/PythonOptimizers/pykrylov/blob/master/pykrylov/lls/lsqr.py#L293.
LSQR SuiteSparse Data Generator

Data collected from SuiteSparse Matrix Collection consisting of square and rectangular matrices. Following the methodology of Paige and Saunders the problems span a range of convergence criteria from well-conditioned to extremely ill-conditioned.

Authors Benjamin Berol <bberol3@gatech.edu>
Motivation

Data collected from SuiteSparse Matrix Collection consisting of square and rectangular matrices. Following the methodology of Paige and Saunders the problems span a range of convergence criteria from well-conditioned to extremely ill-conditioned.

References
  1. . "", URL: https://web.stanford.edu/group/SOL/software/lsqr/lsqr-toms82a.pdf.
  2. . "", URL: https://github.com/PythonOptimizers/pykrylov/blob/master/pykrylov/lls/lsqr.py#L293.
MRI Edge Detection

What does this code do: This code implements a masked edge detection algorithm on a 2D MRI image. The benchmark performs boolean threshold mask operations using t1=75% and t2=80% thresholds and a Region-of-Interest (ROI) mask.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
ACM CCS
10010147.10010371.10010382.10010383 Computing methodologies › Image processing 500 10010147.10010371.10010382.10010236 Computing methodologies › Computational photography 500 10010405.10010444.10010087.10010096 Applied computing › Imaging 500
Motivation

Motivation: Edge detection is a crucial task that is a part of image processing pipelines. It is often the case that images and scans in the medical field rquire post-processing to extract useful information. In this case, we are using a 2D MRI image to produce thresholded edge maps. Since medical images are large and often contain redundant information, it is important to process them efficiently. The redundancy of MRI makes them a good candidate for sparse processing.

References
  1. . "", URL: https://commit.csail.mit.edu/papers/2021/oopsla2021-array-programming.pdf.
  2. . "", URL: https://www.researchgate.net/publication/310464068_EDGE_DETECTION_OF_MRI_IMAGES_-A_REVIEW.
  3. . "", URL: https://pmc.ncbi.nlm.nih.gov/articles/PMC4948115/.

Input generators (2)

Masked MRI Edge Test Data Generator

Small deterministic masked MRI examples.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
Motivation

Provide small masked MRI examples for correctness checks.

References
  1. . "", URL: https://commit.csail.mit.edu/papers/2021/oopsla2021-array-programming.pdf.
  2. . "", URL: https://www.researchgate.net/publication/310464068_EDGE_DETECTION_OF_MRI_IMAGES_-A_REVIEW.
  3. . "", URL: https://pmc.ncbi.nlm.nih.gov/articles/PMC4948115/.
Masked MRI Edge Data Generator

Data Generation: I used MRI image data from this Kaggle set: https://www.kaggle.com/navoneel/brain-mri-images-for-brain-tumor-detection . I used a constant edge threshold of 150.0 with all of the images that I used.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
Motivation

Motivation: Edge detection is a crucial task that is a part of image processing pipelines. It is often the case that images and scans in the medical field rquire post-processing to extract useful information. In this case, we are using a 2D MRI image to produce thresholded edge maps. Since medical images are large and often contain redundant information, it is important to process them efficiently. The redundancy of MRI makes them a good candidate for sparse processing.

References
  1. . "", URL: https://commit.csail.mit.edu/papers/2021/oopsla2021-array-programming.pdf.
  2. . "", URL: https://www.researchgate.net/publication/310464068_EDGE_DETECTION_OF_MRI_IMAGES_-A_REVIEW.
  3. . "", URL: https://pmc.ncbi.nlm.nih.gov/articles/PMC4948115/.
Markov Clustering Algorithm

Computes Markov Clustering on a given sparse adjacency matrix. Handwritten code based on the implementation from GuyAllard on github

Authors Prateek Hanumappanahalli <phanumap3@gatech.edu>, Joel Mathew Cherian <jcherian32@gatech.edu>
Motivation

“The Markov Clustering (MCL) algorithm relies heavily on repeated matrix operations, particularly matrix multiplication during the expansion step. Since the efficient execution of matrix-based kernels has been extensively studied in linear algebra, MCL serves as an effective benchmark for evaluating the performance of iterative numerical methods.” The input is a sparse adjacency matrix. The algorithm uses sparse matrix multiplication and element-wise operations repeatedly, so it depends heavily on efficient sparse matrix functions.

References
  1. . "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics, 2011, URL: https://doi.org/10.1137/1.9780898719918, DOI: 10.1137/1.9780898719918.
  2. Guy Allard. "markov_clustering", URL: https://github.com/GuyAllard/markov_clustering.

Input generators (2)

MCL Test Data Generator

Small MCL examples with expected cluster counts.

Authors Prateek Hanumappanahalli <phanumap3@gatech.edu>, Joel Mathew Cherian <jcherian32@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
Motivation

“The Markov Clustering (MCL) algorithm relies heavily on repeated matrix operations, particularly matrix multiplication during the expansion step. Since the efficient execution of matrix-based kernels has been extensively studied in linear algebra, MCL serves as an effective benchmark for evaluating the performance of iterative numerical methods.” The input is a sparse adjacency matrix. The algorithm uses sparse matrix multiplication and element-wise operations repeatedly, so it depends heavily on efficient sparse matrix functions.

References
  1. . "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics, 2011, URL: https://doi.org/10.1137/1.9780898719918, DOI: 10.1137/1.9780898719918.
  2. Guy Allard. "markov_clustering", URL: https://github.com/GuyAllard/markov_clustering.
MCL SuiteSparse Data Generator

Data collected from SuiteSparse Matrix Collection consisting of sparse adjacency matrices used to evaluate graph clustering performance.

Authors Prateek Hanumappanahalli <phanumap3@gatech.edu>, Joel Mathew Cherian <jcherian32@gatech.edu>
Motivation

“The Markov Clustering (MCL) algorithm relies heavily on repeated matrix operations, particularly matrix multiplication during the expansion step. Since the efficient execution of matrix-based kernels has been extensively studied in linear algebra, MCL serves as an effective benchmark for evaluating the performance of iterative numerical methods.” The input is a sparse adjacency matrix. The algorithm uses sparse matrix multiplication and element-wise operations repeatedly, so it depends heavily on efficient sparse matrix functions.

References
  1. . "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics, 2011, URL: https://doi.org/10.1137/1.9780898719918, DOI: 10.1137/1.9780898719918.
  2. Guy Allard. "markov_clustering", URL: https://github.com/GuyAllard/markov_clustering.
Sobel Operator Edge Detection

What does this code do: This code implements a simple edge detection algorithm on a 2D MRI image. The algorithm computes the gradients in the X and Y directions using the concept of a Sobel operator, which is a common method for edge detection. The sobel operator was recreated using array shifts that account for sparse patterns. The magnitude of the gradients is computed and then masked with a threshold to produce a binary edge map.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
Motivation

Motivation: Edge detection is a crucial task that is a part of image processing pipelines. It is often the case that images and scans in the medical field rquire post-processing to extract useful information. In this case, we are using a 2D MRI image to produce thresholded edge maps. Since medical images are large and often contain redundant information, it is important to process them efficiently. The redundancy of MRI makes them a good candidate for sparse processing.

References
  1. . "", URL: https://commit.csail.mit.edu/papers/2021/oopsla2021-array-programming.pdf.
  2. . "", URL: https://www.researchgate.net/publication/310464068_EDGE_DETECTION_OF_MRI_IMAGES_-A_REVIEW.
  3. . "", URL: https://pmc.ncbi.nlm.nih.gov/articles/PMC4948115/.

Input generators (2)

MRI Sobel Edge Test Input Generator

Small deterministic Sobel edge examples with reference outputs.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
Motivation

Provide small Sobel edge examples for benchmark correctness checks.

References
  1. . "", URL: https://commit.csail.mit.edu/papers/2021/oopsla2021-array-programming.pdf.
  2. . "", URL: https://www.researchgate.net/publication/310464068_EDGE_DETECTION_OF_MRI_IMAGES_-A_REVIEW.
  3. . "", URL: https://pmc.ncbi.nlm.nih.gov/articles/PMC4948115/.
MRI Sobel Edge Data Generator

Data Generation: I used MRI image data from this Kaggle set: https://www.kaggle.com/navoneel/brain-mri-images-for-brain-tumor-detection . I used a constant edge threshold of 150.0 with all of the images that I used.

Authors Aadharsh Rajkumar <arajkumar34@gatech.edu>
ACM CCS
10010147.10010371.10010382.10010383 Computing methodologies › Image processing 500 10010147.10010371.10010382.10010236 Computing methodologies › Computational photography 500 10010405.10010444.10010087.10010096 Applied computing › Imaging 500
Motivation

Motivation: Edge detection is a crucial task that is a part of image processing pipelines. It is often the case that images and scans in the medical field rquire post-processing to extract useful information. In this case, we are using a 2D MRI image to produce thresholded edge maps. Since medical images are large and often contain redundant information, it is important to process them efficiently. The redundancy of MRI makes them a good candidate for sparse processing.

References
  1. . "", URL: https://commit.csail.mit.edu/papers/2021/oopsla2021-array-programming.pdf.
  2. . "", URL: https://www.researchgate.net/publication/310464068_EDGE_DETECTION_OF_MRI_IMAGES_-A_REVIEW.
  3. . "", URL: https://pmc.ncbi.nlm.nih.gov/articles/PMC4948115/.
Google Page Rank Algorithm

The out-degree of the adjacency is found by summing columns, giving us the number of outbound links per page. If out-degree is not 0, we divide by k (the number of outbound links). If out-degree is 0, that means the node had no links, so we distribute it evenly among all nodes to preserve probability mass. We then run iteration multiple times so that the PageRank vector converges to its theoretical stationary value.

Authors Aarav Joglekar <ajoglekar32@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
Motivation

Pagerank is included as a common graph algorithm benchmark problem, appearing in the GAP benchmark, for example.

References
  1. Kepner, Jeremy, Gilbert, John. "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics (SIAM), Philadelphia, 2011.
  2. GeeksforGeeks contributors. "Page Rank Algorithm and Implementation", 2025, URL: https://www.geeksforgeeks.org/python/page-rank-algorithm-implementation/.
  3. Sergey Brin, Lawrence Page. "The anatomy of a large-scale hypertextual Web search engine", Computer Networks and ISDN Systems, pp. 107-117, 1998, URL: https://doi.org/10.1016/S0169-7552(98)00110-X, DOI: 10.1016/S0169-7552(98)00110-X.

Input generators (3)

PageRank Test Input Generator

Small deterministic PageRank examples.

Motivation

Provide small graph examples for PageRank correctness checks.

PageRank Input Generator

Input generator for PageRank benchmarks.

Motivation

Generate sparse graph inputs for PageRank.

PageRank GAP Input Generator

Input GAP generator for PageRank benchmarks.

Motivation

Generate GAP graph inputs for PageRank.

References
  1. Scott Beamer, Krste Asanović, David Patterson. "The GAP Benchmark Suite", 2015, URL: https://arxiv.org/abs/1508.03619.
Particle Simulation

Benchmark implementation for Particule_Simulation_Algorithm using sparse array operations. This benchmark evaluates performance characteristics and numerical properties.

Authors Richard Wan <rwan41@gatech.edu>
ACM CCS
10010147.10010371.10010382.10010383 Computing methodologies › Image processing 500 10010147.10010371.10010382.10010236 Computing methodologies › Computational photography 500 10010405.10010444.10010087.10010096 Applied computing › Imaging 500
Motivation

The particle simulation is used to model particle interaction present in mechanics, biology, astronomy, and other fields on a simplitic level.

References
  1. CS 267 Staff. "Particle Simulation Algorithm", URL: https://github.com/Berkeley-CS267/hw2-1/blob/master/serial.cpp.

Input generators (4)

Particle Simulation Test Input Generator

Small deterministic particle simulation examples using the CS267-style repulsive force parameters: cutoff 0.01, softening 0.0001 from the CS267 min_r = cutoff / 100 constant, dt 0.0005, G 1.0, and scalar mass tensor 0.01.

Authors Richard Wan <rwan41@gatech.edu>
Motivation

Provide small particle examples for benchmark correctness checks while exercising the same CS267-derived cutoff, minimum-radius softening, time step, and unit gravitational constant used by the synthetic and EWAP repulsive-force datasets.

References
  1. CS 267 Staff. "Particle Simulation Algorithm", URL: https://github.com/Berkeley-CS267/hw2-1/blob/master/serial.cpp.
Synthetic Berkeley CS267 Particle Generator

Generates synthetic initial conditions for particle simulation benchmarks. The force parameters follow the Berkeley CS267 homework constants where available: cutoff 0.01, softening 0.0001 as the benchmark name for CS267 min_r = cutoff / 100, dt 0.0005, and a scalar mass tensor 0.01; G 1.0 is used as the benchmark unit scale.

Motivation

The CS267 homework initializes particles on a shuffled regular grid with random velocities so baseline implementations can focus on the short-range force calculation. Its cutoff, min_r, density, and time step constants drive this generator; min_r is recorded as softening so the benchmark can share one radius-regularization parameter across repulsive and gravitational datasets.

References
  1. CS 267 Staff. "CS267 HW2-1: Parallelizing a Particle Simulation", URL: https://sites.google.com/lbl.gov/cs267-spr2025/hw-2-1.
  2. CS 267 Staff. "CS267 HW2-1 Starter Code", URL: https://github.com/Berkeley-CS267/hw2-1.
ETH EWAP Particle Simulation Generator

Loads ETH EWAP pedestrian trajectories as particle initial conditions. EWAP supplies positions and velocities only, so this generator uses the same CS267-style repulsive parameters as the synthetic dataset: cutoff 0.01, softening 0.0001, dt 0.0005, G 1.0, and scalar mass tensor 0.01.

Motivation

Pedestrian trajectories provide real-world 2D interaction data that can exercise the particle simulation benchmark without changing the source coordinate scale. Because the source data is not a physical N-body snapshot, the interaction parameters intentionally mirror the CS267-derived repulsive-force setup rather than being inferred from the EWAP files.

References
  1. OpenTraj Contributors. "OpenTraj ETH Dataset", URL: https://github.com/crowdbotp/OpenTraj/tree/master/datasets/ETH.
Particle Simulation Real Dataset Generator

Loads real-world initial conditions for particle simulation benchmarks. NEMO datasets use source mass columns, unscaled archive coordinates, Newtonian gravity with G 1.0 in N-body units, dt 1/32, softening 0.05, and source-scale cutoffs selected for the benchmark datasets.

Motivation

The particle simulation is used to model particle interaction present in mechanics, biology, astronomy, and other fields on a simplitic level. For NEMO snapshots, masses come from the archive tables; G 1.0 follows the usual dimensionless N-body unit convention, softening 0.05 follows the NEMO eps-style softened-gravity setting, and cutoffs are chosen against the preserved source coordinate scale.

References
  1. Peter Teuben. "N-Body Data Archive", URL: https://carma.astro.umd.edu/nemo/archive/.
  2. M. C. Plummer. "On the problem of distribution in globular star clusters", Monthly Notices of the Royal Astronomical Society, Vol. 71, pp. 460, 1911.
  3. John Dubinski, J. Christopher Mihos, Lars Hernquist. "The return of the tidal tails in NGC 7252", The Astrophysical Journal, Vol. 462, pp. 576, 1996.
Preconditioned Conjugate Gradient (Block Jacobi)

Hand-written code modelling the algorithm structure outlined in https://www.netlib.org/templates/templates.pdf Page 13.

Authors Benjamin Berol <bberol3@gatech.edu>
ACM CCS
10002950.10003705.10003707 Mathematics of computing › Solvers 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500
Motivation

“The preconditioned conjugate gradient method is well established for solving linear systems of equations that arise from the discretization of partial differential equations. Point and block Jacobi preconditioning are both common preconditioning techniques.” Sparsity enhances the functionality of both the solver and the preconditioner. Similar to normal conjugate gradient, the SpMV done once per iteration reduces complexity from O(n^2) to O(nnz). Furthermore, the sparse block Jacobi preconditioner avoids filling in all the 0s around the blocks, which prevents memory overhead and keeps the per-iteration block solve cost proportional to the block size instead of the full matrix dimension.

References
  1. M. Hegland, P. E. Saylor. "Block Jacobi Preconditioning of the Conjugate Gradient Method on a Vector Processor", International Journal of Computer Mathematics, Vol. 44, No. 1-4, pp. 71-89, 1992.
  2. . "", URL: https://www.netlib.org/templates/templates.pdf.

Input generators (1)

Block Jacobi CG SuiteSparse Data Generator

Data collected from SuiteSparse Matrix Collection consisting of symmetric positive definite matrices, particularly those with a low convergence criteria.

Authors Benjamin Berol <bberol3@gatech.edu>
Motivation

“The preconditioned conjugate gradient method is well established for solving linear systems of equations that arise from the discretization of partial differential equations. Point and block Jacobi preconditioning are both common preconditioning techniques.” Sparsity enhances the functionality of both the solver and the preconditioner. Similar to normal conjugate gradient, the SpMV done once per iteration reduces complexity from O(n^2) to O(nnz). Furthermore, the sparse block Jacobi preconditioner avoids filling in all the 0s around the blocks, which prevents memory overhead and keeps the per-iteration block solve cost proportional to the block size instead of the full matrix dimension.

References
  1. M. Hegland, P. E. Saylor. "Block Jacobi Preconditioning of the Conjugate Gradient Method on a Vector Processor", International Journal of Computer Mathematics, Vol. 44, No. 1-4, pp. 71-89, 1992.
  2. . "", URL: https://www.netlib.org/templates/templates.pdf.
Random Projections for k-means Clustering

Labels points into k clusters.

Authors Maksim Krylykov <mkrylykov3@gatech.edu>
ACM CCS
10002951.10003317.10003347.10003356 Information systems › Clustering and classification 500 10002951.10003317.10003347.10003350 Information systems › Recommender systems 300 Computing methodologies › Machine learning algorithms 10010147.10010257.10010258.10010260.10003697 Computing methodologies › Cluster analysis 500 10010147.10010257.10010258.10010260.10010271 Computing methodologies › Dimensionality reduction and manifold learning 500 Mathematics of computing › Dimensionality reduction
Motivation

Random Projections reduce dimensionality for k-means clustering. Input points can be high-dimensional and sparse, which are then projected on a random matrix.

References
  1. Christos Boutsidis, Anastasios Zouzias, Petros Drineas. "Random Projections for $k$-means Clustering", Arxiv, Vol. arXiv:1011.4632, 2010, URL: https://arxiv.org/abs/1011.4632.

Input generators (3)

Random Projection k-means Data Generator

Test points for this benchmark were created manually.

Authors Maksim Krylykov <mkrylykov3@gatech.edu>
Motivation

Random Projections reduce dimensionality for k-means clustering. Input points can be high-dimensional and sparse, which are then projected on a random matrix.

References
  1. Christos Boutsidis, Anastasios Zouzias, Petros Drineas. "Random Projections for $k$-means Clustering", Arxiv, Vol. arXiv:1011.4632, 2010, URL: https://arxiv.org/abs/1011.4632.
RP k-means OpenML Generator

Loads OpenML image datasets for RP k-means clustering.

Authors Kevin Wang <kwang656@gatech.edu>, Maksim Krylykov <mkrylykov3@gatech.edu>
Motivation

MNIST and CIFAR-10 provide dense image feature matrices from OpenML. k = 10 aligns with the ten classes in each dataset.

References
  1. Yann LeCun, Léon Bottou, Yoshua Bengio, Patrick Haffner. "Gradient-Based Learning Applied to Document Recognition", Proceedings of the IEEE, 1998, URL: http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf.
  2. Alex Krizhevsky. "Learning Multiple Layers of Features from Tiny Images", 2009, URL: https://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf.
  3. Aditi Grover, Bahram Toghi. "MNIST Dataset Classification Utilizing k-NN Classifier with Modified Sliding-window Metric".
RP k-means Netflix Generator

Loads Netflix Prize ratings for RP k-means clustering.

Authors Maksim Krylykov <mkrylykov3@gatech.edu>
Motivation

The Netflix Prize dataset provides a ~480K users × 17,770 movies sparse ratings matrix.

References
  1. Vini Hong, Anastasios Tsamis. "Use of KNN for the Netflix Prize", Stanford CS229, URL: https://cs229.stanford.edu/proj2008/HongTsamis-UseOfKNNForTheNetflixPrize.pdf.
Simply Connected Components

Computes the simply connected components of a directed graph using label propagation.

Authors Willow Ahrens <ahrens@gatech.edu>, Rithvik Reddygari <rreddygari3@gatech.edu>, Joel Mathew Cherian <jcherian32@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
References
  1. Kepner, Jeremy, Gilbert, John. "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics (SIAM), Philadelphia, 2011.

Input generators (3)

Connected Components Test Input Generator

Small deterministic connected-components examples.

Motivation

Provide small graph examples for correctness checks.

Connected Components Input Generator

Input generator for connected components benchmarks.

Motivation

Generate sparse graph inputs for connected components.

References
  1. Leskovec, Jure, Sosič, Rok. "SNAP: A General Purpose Network Analysis and Graph Mining Library", ACM Transactions on Intelligent Systems and Technology, Vol. 8, No. 1, 2016, URL: https://snap.stanford.edu/index.html.
Connected Components GAP Input Generator

Input GAP generator for connected components benchmarks.

Motivation

Generate GAP graph inputs for connected components.

References
  1. Scott Beamer, Krste Asanović, David Patterson. "The GAP Benchmark Suite", 2015, URL: https://arxiv.org/abs/1508.03619.
SLICOT Linear Systems — Backward Euler

SLICOT identity-E linear model-reduction ODE.

Authors Akarsh Duddu <aduddu3@gatech.edu>
References
  1. . "Benchmark examples for model reduction of linear time invariant dynamical systems", URL: https://www.slicot.org/20-site/126-benchmark-examples-for-model-reduction.

Input generators (1)

SLICOT Model-Reduction ODE

Loads SLICOT model-reduction problems without explicit E matrices, preserving stored sparse matrices, treating E as the identity, and defaulting missing B to a normalized single-input vector.

Motivation

SLICOT model-reduction examples provide realistic linear dynamical systems for ODE integration benchmarks.

References
  1. . "Benchmark examples for model reduction of linear time invariant dynamical systems", URL: https://www.slicot.org/20-site/126-benchmark-examples-for-model-reduction.
SLICOT DAE BDF

Fixed-step BDF2 for SLICOT DAEs with LU factors from the generator.

Authors Willow Ahrens <willow.marie.ahrens@gmail.com>
ACM CCS
10002950.10003705.10003707 Mathematics of computing › Solvers 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500 10002950.10003714.10003716 Mathematics of computing › Differential equations 300
Motivation

Solves descriptor-form DAEs using explicit residual Jacobians.

References
  1. . "SLICOT benchmark examples for model reduction", URL: https://www.slicot.org/20-site/126-benchmark-examples-for-model-reduction.
  2. John Burkardt. "BDF2: Backward Differentiation Formula of Order 2", URL: https://people.sc.fsu.edu/~jburkardt/py_src/bdf2/bdf2.py.

Input generators (2)

DAE Test Data Generator

Inlined descriptor systems for DAE solver correctness tests.

Authors Willow Ahrens <willow.marie.ahrens@gmail.com>
ACM CCS
10002950.10003705.10003707 Mathematics of computing › Solvers 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500 10002950.10003714.10003716 Mathematics of computing › Differential equations 300
Motivation

Uses a small singular-mass descriptor system to verify DAE steps.

SLICOT DAE Data Generator

Loads SLICOT descriptor-system benchmarks for implicit DAE solvers.

Authors Willow Ahrens <willow.marie.ahrens@gmail.com>
ACM CCS
10002950.10003705.10003707 Mathematics of computing › Solvers 500 10002950.10003714.10003715 Mathematics of computing › Numerical analysis 500 10002950.10003714.10003716 Mathematics of computing › Differential equations 300
Motivation

Uses SLICOT models with an explicit E matrix as descriptor systems. Implicit DAE steps solve linear systems built from residual Jacobians.

References
  1. . "SLICOT benchmark examples for model reduction", URL: https://www.slicot.org/20-site/126-benchmark-examples-for-model-reduction.
SLICOT Linear Systems — Forward Euler

SLICOT identity-E linear model-reduction ODE.

Authors Akarsh Duddu <aduddu3@gatech.edu>
References
  1. . "Benchmark examples for model reduction of linear time invariant dynamical systems", URL: https://www.slicot.org/20-site/126-benchmark-examples-for-model-reduction.

Input generators (1)

SLICOT Model-Reduction ODE

Loads SLICOT model-reduction problems without explicit E matrices, preserving stored sparse matrices, treating E as the identity, and defaulting missing B to a normalized single-input vector.

Motivation

SLICOT model-reduction examples provide realistic linear dynamical systems for ODE integration benchmarks.

References
  1. . "Benchmark examples for model reduction of linear time invariant dynamical systems", URL: https://www.slicot.org/20-site/126-benchmark-examples-for-model-reduction.
SLICOT Linear Systems — RK4

SLICOT identity-E linear model-reduction ODE.

Authors Akarsh Duddu <aduddu3@gatech.edu>
References
  1. . "Benchmark examples for model reduction of linear time invariant dynamical systems", URL: https://www.slicot.org/20-site/126-benchmark-examples-for-model-reduction.

Input generators (1)

SLICOT Model-Reduction ODE

Loads SLICOT model-reduction problems without explicit E matrices, preserving stored sparse matrices, treating E as the identity, and defaulting missing B to a normalized single-input vector.

Motivation

SLICOT model-reduction examples provide realistic linear dynamical systems for ODE integration benchmarks.

References
  1. . "Benchmark examples for model reduction of linear time invariant dynamical systems", URL: https://www.slicot.org/20-site/126-benchmark-examples-for-model-reduction.
Subgraph Matching Algorithm using einsum

Benchmarks subgraph matching algorithms using einsum operations.

Authors Taishan Chen <utallow@bu.edu>, Kyle Deeds <kdeeds@bu.edu>
Motivation

Subgraph matching and counting are classic problems and widely used in query evaluations in database systems.

Input generators (5)

Subgraph Matching Test Inputs

Small labeled graph queries.

Authors Taishan Chen <utallow@bu.edu>, Kyle Deeds <kdeeds@bu.edu>
Motivation

Subgraph matching and counting are classic problems and widely used in query evaluations in database systems.

Subgraph G-CARE Generator (Human)

Transforms the G-CARE dataset to the input of subgraph matching algorithms.

Authors Taishan Chen <utallow@bu.edu>, Kyle Deeds <kdeeds@bu.edu>
Motivation

Subgraph matching and counting are classic problems and widely used in query evaluations in database systems.

References
  1. Yeonsu Park, Seongyun Ko, Sourav S Bhowmick, Kyoungmin Kim, Kijae Hong, Wook-Shin Han. "G-CARE: A Framework for Performance Benchmarking of Cardinality Estimation Techniques for Subgraph Matching", 2020, URL: https://dl.acm.org/doi/10.1145/3318464.3389702.
Subgraph G-CARE Generator (AIDS)

Transforms the G-CARE dataset to the input of subgraph matching algorithms.

Authors Taishan Chen <utallow@bu.edu>, Kyle Deeds <kdeeds@bu.edu>
Motivation

Subgraph matching and counting are classic problems and widely used in query evaluations in database systems.

References
  1. Yeonsu Park, Seongyun Ko, Sourav S Bhowmick, Kyoungmin Kim, Kijae Hong, Wook-Shin Han. "G-CARE: A Framework for Performance Benchmarking of Cardinality Estimation Techniques for Subgraph Matching", 2020, URL: https://dl.acm.org/doi/10.1145/3318464.3389702.
Subgraph G-CARE Generator (LUBM80)

Transforms the G-CARE dataset to the input of subgraph matching algorithms.

Authors Taishan Chen <utallow@bu.edu>, Kyle Deeds <kdeeds@bu.edu>
Motivation

Subgraph matching and counting are classic problems and widely used in query evaluations in database systems.

References
  1. Yeonsu Park, Seongyun Ko, Sourav S Bhowmick, Kyoungmin Kim, Kijae Hong, Wook-Shin Han. "G-CARE: A Framework for Performance Benchmarking of Cardinality Estimation Techniques for Subgraph Matching", 2020, URL: https://dl.acm.org/doi/10.1145/3318464.3389702.
Subgraph G-CARE Generator (YAGO)

Transforms the G-CARE dataset to the input of subgraph matching algorithms.

Authors Taishan Chen <utallow@bu.edu>, Kyle Deeds <kdeeds@bu.edu>
Motivation

Subgraph matching and counting are classic problems and widely used in query evaluations in database systems.

References
  1. Yeonsu Park, Seongyun Ko, Sourav S Bhowmick, Kyoungmin Kim, Kijae Hong, Wook-Shin Han. "G-CARE: A Framework for Performance Benchmarking of Cardinality Estimation Techniques for Subgraph Matching", 2020, URL: https://dl.acm.org/doi/10.1145/3318464.3389702.
Tensorized Minimax Tic-Tac-Toe

What does this code do: Implement a fully tensorized, non-recursive minimax search over a tic-tac-toe game. Game states are represented as tensors. Game state is represented as S[n, i, j, p] of shape (N, 3, 3, 2) where n indexes boards, i,j are board positions and p is the player channel. Given any board state within the game, it should return the result of the game.

Authors Aarav Jogekar <ajoglekar32@gatech.edu>, Willow Ahrens <ahrens@gatech.edu>
ACM CCS
10010147.10010178.10010205.10010210 Computing methodologies › Game tree search 500
Motivation

This benchmark will do sparse array operations on tic-tac-toegame trees. Sparsity should increase as you go deeper into the game/tree.Invalid boards states caused by bad moves are zeroed out. You can test empty board all the way to the higher depth starting states

Input generators (1)

Fixed Boards for testing.

These tests covering end-game, mid-game, and early gamethrough using various minimax at different depths.

Authors Aarav Jogekar <ajoglekar32@gatech.edu>
Motivation

Boards have range of sparsity so they go from empty to being very dense this helps us measure how sparsity can affect performance at different depths.

Transitive Closure

Computes the transitive closure of a directed graph using fixed-point iteration. The algorithm initializes the adjacency matrix with the identity, then iteratively applies the closure operation using sparse matrix operations until convergence. This enables reachability queries.

Authors Rithvik Reddygari <rreddygari3@gatech.edu>, Joel Mathew Cherian <jcherian32@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
References
  1. Kepner, Jeremy, Gilbert, John. "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics (SIAM), Philadelphia, 2011.

Input generators (3)

Transitive Closure Input Generator

Input generator for transitive closure benchmarks.

Motivation

Generate sparse directed graph inputs for transitive closure.

Transitive Closure Test Input Generator

Small deterministic transitive closure examples.

Motivation

Provide small reachability examples for correctness checks.

Transitive Closure GAP Input Generator

Input GAP generator for transitive closure benchmarks.

Motivation

Generate GAP directed graph inputs for transitive closure.

References
  1. Scott Beamer, Krste Asanović, David Patterson. "The GAP Benchmark Suite", 2015, URL: https://arxiv.org/abs/1508.03619.
diBELLA Transitive Reduction Algorithm

Iterative transitive reduction on a sparse overlap graph, following the diBELLA reduction step.

Authors Jaehun Baek <jbaek90@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
Motivation

This benchmark implements the iterative transitive reduction step from the diBELLA 2D paper. The overlap graph R is a sparse matrix where R[i, j] represents the suffix length of an overlap between read i and read j. The reduction is implemented as sparse (min, +) semiring SpGEMM to find shortest 2-hop paths.

References
  1. Giulia Guidi, Oguz Selvitopi, Marquita Ellis, Leonid Oliker, Katherine Yelick, Aydin Buluc. "Parallel String Graph Construction and Transitive Reduction for De Novo Genome Assembly", IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp. 517-526, 2021, DOI: 10.1109/IPDPS49936.2021.00060.

Input generators (2)

Transitive Reduction Test Inputs

Small test graphs with expected reduced edges.

Transitive Reduction GAP Input Generator

Input GAP generator for transitive reduction benchmarks.

Motivation

Generate GAP directed graph inputs for transitive reduction.

References
  1. Scott Beamer, Krste Asanović, David Patterson. "The GAP Benchmark Suite", 2015, URL: https://arxiv.org/abs/1508.03619.
Triangle Counting

Triangle Counting: Given adjacency matrix A, # triangles = trace(A^3) // 6. This counts the number of walks of length 3 that start at vertex i and end at vertex i, which is exactly a triangle. Divide by 6 to avoid overcounting. These methods are implemented using the property that multiplying a graph’s adjacency matrix by itself n times yields the number of walks of length n that begin at the vertex denoted by the row label and end at the vertex denoted by the column label.

Authors Jeffrey Xu <jxu743@gatech.edu>
ACM CCS
10002950.10003705 Mathematics of computing › Mathematical software 500 10002950.10003705.10011686 Mathematics of computing › Mathematical software performance 500 10002950.10003624.10003633.10010917 Mathematics of computing › Graph algorithms 500 10002950.10003624.10003633.10003640 Mathematics of computing › Paths and connectivity problems 500
Motivation

Adjacency matrices are often sparse, and are used as input in this problem.’It is generally known that counting the exact number oftriangles in a graph G can be described using the language oflinear algebra as 1/6 Γ(A3),where A is the adjacency matrix of the graph G, and Γ(X)is the trace of the square matrix X [1]. Other linear algebraapproaches [2], [3] also require a sparse-matrix multiplicationof A or parts of A as part of their computation. Alternativeapproaches that are not based on linear algebra leverage otherformats for describing graphs such as the adjacency list todesign their algorithms [4], [5].’‘…the shortcut method of computing a power of a [adjacency] matrix,is isomorphic to a similar shortcut for finding all shortest paths.’

References
  1. T. M. Low, V. N. Rao, M. Lee, D. Popovici, F. Franchetti, S. McMillan. "First look: Linear algebra-based triangle counting without matrix multiplication", IEEE High Performance Extreme Computing Conference (HPEC), 2017, URL: https://doi.org/10.1109/HPEC.2017.8091046.
  2. Kepner, Jeremy, Gilbert, John. "Graph Algorithms in the Language of Linear Algebra", Society for Industrial and Applied Mathematics, 2011, URL: https://doi.org/10.1137/1.9780898719918.

Input generators (3)

Triangle Count Test Input Generator

Small deterministic triangle-count examples.

Motivation

Provide small graph examples for triangle-count correctness checks.

Triangle Count Input Generator

Input generator for triangle counting benchmarks.

Motivation

Generate sparse graph inputs for triangle counting.

References
  1. Leskovec, Jure, Sosič, Rok. "SNAP: A General Purpose Network Analysis and Graph Mining Library", ACM Transactions on Intelligent Systems and Technology, Vol. 8, No. 1, 2016, URL: https://snap.stanford.edu/index.html.
Triangle Count GAP Input Generator

Input GAP generator for triangle counting benchmarks.

Motivation

Generate GAP graph inputs for triangle counting.

References
  1. Scott Beamer, Krste Asanović, David Patterson. "The GAP Benchmark Suite", 2015, URL: https://arxiv.org/abs/1508.03619.