From 46646b61b81b65109eaf9f388b0c5413740b2cfe Mon Sep 17 00:00:00 2001 From: Tobias Heuer Date: Thu, 20 Jul 2023 17:01:39 +0200 Subject: [PATCH] Revert "add cmake compile flag for disabling cut metric" This reverts commit 222113d880e205aae7811e6c3ecdc767d87a3cf2. --- .github/workflows/branch_ci.yml | 4 ++-- CMakeLists.txt | 7 ------- mt-kahypar/macros.h | 6 ------ mt-kahypar/partition/context.cpp | 7 ------- mt-kahypar/partition/deep_multilevel.cpp | 2 -- mt-kahypar/partition/refinement/CMakeLists.txt | 5 +---- .../refinement/gains/gain_cache_ptr.h | 18 ------------------ .../refinement/gains/gain_definitions.h | 10 +++------- .../partition/registries/register_policies.cpp | 2 -- .../bipartitioning_gain_policy_test.cc | 4 ++-- tests/partition/refinement/gain_cache_test.cc | 12 ++++++------ 11 files changed, 14 insertions(+), 63 deletions(-) diff --git a/.github/workflows/branch_ci.yml b/.github/workflows/branch_ci.yml index 224220ebd..4e2f2ff2a 100644 --- a/.github/workflows/branch_ci.yml +++ b/.github/workflows/branch_ci.yml @@ -37,7 +37,7 @@ jobs: rm -rf build mkdir build cd build - cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON -DKAHYPAR_ENABLE_CUT_METRIC=OFF -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_STEINER_TREE_METRIC=OFF -DKAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES=OFF -DKAHYPAR_ENABLE_QUALITY_PRESET_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF make -j2 MtKaHyPar mt_kahypar_test_suite: @@ -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_CUT_METRIC=OFF -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_STEINER_TREE_METRIC=OFF -DKAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES=OFF -DKAHYPAR_ENABLE_QUALITY_PRESET_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF make -j2 mt_kahypar_tests; - name: Run Mt-KaHyPar Tests diff --git a/CMakeLists.txt b/CMakeLists.txt index 8baf4b1fe..862e39c2a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,9 +70,6 @@ option(KAHYPAR_ENABLE_QUALITY_PRESET_FEATURES option(KAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES "Enables large k partitioning features. Can be turned off for faster compilation." ON) -option(KAHYPAR_ENABLE_CUT_METRIC - "Enables the cut metric. Can be turned off for faster compilation." ON) - option(KAHYPAR_ENABLE_SOED_METRIC "Enables the sum-of-external-degree metric. Can be turned off for faster compilation." ON) @@ -131,10 +128,6 @@ if(KAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES) add_compile_definitions(KAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES) endif(KAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES) -if(KAHYPAR_ENABLE_CUT_METRIC) - add_compile_definitions(KAHYPAR_ENABLE_CUT_METRIC) -endif(KAHYPAR_ENABLE_CUT_METRIC) - if(KAHYPAR_ENABLE_SOED_METRIC) add_compile_definitions(KAHYPAR_ENABLE_SOED_METRIC) endif(KAHYPAR_ENABLE_SOED_METRIC) diff --git a/mt-kahypar/macros.h b/mt-kahypar/macros.h index 31584fee0..5fc356045 100644 --- a/mt-kahypar/macros.h +++ b/mt-kahypar/macros.h @@ -175,12 +175,6 @@ #define ENABLE_QUALITY_PRESET_FOR_GRAPHS(X) #endif -#ifdef KAHYPAR_ENABLE_CUT_METRIC -#define ENABLE_CUT(X) X -#else -#define ENABLE_CUT(X) -#endif - #ifdef KAHYPAR_ENABLE_SOED_METRIC #define ENABLE_SOED(X) X #else diff --git a/mt-kahypar/partition/context.cpp b/mt-kahypar/partition/context.cpp index b0d9b01d0..e9cd865e1 100644 --- a/mt-kahypar/partition/context.cpp +++ b/mt-kahypar/partition/context.cpp @@ -415,13 +415,6 @@ namespace mt_kahypar { } void Context::setupGainPolicy() { - #ifndef KAHYPAR_ENABLE_CUT_METRIC - if ( partition.objective == Objective::cut ) { - ERR("Cut metric is deactivated. Add -DKAHYPAR_ENABLE_CUT_METRIC=ON" - << "to the cmake command and rebuild Mt-KaHyPar."); - } - #endif - #ifndef KAHYPAR_ENABLE_SOED_METRIC if ( partition.objective == Objective::soed ) { ERR("SOED metric is deactivated. Add -DKAHYPAR_ENABLE_SOED_METRIC=ON" diff --git a/mt-kahypar/partition/deep_multilevel.cpp b/mt-kahypar/partition/deep_multilevel.cpp index f69c0e97c..4aee5f43d 100644 --- a/mt-kahypar/partition/deep_multilevel.cpp +++ b/mt-kahypar/partition/deep_multilevel.cpp @@ -620,12 +620,10 @@ void bipartition_each_block(typename TypeTraits::PartitionedHypergraph& partitio const HyperedgeWeight current_objective, const bool progress_bar_enabled) { switch(gain_cache.type) { - #ifdef KAHYPAR_ENABLE_CUT_METRIC case GainPolicy::cut: bipartition_each_block(partitioned_hg, context, GainCachePtr::cast(gain_cache), info, rb_tree, already_cut, current_k, current_objective, progress_bar_enabled); break; - #endif case GainPolicy::km1: bipartition_each_block(partitioned_hg, context, GainCachePtr::cast(gain_cache), info, rb_tree, diff --git a/mt-kahypar/partition/refinement/CMakeLists.txt b/mt-kahypar/partition/refinement/CMakeLists.txt index 1cd2a3cb7..d91e5fad7 100644 --- a/mt-kahypar/partition/refinement/CMakeLists.txt +++ b/mt-kahypar/partition/refinement/CMakeLists.txt @@ -39,10 +39,7 @@ set(SteinerTreeGraphSources foreach(modtarget IN LISTS PARTITIONING_SUITE_TARGETS) target_sources(${modtarget} PRIVATE ${RefinementSources}) target_sources(${modtarget} PRIVATE ${Km1Sources}) - - if ( KAHYPAR_ENABLE_CUT_METRIC ) - target_sources(${modtarget} PRIVATE ${CutSources}) - endif() + target_sources(${modtarget} PRIVATE ${CutSources}) if ( KAHYPAR_ENABLE_SOED_METRIC ) target_sources(${modtarget} PRIVATE ${SoedSources}) diff --git a/mt-kahypar/partition/refinement/gains/gain_cache_ptr.h b/mt-kahypar/partition/refinement/gains/gain_cache_ptr.h index 3aa74bace..858e882f0 100644 --- a/mt-kahypar/partition/refinement/gains/gain_cache_ptr.h +++ b/mt-kahypar/partition/refinement/gains/gain_cache_ptr.h @@ -32,12 +32,8 @@ #include "mt-kahypar/partition/context_enum_classes.h" #include "mt-kahypar/datastructures/hypergraph_common.h" #include "mt-kahypar/partition/refinement/gains/km1/km1_gain_cache.h" -#ifdef KAHYPAR_ENABLE_CUT_METRIC #include "mt-kahypar/partition/refinement/gains/cut/cut_gain_cache.h" -#endif -#ifdef KAHYPAR_ENABLE_SOED_METRIC #include "mt-kahypar/partition/refinement/gains/soed/soed_gain_cache.h" -#endif #ifdef KAHYPAR_ENABLE_STEINER_TREE_METRIC #include "mt-kahypar/partition/refinement/gains/steiner_tree/steiner_tree_gain_cache.h" #endif @@ -62,9 +58,7 @@ class GainCachePtr { public: static gain_cache_t constructGainCache(const Context& context) { switch(context.partition.gain_policy) { - #ifdef KAHYPAR_ENABLE_CUT_METRIC case GainPolicy::cut: return constructGainCache(context); - #endif case GainPolicy::km1: return constructGainCache(context); #ifdef KAHYPAR_ENABLE_SOED_METRIC case GainPolicy::soed: return constructGainCache(context); @@ -86,10 +80,8 @@ class GainCachePtr { static void deleteGainCache(gain_cache_t gain_cache) { if ( gain_cache.gain_cache ) { switch(gain_cache.type) { - #ifdef KAHYPAR_ENABLE_CUT_METRIC case GainPolicy::cut: delete reinterpret_cast(gain_cache.gain_cache); break; - #endif case GainPolicy::km1: delete reinterpret_cast(gain_cache.gain_cache); break; #ifdef KAHYPAR_ENABLE_SOED_METRIC @@ -118,9 +110,7 @@ class GainCachePtr { static void initializeGainCache(const PartitionedHypergraph& partitioned_hg, gain_cache_t gain_cache) { switch(gain_cache.type) { - #ifdef KAHYPAR_ENABLE_CUT_METRIC case GainPolicy::cut: cast(gain_cache).initializeGainCache(partitioned_hg); break; - #endif case GainPolicy::km1: cast(gain_cache).initializeGainCache(partitioned_hg); break; #ifdef KAHYPAR_ENABLE_SOED_METRIC case GainPolicy::soed: cast(gain_cache).initializeGainCache(partitioned_hg); break; @@ -140,9 +130,7 @@ class GainCachePtr { static void resetGainCache(gain_cache_t gain_cache) { switch(gain_cache.type) { - #ifdef KAHYPAR_ENABLE_CUT_METRIC case GainPolicy::cut: cast(gain_cache).reset(); break; - #endif case GainPolicy::km1: cast(gain_cache).reset(); break; #ifdef KAHYPAR_ENABLE_SOED_METRIC case GainPolicy::soed: cast(gain_cache).reset(); break; @@ -166,9 +154,7 @@ class GainCachePtr { const Batch& batch, gain_cache_t gain_cache) { switch(gain_cache.type) { - #ifdef KAHYPAR_ENABLE_CUT_METRIC case GainPolicy::cut: partitioned_hg.uncontract(batch, cast(gain_cache)); break; - #endif case GainPolicy::km1: partitioned_hg.uncontract(batch, cast(gain_cache)); break; #ifdef KAHYPAR_ENABLE_SOED_METRIC case GainPolicy::soed: partitioned_hg.uncontract(batch, cast(gain_cache)); break; @@ -190,11 +176,9 @@ class GainCachePtr { const vec& hes_to_restore, gain_cache_t gain_cache) { switch ( gain_cache.type ) { - #ifdef KAHYPAR_ENABLE_CUT_METRIC case GainPolicy::cut: partitioned_hg.restoreSinglePinAndParallelNets(hes_to_restore, cast(gain_cache)); break; - #endif case GainPolicy::km1: partitioned_hg.restoreSinglePinAndParallelNets(hes_to_restore, cast(gain_cache)); break; @@ -227,11 +211,9 @@ class GainCachePtr { static bool checkTrackedPartitionInformation(PartitionedHypergraph& partitioned_hg, gain_cache_t gain_cache) { switch ( gain_cache.type ) { - #ifdef KAHYPAR_ENABLE_CUT_METRIC case GainPolicy::cut: return partitioned_hg.checkTrackedPartitionInformation( cast(gain_cache)); - #endif case GainPolicy::km1: return partitioned_hg.checkTrackedPartitionInformation( cast(gain_cache)); diff --git a/mt-kahypar/partition/refinement/gains/gain_definitions.h b/mt-kahypar/partition/refinement/gains/gain_definitions.h index 60bb67923..6cb7d6dd3 100644 --- a/mt-kahypar/partition/refinement/gains/gain_definitions.h +++ b/mt-kahypar/partition/refinement/gains/gain_definitions.h @@ -37,13 +37,11 @@ #include "mt-kahypar/partition/refinement/gains/km1/km1_gain_computation.h" #include "mt-kahypar/partition/refinement/gains/km1/km1_attributed_gains.h" #include "mt-kahypar/partition/refinement/gains/km1/km1_flow_network_construction.h" -#ifdef KAHYPAR_ENABLE_CUT_METRIC #include "mt-kahypar/partition/refinement/gains/cut/cut_gain_cache.h" #include "mt-kahypar/partition/refinement/gains/cut/cut_rollback.h" #include "mt-kahypar/partition/refinement/gains/cut/cut_gain_computation.h" #include "mt-kahypar/partition/refinement/gains/cut/cut_attributed_gains.h" #include "mt-kahypar/partition/refinement/gains/cut/cut_flow_network_construction.h" -#endif #ifdef KAHYPAR_ENABLE_SOED_METRIC #include "mt-kahypar/partition/refinement/gains/soed/soed_attributed_gains.h" #include "mt-kahypar/partition/refinement/gains/soed/soed_gain_computation.h" @@ -81,7 +79,6 @@ struct Km1GainTypes : public kahypar::meta::PolicyBase { using FlowNetworkConstruction = Km1FlowNetworkConstruction; }; -#ifdef KAHYPAR_ENABLE_CUT_METRIC struct CutGainTypes : public kahypar::meta::PolicyBase { using GainComputation = CutGainComputation; using AttributedGains = CutAttributedGains; @@ -90,7 +87,6 @@ struct CutGainTypes : public kahypar::meta::PolicyBase { using Rollback = CutRollback; using FlowNetworkConstruction = CutFlowNetworkConstruction; }; -#endif #ifdef KAHYPAR_ENABLE_SOED_METRIC struct SoedGainTypes : public kahypar::meta::PolicyBase { @@ -137,8 +133,8 @@ struct SteinerTreeForGraphsTypes : public kahypar::meta::PolicyBase { #endif -using GainTypes = kahypar::meta::Typelist - ENABLE_CUT(COMMA ObjectiveF) +typedef ::testing::Types, + ObjectiveF ENABLE_SOED(COMMA ObjectiveF)> TestConfigs; TYPED_TEST_CASE(ABipartitioningPolicy, TestConfigs); diff --git a/tests/partition/refinement/gain_cache_test.cc b/tests/partition/refinement/gain_cache_test.cc index dba9e19fc..1d0c83b3a 100644 --- a/tests/partition/refinement/gain_cache_test.cc +++ b/tests/partition/refinement/gain_cache_test.cc @@ -430,20 +430,20 @@ class AGainCache : public Test { ds::ThreadSafeFastResetFlagArray<> was_moved; }; -typedef ::testing::Types - ENABLE_CUT(COMMA TestConfig) +typedef ::testing::Types, + TestConfig ENABLE_SOED(COMMA TestConfig) ENABLE_STEINER_TREE(COMMA TestConfig) - ENABLE_GRAPHS(ENABLE_CUT(COMMA TestConfig)) + ENABLE_GRAPHS(COMMA TestConfig) ENABLE_GRAPHS(ENABLE_STEINER_TREE(COMMA TestConfig)) ENABLE_QUALITY_PRESET(COMMA TestConfig) - ENABLE_QUALITY_PRESET(ENABLE_CUT(COMMA TestConfig)) + ENABLE_QUALITY_PRESET(COMMA TestConfig) ENABLE_QUALITY_PRESET(ENABLE_SOED(COMMA TestConfig)) ENABLE_QUALITY_PRESET(ENABLE_STEINER_TREE(COMMA TestConfig)) - ENABLE_QUALITY_PRESET_FOR_GRAPHS(ENABLE_CUT(COMMA TestConfig)) + ENABLE_QUALITY_PRESET_FOR_GRAPHS(COMMA TestConfig) ENABLE_QUALITY_PRESET_FOR_GRAPHS(ENABLE_STEINER_TREE(COMMA TestConfig)) ENABLE_LARGE_K(COMMA TestConfig) - ENABLE_LARGE_K(ENABLE_CUT(COMMA TestConfig)) + ENABLE_LARGE_K(COMMA TestConfig) ENABLE_LARGE_K(ENABLE_SOED(COMMA TestConfig)) ENABLE_LARGE_K(ENABLE_STEINER_TREE(COMMA TestConfig))> TestConfigs;