diff --git a/dune/perftool/common/timer_chrono.hh b/dune/perftool/common/timer_chrono.hh index 6e2098a10a2433d0a3ffdf108d8d226ed82cf3f0..91fee78e8e4708a99e58e316b6181e80f1c12159 100644 --- a/dune/perftool/common/timer_chrono.hh +++ b/dune/perftool/common/timer_chrono.hh @@ -79,35 +79,35 @@ #ifdef ENABLE_COUNTER -#define DUMP_TIMER(name,os,reset)\ +#define DUMP_TIMER(level,name,os,reset)\ if (HP_TIMER_ELAPSED(name) > 1e-12) \ - os << ident << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \ + os << #level << " " << ident << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \ HP_TIMER_OPCOUNTERS(name).reportOperations(os,ident,#name,reset); -#define DUMP_AND_ACCUMULATE_TIMER(name,os,reset,time,ops) \ +#define DUMP_AND_ACCUMULATE_TIMER(level,name,os,reset,time,ops) \ if (HP_TIMER_ELAPSED(name) > 1e-12) \ - os << ident << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \ + os << #level << " " << ident << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \ time += HP_TIMER_ELAPSED(name); \ ops += HP_TIMER_OPCOUNTERS(name); \ HP_TIMER_OPCOUNTERS(name).reportOperations(os,ident,#name,reset); #elif defined ENABLE_HP_TIMERS -#define DUMP_TIMER(name,os,reset) \ +#define DUMP_TIMER(level,name,os,reset) \ if (HP_TIMER_ELAPSED(name) > 1e-12) \ - os << ident << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \ + os << #level << " " << ident << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \ if (reset) HP_TIMER_RESET(name); -#define DUMP_AND_ACCUMULATE_TIMER(name,os,reset,time,ops) \ +#define DUMP_AND_ACCUMULATE_TIMER(level,name,os,reset,time,ops) \ if (HP_TIMER_ELAPSED(name) > 1e-12) \ - os << ident << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \ + os << #level << " " << ident << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \ time += HP_TIMER_ELAPSED(name); \ if (reset) HP_TIMER_RESET(name); #else -#define DUMP_TIMER(name,os,reset) -#define DUMP_AND_ACCUMULATE_TIMER(name,os,reset,time,ops) +#define DUMP_TIMER(level,name,os,reset) +#define DUMP_AND_ACCUMULATE_TIMER(level,name,os,reset,time,ops) #endif diff --git a/dune/perftool/common/timer_tsc.hh b/dune/perftool/common/timer_tsc.hh index a893fdae507fc2319ce16206b0baefe30e305b81..3089ec3f1a8916c1af17b22ef018c257304c0ad2 100644 --- a/dune/perftool/common/timer_tsc.hh +++ b/dune/perftool/common/timer_tsc.hh @@ -77,35 +77,35 @@ #ifdef ENABLE_COUNTER -#define DUMP_TIMER(name,os,reset)\ +#define DUMP_TIMER(level,name,os,reset)\ if (HP_TIMER_DURATION(name) > 1e-12) \ - os << ident << " " << #name << " time " << Dune::PDELab::TSC::seconds(HP_TIMER_DURATION(name)) << std::endl; \ + os << #level << " " << ident << " " << #name << " time " << Dune::PDELab::TSC::seconds(HP_TIMER_DURATION(name)) << std::endl; \ HP_TIMER_OPCOUNTERS(name).reportOperations(os,ident,#name,reset); -#define DUMP_AND_ACCUMULATE_TIMER(name,os,reset,time,ops) \ +#define DUMP_AND_ACCUMULATE_TIMER(level,name,os,reset,time,ops) \ if (HP_TIMER_DURATION(name) > 1e-12) \ - os << ident << " " << #name << " time " << Dune::PDELab::TSC::seconds(HP_TIMER_DURATION(name)) << std::endl; \ + os << #level << " " << ident << " " << #name << " time " << Dune::PDELab::TSC::seconds(HP_TIMER_DURATION(name)) << std::endl; \ time += HP_TIMER_DURATION(name); \ ops += HP_TIMER_OPCOUNTERS(name); \ HP_TIMER_OPCOUNTERS(name).reportOperations(os,ident,#name,reset); #elif defined ENABLE_HP_TIMERS -#define DUMP_TIMER(name,os,reset) \ +#define DUMP_TIMER(level, name,os,reset) \ if (HP_TIMER_DURATION(name) > 1e-12) \ - os << ident << " " << #name << " time " << Dune::PDELab::TSC::seconds(HP_TIMER_DURATION(name)) << std::endl; \ + os << #level << " " << ident << " " << #name << " time " << Dune::PDELab::TSC::seconds(HP_TIMER_DURATION(name)) << std::endl; \ if (reset) HP_TIMER_RESET(name); -#define DUMP_AND_ACCUMULATE_TIMER(name,os,reset,time,ops) \ +#define DUMP_AND_ACCUMULATE_TIMER(level, name,os,reset,time,ops) \ if (HP_TIMER_DURATION(name) > 1e-12) \ - os << ident << " " << #name << " time " << Dune::PDELab::TSC::seconds(HP_TIMER_DURATION(name)) << std::endl; \ + os << #level << " " << ident << " " << #name << " time " << Dune::PDELab::TSC::seconds(HP_TIMER_DURATION(name)) << std::endl; \ time += HP_TIMER_DURATION(name); \ if (reset) HP_TIMER_RESET(name); #else -#define DUMP_TIMER(name,os,reset) -#define DUMP_AND_ACCUMULATE_TIMER(name,os,reset,time,ops) +#define DUMP_TIMER(level,name,os,reset) +#define DUMP_AND_ACCUMULATE_TIMER(level,name,os,reset,time,ops) #endif diff --git a/python/dune/perftool/generation/cpp.py b/python/dune/perftool/generation/cpp.py index 0db90171a584a2237314fbf399e89656c7154a21..8ee17a241552d95d88a991bac67e5fb48a974886 100644 --- a/python/dune/perftool/generation/cpp.py +++ b/python/dune/perftool/generation/cpp.py @@ -48,5 +48,5 @@ def dump_accumulate_timer(name): # reset = name_time_dumper_reset() reset = 'false' - code = "DUMP_TIMER({},{},{});".format(name, os, reset) + code = "DUMP_TIMER({},{},{},{});".format(get_option("instrumentation_level"), name, os, reset) return code diff --git a/python/dune/perftool/pdelab/driver/__init__.py b/python/dune/perftool/pdelab/driver/__init__.py index 2c38881f4a7351a199bc43f1515d8fc55c9914d2..46ced0b36a5032a32f1aa2ca59e9879e998a96c8 100644 --- a/python/dune/perftool/pdelab/driver/__init__.py +++ b/python/dune/perftool/pdelab/driver/__init__.py @@ -295,7 +295,7 @@ def generate_driver(formdatas, data): post_include("HP_DECLARE_TIMER(driver);\n", filetag="driver") contents.insert(0, Line(text="HP_TIMER_START(driver);\n")) contents.insert(len(contents) - 1, Line(text="HP_TIMER_STOP(driver);\n")) - contents.insert(len(contents) - 1, Line(text="DUMP_TIMER(driver, {}, true);\n".format(timestream))) + contents.insert(len(contents) - 1, Line(text="DUMP_TIMER({}, driver, {}, true);\n".format(get_option("instrumentation_level"), timestream))) contents.insert(0, Line(text="\n")) driver_body = Block(contents) driver = FunctionBody(driver_signature, driver_body) diff --git a/python/dune/perftool/pdelab/driver/solve.py b/python/dune/perftool/pdelab/driver/solve.py index 389a10c4c350801d71b7035e7a8115de8f8cff16..8042492c357580f23270f01718d02fc2823d99bd 100644 --- a/python/dune/perftool/pdelab/driver/solve.py +++ b/python/dune/perftool/pdelab/driver/solve.py @@ -67,7 +67,7 @@ def dune_solve(): solve = ["HP_TIMER_START(solve);", "{}".format(solve), "HP_TIMER_STOP(solve);", - "DUMP_TIMER(solve, {}, true);".format(timestream), + "DUMP_TIMER({}, solve, {}, true);".format(get_option("instrumentation_level"), timestream), ] if get_option('instrumentation_level') >= 3: solve.extend(print_times) diff --git a/python/dune/perftool/pdelab/driver/timings.py b/python/dune/perftool/pdelab/driver/timings.py index d420e61eba8adfcad4188f3cdf9e7441de610ba1..2b00b92c008f912386a73d22441caf64806ce455 100644 --- a/python/dune/perftool/pdelab/driver/timings.py +++ b/python/dune/perftool/pdelab/driver/timings.py @@ -98,7 +98,7 @@ def evaluate_residual_timer(): evaluation = ["HP_TIMER_START(residual_evaluation);", "{}.residual({}, r);".format(n_go, v), "HP_TIMER_STOP(residual_evaluation);", - "DUMP_TIMER(residual_evaluation, {}, true);".format(timestream)] + "DUMP_TIMER({}, residual_evaluation, {}, true);".format(get_option("instrumentation_level"), timestream)] evaluation.extend(print_times) else: evaluation = ["{}.residual({}, r);".format(n_go, v)] @@ -137,7 +137,7 @@ def apply_jacobian_timer(): evaluation = ["HP_TIMER_START(apply_jacobian);", "{}.jacobian_apply({}, j);".format(n_go, v), "HP_TIMER_STOP(apply_jacobian);", - "DUMP_TIMER(apply_jacobian, {}, true);".format(timestream)] + "DUMP_TIMER({}, apply_jacobian, {}, true);".format(get_option("instrumentation_level"), timestream)] evaluation.extend(print_times) else: evaluation = ["{}.jacobian_apply({}, j);".format(n_go, v)] @@ -174,7 +174,7 @@ def assemble_matrix_timer(): assembly = ["HP_TIMER_START(matrix_assembly);", "{}.jacobian({},m);".format(n_go, v), "HP_TIMER_STOP(matrix_assembly);", - "DUMP_TIMER(matrix_assembly, {}, true);".format(timestream)] + "DUMP_TIMER({}, matrix_assembly, {}, true);".format(get_option("instrumentation_level"), timestream)] assembly.extend(print_times) else: assembly = ["{}.jacobian({},m);".format(n_go, v)]