Skip to content

Commit

Permalink
Merge pull request #151 from kahypar/rename_configurations
Browse files Browse the repository at this point in the history
Better Naming Convention for Partitioning Configurations
  • Loading branch information
kittobi1992 authored Jul 25, 2023
2 parents fb345cf + 9b38148 commit 97ad92a
Show file tree
Hide file tree
Showing 45 changed files with 634 additions and 618 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/branch_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON -DKAHYPAR_ENABLE_SOED_METRIC=OFF -DKAHYPAR_ENABLE_STEINER_TREE_METRIC=OFF -DKAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES=OFF -DKAHYPAR_ENABLE_QUALITY_PRESET_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON -DKAHYPAR_ENABLE_SOED_METRIC=OFF -DKAHYPAR_ENABLE_STEINER_TREE_METRIC=OFF -DKAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES=OFF -DKAHYPAR_ENABLE_HIGHEST_QUALITY_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF
make -j2 MtKaHyPar
mt_kahypar_test_suite:
Expand All @@ -63,7 +63,7 @@ jobs:
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_USE_GCOV=ON -DKAHYPAR_CI_BUILD=ON -DKAHYPAR_ENABLE_SOED_METRIC=OFF -DKAHYPAR_ENABLE_STEINER_TREE_METRIC=OFF -DKAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES=OFF -DKAHYPAR_ENABLE_QUALITY_PRESET_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_USE_GCOV=ON -DKAHYPAR_CI_BUILD=ON -DKAHYPAR_ENABLE_SOED_METRIC=OFF -DKAHYPAR_ENABLE_STEINER_TREE_METRIC=OFF -DKAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES=OFF -DKAHYPAR_ENABLE_HIGHEST_QUALITY_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF
make -j2 mt_kahypar_tests;
- name: Run Mt-KaHyPar Tests
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/master_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ jobs:
mkdir build
cd build
export CMAKE_GENERATOR="MSYS Makefiles"
/mingw64/bin/cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_DOWNLOAD_BOOST=On -DKAHYPAR_CI_BUILD=ON -DKAHYPAR_ENABLE_QUALITY_PRESET_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF
/mingw64/bin/cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_DOWNLOAD_BOOST=On -DKAHYPAR_CI_BUILD=ON -DKAHYPAR_ENABLE_HIGHEST_QUALITY_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF
make -j2 mt_kahypar_tests
- name: Run Mt-KaHyPar Tests
Expand Down
10 changes: 5 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ option(KAHYPAR_ENABLE_EXPERIMENTAL_FEATURES
option(KAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES
"Enables graph partitioning features. Can be turned off for faster compilation." ON)

option(KAHYPAR_ENABLE_QUALITY_PRESET_FEATURES
"Enables quality preset features (quality and quality_flows). Can be turned off for faster compilation." ON)
option(KAHYPAR_ENABLE_HIGHEST_QUALITY_FEATURES
"Enables highest quality preset features. Can be turned off for faster compilation." ON)

option(KAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES
"Enables large k partitioning features. Can be turned off for faster compilation." ON)
Expand Down Expand Up @@ -120,9 +120,9 @@ if(KAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES)
add_compile_definitions(KAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES)
endif(KAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES)

if(KAHYPAR_ENABLE_QUALITY_PRESET_FEATURES)
add_compile_definitions(KAHYPAR_ENABLE_QUALITY_PRESET_FEATURES)
endif(KAHYPAR_ENABLE_QUALITY_PRESET_FEATURES)
if(KAHYPAR_ENABLE_HIGHEST_QUALITY_FEATURES)
add_compile_definitions(KAHYPAR_ENABLE_HIGHEST_QUALITY_FEATURES)
endif(KAHYPAR_ENABLE_HIGHEST_QUALITY_FEATURES)

if(KAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES)
add_compile_definitions(KAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES)
Expand Down
55 changes: 35 additions & 20 deletions README.md

Large diffs are not rendered by default.

114 changes: 114 additions & 0 deletions config/highest_quality_preset.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# general
mode=direct
preset-type=highest_quality
maxnet-removal-factor=0.01
smallest-maxnet-threshold=50000
maxnet-ignore=1000
num-vcycles=0
# main -> shared_memory
s-use-localized-random-shuffle=false
s-static-balancing-work-packages=128
# main -> preprocessing
p-enable-community-detection=true
# main -> preprocessing -> community_detection
p-louvain-edge-weight-function=hybrid
p-max-louvain-pass-iterations=5
p-louvain-min-vertex-move-fraction=0.01
p-vertex-degree-sampling-threshold=200000
# main -> coarsening
c-type=nlevel_coarsener
c-min-shrink-factor=1.01
c-max-shrink-factor=100.0
c-s=1
c-t=160
c-vertex-degree-sampling-threshold=200000
# main -> coarsening -> rating
c-rating-score=heavy_edge
c-rating-heavy-node-penalty=no_penalty
c-rating-acceptance-criterion=best_prefer_unmatched
# main -> initial_partitioning
i-mode=rb
i-runs=20
i-use-adaptive-ip-runs=true
i-min-adaptive-ip-runs=5
i-perform-refinement-on-best-partitions=true
i-fm-refinement-rounds=2147483647
i-remove-degree-zero-hns-before-ip=true
i-lp-maximum-iterations=20
i-lp-initial-block-size=5
# main -> initial_partitioning -> refinement
i-r-refine-until-no-improvement=true
i-r-relative-improvement-threshold=0.0
i-r-max-batch-size=1000
i-r-min-border-vertices-per-thread=0
i-r-initialize-gain-cache=false
# main -> initial_partitioning -> refinement -> label_propagation
i-r-lp-type=label_propagation
i-r-lp-maximum-iterations=5
i-r-lp-rebalancing=true
i-r-lp-he-size-activation-threshold=100
# main -> initial_partitioning -> refinement -> fm
i-r-fm-type=kway_fm
i-r-fm-multitry-rounds=5
i-r-fm-perform-moves-global=false
i-r-fm-rollback-parallel=false
i-r-fm-rollback-balance-violation-factor=1
i-r-fm-seed-nodes=5
i-r-fm-obey-minimal-parallelism=false
i-r-fm-release-nodes=true
i-r-fm-time-limit-factor=0.25
# main -> initial_partitioning -> refinement -> global
i-r-use-global-fm=false
# main -> initial_partitioning -> refinement -> flows
i-r-flow-algo=do_nothing
# main -> refinement
r-rebalancer-type=simple_rebalancer
r-refine-until-no-improvement=true
r-relative-improvement-threshold=0.0025
r-max-batch-size=1000
r-min-border-vertices-per-thread=50
r-initialize-gain-cache=false
# main -> refinement -> label_propagation
r-lp-type=label_propagation
r-lp-maximum-iterations=5
r-lp-rebalancing=true
r-lp-he-size-activation-threshold=100
# main -> refinement -> fm
r-fm-type=kway_fm
r-fm-multitry-rounds=10
r-fm-perform-moves-global=false
r-fm-rollback-parallel=false
r-fm-rollback-balance-violation-factor=1.25
r-fm-seed-nodes=5
r-fm-release-nodes=true
r-fm-min-improvement=-1.0
r-fm-obey-minimal-parallelism=false
r-fm-time-limit-factor=0.25
# applies only to global fm
r-fm-iter-moves-on-recalc=false
# main -> refinement -> global
r-use-global-fm=true
r-global-refine-until-no-improvement=true
r-global-fm-seed-nodes=5
r-global-fm-obey-minimal-parallelism=true
# main -> refinement -> flows
r-flow-algo=flow_cutter
r-flow-scaling=16
r-flow-max-num-pins=4294967295
r-flow-find-most-balanced-cut=true
r-flow-determine-distance-from-cut=true
r-flow-parallel-search-multiplier=1.0
r-flow-max-bfs-distance=2
r-flow-min-relative-improvement-per-round=0.001
r-flow-time-limit-factor=8
r-flow-skip-small-cuts=true
r-flow-skip-unpromising-blocks=true
r-flow-pierce-in-bulk=true
r-flow-process-mapping-policy=lower_bound
# main -> mapping
one-to-one-mapping-strategy=greedy_mapping
mapping-use-local-search=true
use-two-phase-approach=false
max-steiner-tree-size=4
mapping-largest-he-fraction=0.0
mapping-min-pin-coverage=0.05
File renamed without changes.
87 changes: 87 additions & 0 deletions config/old_configs/default_preset.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# general
mode=direct
preset-type=default
maxnet-removal-factor=0.01
smallest-maxnet-threshold=50000
maxnet-ignore=1000
num-vcycles=0
# main -> shared_memory
s-use-localized-random-shuffle=false
s-static-balancing-work-packages=128
# main -> preprocessing
p-enable-community-detection=true
# main -> preprocessing -> community_detection
p-louvain-edge-weight-function=hybrid
p-max-louvain-pass-iterations=5
p-louvain-min-vertex-move-fraction=0.01
p-vertex-degree-sampling-threshold=200000
# main -> coarsening
c-type=multilevel_coarsener
c-use-adaptive-edge-size=true
c-min-shrink-factor=1.01
c-max-shrink-factor=2.5
c-s=1
c-t=160
c-vertex-degree-sampling-threshold=200000
# main -> coarsening -> rating
c-rating-score=heavy_edge
c-rating-heavy-node-penalty=no_penalty
c-rating-acceptance-criterion=best_prefer_unmatched
# main -> initial_partitioning
i-mode=rb
i-runs=20
i-use-adaptive-ip-runs=true
i-min-adaptive-ip-runs=5
i-perform-refinement-on-best-partitions=true
i-fm-refinement-rounds=1
i-lp-maximum-iterations=20
i-lp-initial-block-size=5
# main -> initial_partitioning -> refinement
i-r-refine-until-no-improvement=false
# main -> initial_partitioning -> refinement -> label_propagation
i-r-lp-type=label_propagation
i-r-lp-maximum-iterations=5
i-r-lp-rebalancing=true
i-r-lp-he-size-activation-threshold=100
# main -> initial_partitioning -> refinement -> fm
i-r-fm-type=kway_fm
i-r-fm-multitry-rounds=5
i-r-fm-perform-moves-global=false
i-r-fm-rollback-parallel=true
i-r-fm-rollback-balance-violation-factor=1
i-r-fm-seed-nodes=25
i-r-fm-obey-minimal-parallelism=false
i-r-fm-release-nodes=true
i-r-fm-time-limit-factor=0.25
i-r-fm-iter-moves-on-recalc=true
# main -> initial_partitioning -> refinement -> flows
i-r-flow-algo=do_nothing
# main -> refinement
r-rebalancer-type=simple_rebalancer
r-refine-until-no-improvement=false
# main -> refinement -> label_propagation
r-lp-type=label_propagation
r-lp-maximum-iterations=5
r-lp-rebalancing=true
r-lp-he-size-activation-threshold=100
# main -> refinement -> fm
r-fm-type=kway_fm
r-fm-multitry-rounds=10
r-fm-perform-moves-global=false
r-fm-rollback-parallel=true
r-fm-rollback-balance-violation-factor=1.25
r-fm-seed-nodes=25
r-fm-release-nodes=true
r-fm-min-improvement=-1.0
r-fm-obey-minimal-parallelism=true
r-fm-time-limit-factor=0.25
r-fm-iter-moves-on-recalc=true
# main -> refinement -> flows
r-flow-algo=do_nothing
# main -> mapping
one-to-one-mapping-strategy=greedy_mapping
mapping-use-local-search=true
use-two-phase-approach=false
max-steiner-tree-size=4
mapping-largest-he-fraction=0.0
mapping-min-pin-coverage=0.05
File renamed without changes.
99 changes: 99 additions & 0 deletions config/old_configs/quality_preset.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# general
mode=direct
preset-type=quality
maxnet-removal-factor=0.01
smallest-maxnet-threshold=50000
maxnet-ignore=1000
num-vcycles=0
# main -> shared_memory
s-use-localized-random-shuffle=false
s-static-balancing-work-packages=128
# main -> preprocessing
p-enable-community-detection=true
# main -> preprocessing -> community_detection
p-louvain-edge-weight-function=hybrid
p-max-louvain-pass-iterations=5
p-louvain-min-vertex-move-fraction=0.01
p-vertex-degree-sampling-threshold=200000
# main -> coarsening
c-type=nlevel_coarsener
c-min-shrink-factor=1.01
c-max-shrink-factor=100.0
c-s=1
c-t=160
c-vertex-degree-sampling-threshold=200000
# main -> coarsening -> rating
c-rating-score=heavy_edge
c-rating-heavy-node-penalty=no_penalty
c-rating-acceptance-criterion=best_prefer_unmatched
# main -> initial_partitioning
i-mode=rb
i-runs=20
i-use-adaptive-ip-runs=true
i-min-adaptive-ip-runs=5
i-perform-refinement-on-best-partitions=true
i-fm-refinement-rounds=2147483647
i-remove-degree-zero-hns-before-ip=true
i-lp-maximum-iterations=20
i-lp-initial-block-size=5
# main -> initial_partitioning -> refinement
i-r-refine-until-no-improvement=true
i-r-max-batch-size=1000
i-r-min-border-vertices-per-thread=0
i-r-initialize-gain-cache=false
# main -> initial_partitioning -> refinement -> label_propagation
i-r-lp-type=label_propagation
i-r-lp-maximum-iterations=5
i-r-lp-rebalancing=true
i-r-lp-he-size-activation-threshold=100
# main -> initial_partitioning -> refinement -> fm
i-r-fm-type=kway_fm
i-r-fm-multitry-rounds=5
i-r-fm-perform-moves-global=false
i-r-fm-rollback-parallel=false
i-r-fm-rollback-balance-violation-factor=1
i-r-fm-seed-nodes=5
i-r-fm-obey-minimal-parallelism=false
i-r-fm-release-nodes=true
i-r-fm-time-limit-factor=0.25
# main -> initial_partitioning -> refinement -> flows
i-r-flow-algo=do_nothing
# main -> initial_partitioning -> refinement -> global fm
i-r-use-global-fm=false
# main -> refinement
r-rebalancer-type=simple_rebalancer
r-refine-until-no-improvement=true
r-max-batch-size=1000
r-min-border-vertices-per-thread=50
r-initialize-gain-cache=false
# main -> refinement -> label_propagation
r-lp-type=label_propagation
r-lp-maximum-iterations=5
r-lp-rebalancing=true
r-lp-he-size-activation-threshold=100
# main -> refinement -> fm
r-fm-type=kway_fm
r-fm-multitry-rounds=10
r-fm-perform-moves-global=false
r-fm-rollback-parallel=false
r-fm-rollback-balance-violation-factor=1.25
r-fm-seed-nodes=5
r-fm-release-nodes=true
r-fm-min-improvement=-1.0
r-fm-obey-minimal-parallelism=false
r-fm-time-limit-factor=0.25
r-fm-iter-moves-on-recalc=true
# main -> refinement -> flows
r-flow-algo=do_nothing
# main -> refinement -> global fm
r-use-global-fm=true
r-global-fm-refine-until-no-improvement=false
r-global-fm-seed-nodes=5
r-global-fm-obey-minimal-parallelism=true
# main -> mapping
one-to-one-mapping-strategy=greedy_mapping
mapping-use-local-search=true
use-two-phase-approach=false
max-steiner-tree-size=4
mapping-largest-he-fraction=0.0
mapping-min-pin-coverage=0.05
Loading

0 comments on commit 97ad92a

Please sign in to comment.