mrnorman/YAKL

Move YAKL timers to custom timers

mrnorman opened this issue · 2 comments

Create a custom timing library for YAKL instead of GPTL to improve simplicity. Create global std::function objects that define the init, start, stop, and finalize for the timers. Create routines that allow the user to override what these functions do so that if they want to use GPTL instead, they can easily do that. For instance, init and finalize could be set to empty functions, and start and stop can route to the GPTL start and stop. That way, YAKL doesn't need to manage GPTL compiling and linking, and there is no longer a potential clash between YAKL's timer implementation and an external program's. Further, it can easily be done header-only, and it reduces the number of source files the user has to worry about compiling.

So, Scorpio folks bundle the E3SM version of GPTL within their repo. Is that something feasible for you?

Hmm...I worry that this would not produce GPTL timing files by default which are required for PACE etc. And we have to worry about parsing another timing output format.

@sarats and I decided that codes that want to use PACE will override YAKL's timers with an external GPTL library call, and it should all be good then.