papi_accum(3) - Linux man page

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)