NAME
PAPI_read - read hardware counters from an event set
PAPI_read_ts - read hardware counters with a timestamp
PAPI_accum - accumulate and reset counters in an event set
CONTENTS
Synopsis
Description
Arguments
Return Values
Errors
Examples
Bugs
See Also
SYNOPSIS
C Interface
#include <papi.h>
int PAPI_read(int EventSet, long_long *values);
int PAPI_read_ts(int EventSet, long_long *values, long_long *cyc);
int PAPI_accum(int EventSet, long_long *values);
Fortran Interface
#include fpapi.h
PAPIF_read(C_INT EventSet, C_LONG_LONG(*) values, C_INT check)
PAPIF_read_ts(C_INT EventSet, C_LONG_LONG(*) values, C_LONG_LONG(*) cyc, C_INT check)
PAPIF_accum(C_INT EventSet, C_LONG_LONG(*) values, C_INT check)
DESCRIPTION
These calls assume an initialized PAPI library and a properly added event set.
PAPI_read() copies the counters of the indicated event set into the array
values. The counters continue counting after the read.
PAPI_read_ts() copies the counters of the indicated event set into the array
values. It also places a real-time cycle timestamp into
cyc. The counters continue counting after the read. This call DOES NO ERROR CHECKING for performance sakes. The user should call a PAPI_read() before to make sure that this call will succeed. Invalid arguments to this call will likely result in dumping core.
PAPI_accum() adds the counters of the indicated event set into the array
values. The counters are zeroed and continue counting after the operation.
Note the differences between PAPI_read() and PAPI_accum(),
specifically that PAPI_accum() resets the values array to zero.
ARGUMENTS
EventSet -- an integer handle for a PAPI Event Set as created by
PAPI_create_eventset (3)
*values -- an array to hold the counter values of the counting events
RETURN VALUES
On success, these functions return
PAPI_OK.
On error, a non-zero error code is returned.
ERRORS
PAPI_EINVAL | |
One or more of the arguments is invalid.
|
PAPI_ESYS | |
A system or C library call failed inside PAPI, see the
errno variable.
|
PAPI_ENOEVST | |
The event set specified does not exist.
|
|
EXAMPLES
do_100events();
if (PAPI_read(EventSet, values) != PAPI_OK)
handle_error(1);
/* values[0] now equals 100 */
do_100events();
if (PAPI_accum(EventSet, values) != PAPI_OK)
handle_error(1);
/* values[0] now equals 200 */
values[0] = -100;
do_100events();
if (PAPI_accum(EventSet, values) != PAPI_OK)
handle_error(1);
/* values[0] now equals 0 */
BUGS
These functions have no known bugs.
SEE ALSO
PAPI_set_opt (3),
PAPI_reset (3),
PAPI_start (3),
PAPI (3),
PAPIF (3)
PAPI Programmers Reference | PAPI_read (3) | September, 2004 |
|