Note to MPI forum: Please only change existing API specs when absolutely necessary! Changing the API can cause major disruption to other library developers and to users of your library! The recent addition of "const" to the API spec of some arguments of existing MPI functions seems totally unnecessary.
IMPORTANT NOTE: Slight API changes to GPTLstart_handle() and GPTLstop_handle() were required. In C/C++ the type of the handle argument was changed from void ** to int *. In Fortran the type changed from integer(8) to integer. Tests of the new library with the GNU compilers using the old types produced compiler warnings but still worked properly.
Also, a breakdown of overhead components by GPTL function is presented when gptlpr() or gptlpr_file() are called. Examples include the Fortran wrapper layer, generating the hash index, and calling the underlying timing routine. More importantly, also printed is a per-region estimate of total overhead incurred, and total overhead incurred in the parent of the region as a result of timing the region.
IMPORTANT NOTE: Currently GPTL doesn't know if the user API was Fortran or C/C++. Also, calls to the start/stop routines can be intermixed with their start_handle and stop_handle counterparts at will. Therefore GPTL produces a "worst-case" estimate of induced overhead. Specifically, Fortran user-level code and exclusive use of GPTLstart()/GPTLstop() instead of the more efficient GPTLstart_handle() and GPTLstop_handle() is assumed. Users can refine the overhead estimate by hand by subtracting the components which do not apply. For example, if the Fortran API is not used and GPTL reports that the relative cost of the Fortran API is 10% of the total overhead, the total overhead estimate can be reduced by 10%.