Summary of Discussions about Implementation Issues
[These comments were supplied by Baljinder Ghotra, who coordinated the PTR
effort until Spring of 1996]
During the last couple of months there have been a number of questions about
the design and implementation of the Portable Timing Routines. These questions
and my answers to these questions are listed here, in the hope that others can
use these and more importantly give me feedback about these questions/issues.
For a summary of the discussion about the header files click
Some implementation related questions
- The purpose of opt_ticksize as an argument for PTR_init_wall_timer.
The opt_ticksize argument is used to supply a value for tick period (as defined
in the header file), a value that the user may have calculated, or 0 is
supplied if the user wishes to calculate the value at runtime. I am currently
storing the value in a static variable for internal use by the routines
(especially during interval calculation).
- The need to distinguish Fortran bindings and C bindings, in case
vendors want to provide Fortran wrappers for C bindings.
Currently all the Fortran subroutine names are in all caps. Whereas the C
routines have the first character capitalized (after the PTR_ prefix) and all
the rest of the characters are lower case.
For the Fortran version it might be a good idea to make them all lowercase
since the compiler does this anyway. But this has to be agreed upon by the
group as a whole.
- The need for timer constants to be thread private variables.
According to my understanding we are not doing anything about threads at this
point. I guess we can bring up this point with the working group as a
- The difference between tick value and the resolution.
Here is the definition of Resolution as presented in the PTR Overview.
The minimal time unit that can be measured with confidence. It will be at
least as coarse as the tick period, and probably coarser since many timers
operate as step, rather than continuous functions. This value will be nominal
(i.e., supplied by the vendor) indicating the number of bits that should be
considered valid when calculating elapsed time.
- What is to be measured as overhead?
The amount of time it taken by the routines that get the timer value, i.e.,
- Agreement on return values.
The return type of all the subroutines is void.
All status information is
returned using the PTR_???_stat arguments (the last argument on the
initialization and interval calculating routines). The PTR_Get_???_time
routines don't return any status information.
All information supplied by or returned by the routines is of type "double".
This does not include the opaque timer values, those are of type
PTR_???_timer_val (defined in the header files).
Fortran types will be specified in the "ftimer.h" header file.