Skip to content

Commit

Permalink
#1550 print predefined options overwritten by CLI arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
Jakub Strzebonski committed Feb 16, 2022
1 parent f0ab5ef commit 72efeef
Showing 1 changed file with 161 additions and 0 deletions.
161 changes: 161 additions & 0 deletions src/vt/collective/collective_ops.cc
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
*/

#include "vt/collective/collective_ops.h"
#include "vt/context/context.h"
#include "vt/runtime/runtime.h"
#include "vt/scheduler/scheduler.h"
#include "vt/runtime/runtime_inst.h"
Expand All @@ -53,6 +54,162 @@

namespace vt {

namespace {

#define printIfOverwritten(opt) \
do { \
if (cliConfig.opt != appConfig.opt) { \
++overwrittens; \
fmt::print( \
"{}\t{}--" #opt "{}\n", \
vt_pre, magenta, reset \
); \
} \
} while (0)

void printOverwrittens(
vt::arguments::AppConfig const &cliConfig,
vt::arguments::AppConfig const &appConfig
) {
auto const green = debug::green();
auto const reset = debug::reset();
auto const magenta = debug::magenta();
auto const vt_pre = debug::vtPre();

fmt::print(
"{}{}Predefined options overwritten by CLI arguments:{}\n",
vt_pre, green, reset
);

int overwrittens = 0;

printIfOverwritten(vt_color);
printIfOverwritten(vt_no_color);
printIfOverwritten(vt_quiet);
printIfOverwritten(vt_sched_progress_han);
printIfOverwritten(vt_sched_progress_sec);
printIfOverwritten(vt_no_sigint);
printIfOverwritten(vt_no_sigsegv);
printIfOverwritten(vt_no_sigbus);
printIfOverwritten(vt_no_terminate);
printIfOverwritten(vt_memory_reporters);
printIfOverwritten(vt_print_memory_each_phase);
printIfOverwritten(vt_print_memory_node);
printIfOverwritten(vt_allow_memory_report_with_ps);
printIfOverwritten(vt_print_memory_at_threshold);
printIfOverwritten(vt_print_memory_threshold);
printIfOverwritten(vt_print_memory_sched_poll);
printIfOverwritten(vt_print_memory_footprint);
printIfOverwritten(vt_no_warn_stack);
printIfOverwritten(vt_no_assert_stack);
printIfOverwritten(vt_no_abort_stack);
printIfOverwritten(vt_no_stack);
printIfOverwritten(vt_stack_file);
printIfOverwritten(vt_stack_dir);
printIfOverwritten(vt_stack_mod);
printIfOverwritten(vt_trace);
printIfOverwritten(vt_trace_mpi);
printIfOverwritten(vt_trace_pmpi);
printIfOverwritten(vt_trace_sys_all);
printIfOverwritten(vt_trace_sys_term);
printIfOverwritten(vt_trace_sys_location);
printIfOverwritten(vt_trace_sys_collection);
printIfOverwritten(vt_trace_sys_serial_msg);
printIfOverwritten(vt_trace_file);
printIfOverwritten(vt_trace_dir);
printIfOverwritten(vt_trace_mod);
printIfOverwritten(vt_trace_flush_size);
printIfOverwritten(vt_trace_spec);
printIfOverwritten(vt_trace_spec_file);
printIfOverwritten(vt_trace_memory_usage);
printIfOverwritten(vt_trace_event_polling);
printIfOverwritten(vt_trace_irecv_polling);
printIfOverwritten(vt_lb);
printIfOverwritten(vt_lb_show_spec);
printIfOverwritten(vt_lb_quiet);
printIfOverwritten(vt_lb_file_name);
printIfOverwritten(vt_lb_name);
printIfOverwritten(vt_lb_args);
printIfOverwritten(vt_lb_interval);
printIfOverwritten(vt_lb_stats);
printIfOverwritten(vt_lb_stats_compress);
printIfOverwritten(vt_lb_stats_dir);
printIfOverwritten(vt_lb_stats_file);
printIfOverwritten(vt_lb_stats_dir_in);
printIfOverwritten(vt_lb_stats_file_in);
printIfOverwritten(vt_help_lb_args);
printIfOverwritten(vt_no_detect_hang);
printIfOverwritten(vt_print_no_progress);
printIfOverwritten(vt_epoch_graph_on_hang);
printIfOverwritten(vt_epoch_graph_terse);
printIfOverwritten(vt_term_rooted_use_ds);
printIfOverwritten(vt_term_rooted_use_wave);
printIfOverwritten(vt_hang_freq);
printIfOverwritten(vt_diag_enable);
printIfOverwritten(vt_diag_print_summary);
printIfOverwritten(vt_diag_summary_csv_file);
printIfOverwritten(vt_diag_summary_file);
printIfOverwritten(vt_diag_csv_base_units);
printIfOverwritten(vt_pause);
printIfOverwritten(vt_no_assert_fail);
printIfOverwritten(vt_throw_on_abort);
printIfOverwritten(vt_max_mpi_send_size);
printIfOverwritten(vt_debug_level);
printIfOverwritten(vt_debug_all);
printIfOverwritten(vt_debug_none);
printIfOverwritten(vt_debug_gen);
printIfOverwritten(vt_debug_runtime);
printIfOverwritten(vt_debug_active);
printIfOverwritten(vt_debug_term);
printIfOverwritten(vt_debug_termds);
printIfOverwritten(vt_debug_barrier);
printIfOverwritten(vt_debug_event);
printIfOverwritten(vt_debug_pipe);
printIfOverwritten(vt_debug_pool);
printIfOverwritten(vt_debug_reduce);
printIfOverwritten(vt_debug_rdma);
printIfOverwritten(vt_debug_rdma_channel);
printIfOverwritten(vt_debug_rdma_state);
printIfOverwritten(vt_debug_param);
printIfOverwritten(vt_debug_handler);
printIfOverwritten(vt_debug_hierlb);
printIfOverwritten(vt_debug_temperedlb);
printIfOverwritten(vt_debug_scatter);
printIfOverwritten(vt_debug_sequence);
printIfOverwritten(vt_debug_sequence_vrt);
printIfOverwritten(vt_debug_serial_msg);
printIfOverwritten(vt_debug_trace);
printIfOverwritten(vt_debug_location);
printIfOverwritten(vt_debug_lb);
printIfOverwritten(vt_debug_vrt);
printIfOverwritten(vt_debug_vrt_coll);
printIfOverwritten(vt_debug_worker);
printIfOverwritten(vt_debug_group);
printIfOverwritten(vt_debug_broadcast);
printIfOverwritten(vt_debug_objgroup);
printIfOverwritten(vt_debug_phase);
printIfOverwritten(vt_debug_context);
printIfOverwritten(vt_debug_epoch);
printIfOverwritten(vt_debug_print_flush);
printIfOverwritten(vt_user_1);
printIfOverwritten(vt_user_2);
printIfOverwritten(vt_user_3);
printIfOverwritten(vt_user_int_1);
printIfOverwritten(vt_user_int_2);
printIfOverwritten(vt_user_int_3);
printIfOverwritten(vt_user_str_1);
printIfOverwritten(vt_user_str_2);
printIfOverwritten(vt_user_str_3);
printIfOverwritten(vt_output_config);
printIfOverwritten(vt_output_config_file);

if (overwrittens == 0) {
fmt::print("{}\tNone.\n", vt_pre);
}
}

} /* end anon namespace */

template <runtime::RuntimeInstType instance>
RuntimePtrType CollectiveAnyOps<instance>::initialize(
int& argc, char**& argv, WorkerCountType const num_workers,
Expand Down Expand Up @@ -80,6 +237,10 @@ RuntimePtrType CollectiveAnyOps<instance>::initialize(
#pragma sst global rt
RuntimeInst<instance>::rt->initialize();

if (appConfig && theContext()->getNode() == 0) {
printOverwrittens(*rt->getAppConfig(), *appConfig);
}

return runtime::makeRuntimePtr(rt_ptr);
}

Expand Down

0 comments on commit 72efeef

Please sign in to comment.