From d9703ddf121146b76838ffe5a1b107bb3e159ad3 Mon Sep 17 00:00:00 2001 From: SUTER Frederic Date: Tue, 15 Mar 2022 04:25:05 +0100 Subject: [PATCH] [config] some declare_flag to Flag --- include/xbt/config.hpp | 17 +++++++++ src/simgrid/sg_config.cpp | 74 ++++++++++++++++++++++----------------- 2 files changed, 58 insertions(+), 33 deletions(-) diff --git a/include/xbt/config.hpp b/include/xbt/config.hpp index b6ebe3ed76..494d89ce8a 100644 --- a/include/xbt/config.hpp +++ b/include/xbt/config.hpp @@ -303,7 +303,24 @@ public: XBT_PUBLIC void finalize(); XBT_PUBLIC void show_aliases(); XBT_PUBLIC void help(); + } // namespace config } // namespace simgrid +/******************************** Configuration of Simgrid **************************************/ +extern XBT_PUBLIC simgrid::config::Flag _sg_context_stack_size; +extern XBT_PUBLIC simgrid::config::Flag _sg_context_guard_size; +extern XBT_PUBLIC simgrid::config::Flag _sg_context_nthreads; +extern XBT_PUBLIC simgrid::config::Flag _sg_context_synchro; + +extern XBT_PUBLIC simgrid::config::Flag _sg_cpu_maxmin_selective_update; + +extern XBT_PUBLIC simgrid::config::Flag _sg_bmf_selective_update; + +extern XBT_PUBLIC simgrid::config::Flag _sg_network_loopback_bandwidth; +extern XBT_PUBLIC simgrid::config::Flag _sg_network_loopback_latency; +extern XBT_PUBLIC simgrid::config::Flag _sg_network_maxmin_selective_update; + +extern XBT_PUBLIC simgrid::config::Flag _sg_execution_cutpath; + #endif diff --git a/src/simgrid/sg_config.cpp b/src/simgrid/sg_config.cpp index 2ce0de033a..196254d41c 100644 --- a/src/simgrid/sg_config.cpp +++ b/src/simgrid/sg_config.cpp @@ -269,10 +269,11 @@ void sg_config_init(int *argc, char **argv) simgrid::config::bind_flag(sg_bmf_max_iterations, "bmf/max-iterations", "Maximum number of steps to be performed while searching for a BMF allocation"); - simgrid::config::declare_flag("bmf/selective-update", - "Update the constraint set propagating recursively to others constraints " - "(off by default)", - false); + simgrid::config::Flag _sg_bmf_selective_update{ + "bmf/selective-update", + "Update the constraint set propagating recursively to others constraints " + "(off by default)", + false}; /* The parameters of network models */ @@ -290,15 +291,17 @@ void sg_config_init(int *argc, char **argv) sg_weight_S_parameter, "network/weight-S", "Correction factor to apply to the weight of competing streams (default value set by network model)"); - simgrid::config::declare_flag("network/loopback-lat", - "For network models with an implicit loopback link (L07, CM02, LV08), " - "latency of the loopback link. 0 by default", - 0); + simgrid::config::Flag _sg_network_loopback_latency{ + "network/loopback-lat", + "For network models with an implicit loopback link (L07, CM02, LV08), " + "latency of the loopback link. 0 by default", + 0.0}; - simgrid::config::declare_flag("network/loopback-bw", - "For network models with an implicit loopback link (L07, CM02, LV08), " - "bandwidth of the loopback link. 10GBps by default", - 10e9); + simgrid::config::Flag _sg_network_loopback_bandwidth{ + "network/loopback-bw", + "For network models with an implicit loopback link (L07, CM02, LV08), " + "bandwidth of the loopback link. 10GBps by default", + 10e9}; /* Inclusion path */ simgrid::config::declare_flag("path", "Lookup path for inclusions in platform and deployment XML files", @@ -307,17 +310,20 @@ void sg_config_init(int *argc, char **argv) surf_path.push_back(path); }); - simgrid::config::declare_flag("cpu/maxmin-selective-update", - "Update the constraint set propagating recursively to others constraints " - "(off by default unless optim is set to lazy)", - "no"); - simgrid::config::declare_flag("network/maxmin-selective-update", "Update the constraint set propagating " - "recursively to others constraints (off by " - "default unless optim is set to lazy)", - "no"); - - simgrid::config::declare_flag("contexts/stack-size", "Stack size of contexts in KiB (not with threads)", - 8 * 1024, [](int value) { simgrid::kernel::context::stack_size = value * 1024; }); + simgrid::config::Flag _sg_cpu_maxmin_selective_update{ + "cpu/maxmin-selective-update", + "Update the constraint set propagating recursively to others constraints " + "(off by default unless optim is set to lazy)", + false}; + simgrid::config::Flag _sg_network_maxmin_selective_update{"network/maxmin-selective-update", + "Update the constraint set propagating " + "recursively to others constraints (off by " + "default unless optim is set to lazy)", + false}; + + simgrid::config::Flag _sg_context_stack_size{ + "contexts/stack-size", "Stack size of contexts in KiB (not with threads)", 8 * 1024, + [](int value) { simgrid::kernel::context::stack_size = value * 1024; }}; /* guard size for contexts stacks in memory pages */ #if defined(_WIN32) || (PTH_STACKGROWTH != -1) @@ -325,11 +331,12 @@ void sg_config_init(int *argc, char **argv) #else int default_guard_size = 1; #endif - simgrid::config::declare_flag("contexts/guard-size", "Guard size for contexts stacks in memory pages", - default_guard_size, - [](int value) { simgrid::kernel::context::guard_size = value * xbt_pagesize; }); - simgrid::config::declare_flag("contexts/nthreads", "Number of parallel threads used to execute user contexts", 1, - &simgrid::kernel::context::set_nthreads); + simgrid::config::Flag _sg_context_guard_size{ + "contexts/guard-size", "Guard size for contexts stacks in memory pages", default_guard_size, + [](int value) { simgrid::kernel::context::guard_size = value * xbt_pagesize; }}; + simgrid::config::Flag _sg_context_nthreads{"contexts/nthreads", + "Number of parallel threads used to execute user contexts", 1, + &simgrid::kernel::context::set_nthreads}; /* synchronization mode for parallel user contexts */ #if HAVE_FUTEX_H @@ -337,9 +344,10 @@ void sg_config_init(int *argc, char **argv) #else // No futex on mac and posix is unimplemented yet std::string default_synchro_mode = "busy_wait"; #endif - simgrid::config::declare_flag("contexts/synchro", "Synchronization mode to use when running contexts in " - "parallel (either futex, posix or busy_wait)", - default_synchro_mode, &_sg_cfg_cb_contexts_parallel_mode); + simgrid::config::Flag _sg_context_synchro{"contexts/synchro", + "Synchronization mode to use when running contexts in " + "parallel (either futex, posix or busy_wait)", + default_synchro_mode, &_sg_cfg_cb_contexts_parallel_mode}; // For smpi/bw-factor and smpi/lat-factor // SMPI model can be used without enable_smpi, so keep this out of the ifdef. @@ -359,8 +367,8 @@ void sg_config_init(int *argc, char **argv) "0.965;0.925;1.35"); /* Others */ - simgrid::config::declare_flag( - "exception/cutpath", "Whether to cut all path information from call traces, used e.g. in exceptions.", false); + simgrid::config::Flag _sg_execution_cutpath{ + "exception/cutpath", "Whether to cut all path information from call traces, used e.g. in exceptions.", false}; if (surf_path.empty()) simgrid::config::set_default("path", "./"); -- 2.20.1