Exemplo n.º 1
0
/** @class PAPI_accum_counters
 *	@brief Accumulate and reset counters.
 *
 *	@par C Interface:
 *	\#include <papi.h> @n
 *	int PAPI_accum_counters( long long *values, int array_len );
 *
 * @param *values
 *		an array to hold the counter values of the counting events
 * @param arry_len
 *		the number of items in the *events array
 *
 * @pre
 *		These calls assume an initialized PAPI library and a properly added event set.
 *
 * @post
 *		The counters are reset and left running after the call.
 *
 *	@retval PAPI_EINVAL
 *		One or more of the arguments is invalid.
 *	@retval PAPI_ESYS
 *		A system or C library call failed inside PAPI, see the errno variable.
 *
 * PAPI_accum_counters() adds the event counters into the array *values.
 *
 *	@code
do_100events();
if ( PAPI_read_counters( values, num_hwcntrs ) != PAPI_OK )
	handlw_error(1);
// values[0] now equals 100
do_100events();
if ( PAPI_accum_counters( values, num_hwcntrs ) != PAPI_OK )
	handle_error(1);
// values[0] now equals 200
values[0] = -100;
do_100events();
if ( PAPI_accum_counters(values, num_hwcntrs ) != PAPI_OK )
	handle_error();
// values[0] now equals 0
 *	@endcode
 *
 * @see PAPI_set_opt() PAPI_start_counters()
 */
int
PAPI_accum_counters( long long *values, int array_len )
{
    if ( values == NULL || array_len <= 0 )
        return PAPI_EINVAL;

    return ( _internal_hl_read_cnts( values, array_len, HL_ACCUM ) );
}
Exemplo n.º 2
0
/** @class PAPI_read_counters
 *	@brief Read and reset counters.
 *
 *	@par C Interface:
 *	\#include <papi.h> @n
 *	int PAPI_read_counters( long long *values, int array_len );
 *
 * @param *values
 *		an array to hold the counter values of the counting events
 * @param arry_len
 *		the number of items in the *events array
 *
 * @pre
 *		These calls assume an initialized PAPI library and a properly added event set.
 *
 * @post
 *		The counters are reset and left running after the call.
 *
 *	@retval PAPI_EINVAL
 *		One or more of the arguments is invalid.
 *	@retval PAPI_ESYS
 *		A system or C library call failed inside PAPI, see the errno variable.
 *
 * PAPI_read_counters() copies the event counters into the array *values.
 *
 *	@code
do_100events();
if ( PAPI_read_counters( values, num_hwcntrs ) != PAPI_OK )
	handlw_error(1);
// values[0] now equals 100
do_100events();
if ( PAPI_accum_counters( values, num_hwcntrs ) != PAPI_OK )
	handle_error(1);
// values[0] now equals 200
values[0] = -100;
do_100events();
if ( PAPI_accum_counters(values, num_hwcntrs ) != PAPI_OK )
	handle_error();
// values[0] now equals 0
 *	@endcode
 *
 * @see PAPI_set_opt() PAPI_start_counters()
 */
int
PAPI_read_counters( long long *values, int array_len )
{
    return ( _internal_hl_read_cnts( values, array_len, HL_READ ) );
}
Exemplo n.º 3
0
int PAPI_accum_counters(long long * values, int array_len)
{
   return (_internal_hl_read_cnts(values, array_len, PAPI_HL_ACCUM));
}