Hi Everyone,<br><br>This email is regarding a potential commit to src/framework. I have updated module_timer.F to have extra functionality but it *IS* backward compatible. So, none of the existing cores that use timers will be required to change their calls, but they can if they want to take advantage of the new functionality.<br>

<br>Previously the calls to timers looked something like this:<br>call timer_start(&quot;total time&quot;)<br><br>where timer_start as the following interface now.<br>timer_start(timer_name, clear_timer, timer_ptr)<br><br>

where timer_name and clear_timer are both options from the previous interface, and timer_ptr is new.<br>timer_ptr essentially allows a module to keep a pointer to a timer. This lets you have different timers with the same name. timer_stop uses this interface as well, and timer_write&#39;s interface has not changed at all.<br>

<br>In addition to the interface changes, I changed the information that is printed when timer_write it called, following this layout.<br><br>level timer_name total calls min max avg percent<br><br>Where all of these labels are self explanatory except level. Level in this case shows the number of timers that were running when the timer was called. total_timer should be level 0, and all timers with level 1 should be less than or equal to the level 0 timer.<br>

<br>With all of these interface changes, I also added MPI timers, and PAPI timers which are used based on compile time options. To help add in the PAPI timers, I modified the Makefile and added three options. The three options I added were<br>

<br>ifort-serial - Uses no MPI calls, and system_clock for timing<br>ifort-papi - Uses MPI calls with PAPI timers for timing<br>ifort-papi-serial - Uses no MPI calls and PAPI timers for timing<br><br>and the original<br>
<br>
ifort - Uses MPI calls with MPI timers for timing<br><br>The modifications to the Makefile were minimal, mainly just adding an additional variable to the LIBS variable, and building the other three options. <br><br>I would like to commit these changes back to trunk soon, as I think they will help everyone in profiling their cores better.<br>

<br>Thanks,<br>Doug<br><br>