AutoTuneTD-SBP recommends a Top-down stochastic block partitioning (SBP) configuration for a graph. The tradeoff parameter alpha controls the objective: 0 prioritizes performance, 0.5 balances performance and accuracy, and 1 prioritizes accuracy.
Artifact for ML-Guided Parameter Configuration Selection for Top-Down Stochastic Block Partitioning, accepted at IEEE HPEC 2026.
In addition to the AutoTuneTD-SBP codebase, we provide recommended parameter configurations for the top-down SBP graph clustering algorithm for publicly available graphs from the CAIDA network telescope and MIT Graph Challenge datasets, as identified by AutoTuneTD-SBP. Researchers can use these configurations to run top-down SBP on these graphs without first running AutoTuneTD-SBP.
For each of the graphs, we provide three sets of recommended parameter configurations (obtained via AutoTuneTD-SBP experiments): for the case of alpha = 0 that prioritizes computational performance, for alpha = 0.5 that balances clustering accuracy and computational performance, and for alpha = 1 that prioritizes clustering accuracy. More details on alpha can be found in the manuscript.
Each non-reference parameter configuration (Configurations 2-27) differs from the reference parameter configuration (Configuration 1) by exactly one parameter.
The complete definitions of all 27 parameter configurations considered in this work are available in params.conf.
The table below shows one CAIDA network telescope graph and one MIT Graph Challenge graph with the parameter configuration recommended by AutoTuneTD-SBP for each alpha value:
| Example Graph | Recommended Configuration (for alpha = 0) |
Recommended Configuration (for alpha = 0.5) |
Recommended Configuration (for alpha = 1) |
|---|---|---|---|
CAIDA network telescope20220114-000000 |
Configuration 24BATCHES=2, CACHE_SIZE=20000, DEGREEPRODUCTSORT=1, SPLITINIT=random, SPLIT=connectivity-snowball, MH_PERCENT=0.1, NODELTA=0, NONPARAMETRIC=0, GREEDY=0, APPROXIMATE=0, MIX=0 |
Configuration 22BATCHES=2, CACHE_SIZE=20000, DEGREEPRODUCTSORT=1, SPLITINIT=random, SPLIT=connectivity-snowball, MH_PERCENT=1.0, NODELTA=0, NONPARAMETRIC=1, GREEDY=0, APPROXIMATE=0, MIX=0 |
Configuration 21BATCHES=2, CACHE_SIZE=20000, DEGREEPRODUCTSORT=1, SPLITINIT=random, SPLIT=connectivity-snowball, MH_PERCENT=0.9, NODELTA=0, NONPARAMETRIC=1, GREEDY=0, APPROXIMATE=0, MIX=0 |
MIT Graph Challengestatic_lowOverlap_highBlockSizeVar_20000000_nodes |
Configuration 12BATCHES=2, CACHE_SIZE=20000, DEGREEPRODUCTSORT=1, SPLITINIT=random, SPLIT=single-snowball, MH_PERCENT=0.1, NODELTA=0, NONPARAMETRIC=1, GREEDY=0, APPROXIMATE=0, MIX=0 |
Configuration 9BATCHES=2, CACHE_SIZE=20000, DEGREEPRODUCTSORT=1, SPLITINIT=degree-weighted, SPLIT=connectivity-snowball, MH_PERCENT=0.1, NODELTA=0, NONPARAMETRIC=1, GREEDY=0, APPROXIMATE=0, MIX=0 |
Configuration 1BATCHES=2, CACHE_SIZE=20000, DEGREEPRODUCTSORT=1, SPLITINIT=random, SPLIT=connectivity-snowball, MH_PERCENT=0.1, NODELTA=0, NONPARAMETRIC=1, GREEDY=0, APPROXIMATE=0, MIX=0 |
Additional result files and provenance notes are available for CAIDA and the MIT Graph Challenge. [Under Construction]
- Python 3.11 or newer
- An NVIDIA GPU and CUDA 12 for RAPIDS preprocessing and metrics
- A C++17 compiler, CMake, OpenMP, and MPI for Top-down SBP
Conda is recommended:
conda env create -f environment.yml
conda activate autotune-tdsbpAlternatively, on a CUDA 12 system:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txtFor CUDA 13, replace the CUDA 12 RAPIDS packages in requirements.txt with their -cu13 equivalents.
The original Top-down SBP code is available at vtsynergy/SBP.
TopDown-SBP-Weighted/ contains our modification of the latest Top-down SBP code to support positive integer edge weights. This is important for multigraph-derived datasets such as the CAIDA network telescope, where the same source--destination pair can occur multiple times. The edge weight preserves that multiplicity, and weighted Top-down SBP represents it as parallel unit edges during clustering.
cmake -S TopDown-SBP-Weighted -B TopDown-SBP-Weighted/build -DCMAKE_BUILD_TYPE=Release
cmake --build TopDown-SBP-Weighted/build --target TopDownSBP -jTop-down SBP accepts a weighted tab-separated edge list named <graph>.tsv:
source_vertex<TAB>target_vertex<TAB>weight
Run the paper's parameter sweep:
TopDown-SBP/scripts/run_parameter_sweep.sh \
Data/CAIDA/20220114-000000 \
runs/CAIDA/20220114-000000Compute graph and clustering metrics:
python Data-Preprocessing/compute_metrics_cpu.py --help
python Data-Preprocessing/compute_metrics_gpu.py --helpTrain the recommendation model:
python AutoTuneTD-SBP/train.py \
--input path/to/training_measurements.csv \
--output-dir models/xgboostRecommend configurations for a new graph:
python AutoTuneTD-SBP/recommend.py \
--model models/xgboost/model.joblib \
--graph-features path/to/new_graph_features.csv \
--configurations TopDown-SBP/configs/params.conf \
--alpha 0.5 \
--output recommendations.csvSee AutoTuneTD-SBP/README.md and Data-Preprocessing/README.md for input-column and preprocessing details.
All 27 configurations evaluated in the paper are listed in params.conf. The first row is the reference configuration; every other row changes one setting. Dataset-specific experiments may use only a subset of these configurations.
@inproceedings{dey2026autotunetdsbp,
author = {Saikat Dey and Wu-chun Feng},
title = {ML-Guided Parameter Configuration Selection for Top-Down Stochastic Block Partitioning},
booktitle = {2026 IEEE High Performance Extreme Computing Conference (HPEC)},
year = {2026}
}Machine-readable metadata is available in CITATION.cff.
This project is released under the MIT License.