Skip to content

Commit 135b23d

Browse files
committed
README: reproduction instructions
1 parent e1400a9 commit 135b23d

1 file changed

Lines changed: 46 additions & 1 deletion

File tree

README.md

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ License|Linux, MacOS & Windows Build|Code Coverage|Zenodo
77
Table of Contents
88
-----------
99

10+
* [ESA 2026 Reproduction](#esa-2026-reproduction)
1011
* [About Mt-KaHyPar](#about-mt-kahypar)
1112
* [Features](#features)
1213
* [Installing Mt-KaHyPar](#installing-mt-kahypar)
@@ -18,6 +19,50 @@ Table of Contents
1819
* [Improving Compile Times](#improving-compile-times)
1920
* [Licensing](#licensing)
2021

22+
ESA 2026 Reproduction
23+
-----------
24+
This is a short guide how to reproduce the results from our ESA 2026 paper "High-Quality Multi-Constraint Hypergraph Partitioning via Greedy Rebalancing".
25+
First, ensure you use the correct commit.
26+
```
27+
git switch esa2026 --detach
28+
```
29+
30+
Follow the [build instructions](#building-mt-kahypar-from-source) and use the `default` cmake preset to build Mt-KaHyPar.
31+
The code is configured such that running Mt-KaHyPar with `--preset-type=default` will execute the final configuration from the paper.
32+
Further required flags are `-h` (input file), `-o` (objective, e.g. `km1`), `-k` (number of blocks) and `-e` (imbalance, e.g. `0.03`). For METIS (graph) files, `--input-file-format=metis` is additionally required.
33+
Add `-t <num_threads>` for multi-threaded execution; see also the [run instructions](#running-mt-kahypar).
34+
Note, this version of Mt-KaHyPar can read and partition input files with multi-dimensional weight constraints without requiring any additional parameters.
35+
36+
The following parameters correspond to the configurations in the ablation study.
37+
38+
Baseline:
39+
```
40+
--r-rebalancing-use-deadlock-fallback=false --r-reduced-target-weight-block=0.0 --r-rebalancing-multiple-moves=false --r-rebalancing-any-progress=false --r-rebalancing-use-rollback=false
41+
```
42+
43+
L1^u imbalance:
44+
```
45+
--r-rebalancing-use-deadlock-fallback=false --r-reduced-target-weight-block=0.0 --r-rebalancing-use-rollback=false
46+
```
47+
48+
Rollback:
49+
```
50+
--r-rebalancing-use-deadlock-fallback=false --r-reduced-target-weight-block=0.0
51+
```
52+
53+
Weight reduction:
54+
```
55+
--r-rebalancing-use-deadlock-fallback=false
56+
```
57+
58+
Fallback is identical to the final configuration (no additional parameters).
59+
60+
The following parameters control the different refinement variants from Figure 3 (uLP/uFM):
61+
62+
`--r-lp-unconstrained=false/true` for -/+ uLP.
63+
64+
`--r-fm-type=kway_fm` vs. `--r-fm-type=unconstrained_fm` for -/+ uFM.
65+
2166
About Mt-KaHyPar
2267
-----------
2368
Mt-KaHyPar is a shared-memory algorithm for partitioning graphs and hypergraphs. The balanced (hyper)graph partitioning problem
@@ -117,7 +162,7 @@ To build Mt-KaHyPar, use the following commands:
117162
2. Create a build directory: `mkdir build && cd build`
118163
3. *Only on Windows machines: `export CMAKE_GENERATOR="MSYS Makefiles"`*
119164
3. Run cmake: `cmake .. --preset=<default/python/dev>`
120-
4. Run make: `make MtKaHyPar -j`
165+
4. Run make: `make MtKaHyPar -j4`
121166

122167
The build produces the executable `MtKaHyPar`, which can be found in `build/mt-kahypar/application/`.
123168

0 commit comments

Comments
 (0)