Project

General

Profile

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.