This repository is a customized testing framework built upon the HDagg-benchmark. It is specifically modified to evaluate the BAAS framework (IPDPS 2026).
src/: source codecmake/andCMakeLists.txt: CMake filesdata/: input folder where matrices residedemo/: example folder to show HDagg usagescripts/: Bash scripts for generating and processing resultsSpMP: SpMP source code for HDagg_p2p (in BAAS Paper) Test. You can download this source code from SpMP in Github, which is forked by myself.
First following items should be installed:
-
CMake
-
GCC
-
METIS dependency for running the demo efficiently and is handled by the cmake. If you have installed the package using a packet manager (e.g., apt of homebrew), CMake should be able to detect it. Otherwise, it installs METIS from source internally.
-
OpenMP for running some parts of the code in parallel. If you use GCC/ICC then OpenMP should be supported natively. If you use Apple CLang, you probably need to install OpenMP using
homebrew install libomp. You can -
Intel oneMKL
-
SpMP
1. Configuration
Navigate to the script directory and edit env.sh:
cd script
# Open env.sh and update the paths for Prerequisites
vi env.sh2. Build
# First, you must git clone SpMP
cd SpMP
make
cd ../scripts
source env.sh # recitfy env.sh following the dependency software
./cmake.sh
./make.sh3. Data Preparation This code expects matrix files to be located in the /data directory.
-
Place your .mtx files in
/data. -
Update
matrixList.txtto include the filenames of the matrices you wish to test.
4. Running We have provided specialized scripts for different sparse solvers. You can run them directly from the script directory.
./run_trsv.sh # SpTRSV
./run_ic.sh # SpIC0
./run_ilu.sh # SpILU0
./run_iccg.sh # ICCGNote: You can customize the thread count and iteration rounds within these scripts to match your hardware.
5. Output & Results: All generated files are stored in the output/ directory:
csv/: Contains the measured performance metrics and benchmark results.
log/: Contains detailed program execution logs.
out/: Contains standard output redirected from the running scripts.