papi_accum(3) - Linux man page
Name
PAPI_read - read hardware counters from an event setPAPI_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 */