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.

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 Programmer’s Reference PAPI_read (3) September, 2004

  Innovative Computing Laboratory
2001 R&D Winner  
Computer Science Department
  University of Tennessee