Comparison of existing tools¶
DrHook¶
George Mozdzynski tries to get a copy of DrHook for our community.
gptl¶
Tom Henderson has been drawing attention to
http://www.burningserver.net/rosinski/gptl/
which they use in their code.
Jim Rosinski provided a bit more information and has joined the discussion!
GPTL (www.burningserver.net/rosinski/gptl) is an open source library to
instrument C, C++, and Fortran codes for performance analysis and
profiling. The instrumentation can be inserted manually by the user wherever
they wish as in the following Fortran example:
program main
include 'gptl.inc'
integer :: ret ! return code
ret = gptlinitialize () ! Initialize GPTL
ret = gptlstart ('main') ! start a timer
ret = gptlstart ('sub1') ! start another timer
call sub1 () ! do some work
ret = gptlstop ('sub1') ! stop a timer
ret = gptlstop ('main') ! stop a timer
ret = gptlpr_file ('results') ! print timing output to a file named results
stop
end program main
Instrumentation can also be done automatically by the compiler at
function entry and exit points if the application being profiled is built
with GNU, Pathscale, Intel, PGI, or AIX compilers. To auto-instrument an
application, add -finstrument-functions (Pathscale, GNU, Intel) or
-Minstrument:functions (PGI) or -qdebug=function_trace (AIX) to the compile
and link flags of the source files to be profiled.
The GPTL web page (www.burningserver.net/rosinski/gptl) contains detailed
information outlining simple and advanced features of the library, and a
clickable link to download the distribution. The library is thread-safe,
contains an optional interface to the PAPI performance counter library, and
optional automatic profiling of MPI calls to report timings and number
of bytes transferred.
mo_timer¶
it is the timing routines we use in ECHAM. I try to make package out of it. It does work with NEC SX computers as well.