**Comprehensive Application Characterization for Sparse Computation**
The SparCity project has significantly advanced the state-of-the-art in characterizing application behavior for sparse computations. The project achieved comprehensive feature extraction for common sparse data structures, such as matrices, graphs, and tensors, which facilitated the development of machine learning systems to predict the efficacy of reordering algorithms for SpMV. This predictive capability represents a substantial optimization in sparse computations. The feature extraction tool is publicly available at
https://github.com/sparcityeu/feaTen(si apre in una nuova finestra). Enhanced performance and energy-efficiency modeling were also achieved, including the development of the Mansard Roofline Model (MaRM) and enhancements to the Cache-Aware Roofline Model (CARM). These models are designed for sparse kernels and input matrices, providing a framework for optimizing performance across various hardware architectures, as detailed in several peer-reviewed publications. Data locality tools were expanded to support a broader set of architectures, including AMD machines, enhancing comprehensive communication modeling capabilities.
**Node-Level Optimizations for Sparse Computation**
Key contributions include the first use of order-dependent features for predicting reordering effectiveness in specific matrices, optimizing sparse matrix operations by tailoring the reordering process. An extensive performance study involving 490 large matrices, six reordering algorithms, and eight modern multicore architectures was published at Supercomputing 2023. Other notable developments include genTen, a smart sparse tensor generator available at
https://github.com/sparcityeu/genTe(si apre in una nuova finestra)) and SparseBase, a preprocessing library for sparse computation available
https://github.com/sparcityeu/sparsebase(si apre in una nuova finestra). Additionally, a framework for fusing multiple graph algorithms significantly improved performance over executing algorithms individually.
**System-Level Optimizations for Sparse Computation**
The project achieved substantial system-level optimizations, notably through innovative partitioning algorithms, dynamic topology information systems, and advanced communication offloading infrastructure. A dynamic topology information system, available at
https://github.com/sparcityeu/yloc(si apre in una nuova finestra) integrates dynamic data and makes it available at runtime. A communication offloading software infrastructure was developed to integrate communication operations efficiently into multithreaded code, available at
https://github.com/sparcityeu/mmcso(si apre in una nuova finestra). Additionally, fast GPU-based hypergraph partitioning schemes were implemented, available at
https://github.com/sparcityeu/FastPartitioner(si apre in una nuova finestra).
**Digital SuperTwin and SuperViz**
Significant progress was made in developing SuperTwin, an open-source framework for generating digital twins of HPC systems. SuperTwin enables fine- or coarse-grain profiling and visualization with minimal code overhead and is available at
https://github.com/sparcityeu/Digital-SuperTwin(si apre in una nuova finestra). SparseViz, a no-code software for sparse-data ordering and visualization, allows users to evaluate kernel performance with different orderings, available at
https://github.com/sparcityeu/sparseviz(si apre in una nuova finestra).
**Demonstration with Real-Life Applications**
Progress was demonstrated across six real-life applications, including unprecedented simulations with the cardiac simulator, advanced graph processing algorithms, and improvements in epistasis detection. The use of Graphcore IPUs across multiple applications delivered better performance than state-of-the-art CPU/GPU implementations. Open collections of sparse problem instances are maintained to facilitate research and reproducibility, available at
https://datasets.simula.no/sparcity/(si apre in una nuova finestra) and
http://sparseutils.com/(si apre in una nuova finestra).