From 1bb1846f61266e8ee3a924b7e57356ac49044d77 Mon Sep 17 00:00:00 2001 From: Nicole Lemaster Slattengren Date: Mon, 20 Sep 2021 13:02:53 -0700 Subject: [PATCH] #1359: config: add cli argument for lb arg help --- src/vt/configs/arguments/app_config.h | 2 ++ src/vt/configs/arguments/args.cc | 8 +++++++- src/vt/runtime/runtime.cc | 8 ++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/vt/configs/arguments/app_config.h b/src/vt/configs/arguments/app_config.h index 31323502b3..109ef7a36f 100644 --- a/src/vt/configs/arguments/app_config.h +++ b/src/vt/configs/arguments/app_config.h @@ -145,6 +145,7 @@ struct AppConfig { std::string vt_lb_stats_file = "stats.%p.json"; std::string vt_lb_stats_dir_in = "vt_lb_stats_in"; std::string vt_lb_stats_file_in = "stats.%p.json"; + bool vt_help_lb_args = false; bool vt_no_detect_hang = false; bool vt_print_no_progress = true; @@ -308,6 +309,7 @@ struct AppConfig { | vt_lb_stats_file | vt_lb_stats_dir_in | vt_lb_stats_file_in + | vt_help_lb_args | vt_no_detect_hang | vt_print_no_progress diff --git a/src/vt/configs/arguments/args.cc b/src/vt/configs/arguments/args.cc index 07ef21e4ef..a47865ad16 100644 --- a/src/vt/configs/arguments/args.cc +++ b/src/vt/configs/arguments/args.cc @@ -343,7 +343,7 @@ void ArgConfig::addLbArgs(CLI::App& app) { * Flags for enabling load balancing and configuring it */ auto lb = "Enable load balancing"; - auto lb_args = "Arguments pass to LB: \"x=0 y=1 test=2\""; + auto lb_args = "Arguments pass to LB: \"x=0 y=1\"; try --vt_help_lb_args"; auto lb_quiet = "Silence load balancing output"; auto lb_file_name = "LB specification file to read"; auto lb_show_spec = "Show LB specification during startup"; @@ -393,6 +393,12 @@ void ArgConfig::addLbArgs(CLI::App& app) { xx->group(debugLB); xy->group(debugLB); xz->group(debugLB); + + // help options deliberately omitted from the debugLB group above so that + // they appear grouped with --vt_help when --vt_help is used + auto help_lb_args = "Print help for --vt_lb_args"; + auto h1 = app.add_flag("--vt_help_lb_args", config_.vt_help_lb_args, help_lb_args); + (void) h1; } void ArgConfig::addDiagnosticArgs(CLI::App& app) { diff --git a/src/vt/runtime/runtime.cc b/src/vt/runtime/runtime.cc index 0d39597ed5..c7506985de 100644 --- a/src/vt/runtime/runtime.cc +++ b/src/vt/runtime/runtime.cc @@ -156,6 +156,14 @@ Runtime::Runtime( arg_config_->parse(/*out*/ argc, /*out*/ argv); int exit_code = std::get<0>(result); + if (getAppConfig()->vt_help_lb_args) { + // Help requested + vrt::collection::balance::LBManager::printLBArgsHelp(getAppConfig()->vt_lb_name); + if (exit_code == -1) { + exit_code = 0; + } + } + if (exit_code not_eq -1) { // Help requested or invalid argument(s). MPI_Comm comm = initial_communicator_;