PAPI_read

Langue: en

Version: September, 2004 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

PAPI_read - read hardware counters from an event set

PAPI_accum - accumulate and reset counters in an event set

SYNOPSIS

C Interface
 #include <papi.h>
 int PAPI_read(int EventSet, long_long *values);
 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_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_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)