Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

papi_num_cmp_hwctrs(3) [centos man page]

PAPI_num_cmp_hwctrs(3)						       PAPI						    PAPI_num_cmp_hwctrs(3)

NAME
PAPI_num_cmp_hwctrs - Return the number of hardware counters for the specified component. SYNOPSIS
Detailed Description PAPI_num_cmp_hwctrs() returns the number of counters present in the specified component. By convention, component 0 is always the cpu. On some components, especially for CPUs, the value returned is a theoretical maximum for estimation purposes only. It might not be possible to easily create an EventSet that contains the full number of events. This can be due to a variety of reasons: 1). Some CPUs (especially Intel and POWER) have the notion of fixed counters that can only measure one thing, usually cycles. 2). Some CPUs have very explicit rules about which event can run in which counter. In this case it might not be possible to add a wanted event even if counters are free. 3). Some CPUs halve the number of counters available when running with SMT (multiple CPU threads) enabled. 4). Some operating systems 'steal' a counter to use for things such as NMI Watchdog timers. The only sure way to see if events will fit is to attempt adding events to an EventSet, and doing something sensible if an error is generated. PAPI_library_init() must be called in order for this function to return anything greater than 0. C Interface: #include <papi.h> int PAPI_num_cmp_hwctrs(int cidx ); Parameters: cidx -- An integer identifier for a component. By convention, component 0 is always the cpu component. Example * // Query the cpu component for the number of counters. * printf( * Returns: On success, this function returns a value greater than zero. A zero result usually means the library has not been initialized. Author Generated automatically by Doxygen for PAPI from the source code. Version 5.2.0.0 Tue Jun 17 2014 PAPI_num_cmp_hwctrs(3)

Check Out this Related Man Page

PAPI_set_cmp_granularity(3)					       PAPI					       PAPI_set_cmp_granularity(3)

NAME
PAPI_set_cmp_granularity - Set the default counting granularity for eventsets bound to the specified component. SYNOPSIS
Detailed Description @par C Prototype: int PAPI_set_cmp_granularity( int granularity, int cidx ); @param granularity one of the following constants as defined in the papi.h header file @arg PAPI_GRN_THR Count each individual thread @arg PAPI_GRN_PROC Count each individual process @arg PAPI_GRN_PROCG Count each individual process group @arg PAPI_GRN_SYS Count the current CPU @arg PAPI_GRN_SYS_CPU Count all CPUs individually @arg PAPI_GRN_MIN The finest available granularity @arg PAPI_GRN_MAX The coarsest available granularity @param cidx An integer identifier for a component. By convention, component 0 is always the cpu component. Return values: PAPI_OK PAPI_EINVAL One or more of the arguments is invalid. PAPI_ENOCMP The argument cidx is not a valid component. PAPI_set_cmp_granularity sets the default counting granularity for all new event sets, and requires an explicit component argument. Event sets that are already in existence are not affected. To change the granularity of an existing event set, please see PAPI_set_opt. The reader should note that the granularity of an event set affects only the mode in which the counter continues to run. Example: int ret; // Initialize the library ret = PAPI_library_init(PAPI_VER_CURRENT); if (ret > 0 && ret != PAPI_VER_CURRENT) { fprintf(stderr,"PAPI library version mismatch!0); exit(1); } if (ret < 0) handle_error(ret); // Set the default granularity for the cpu component ret = PAPI_set_cmp_granularity(PAPI_GRN_PROC, 0); if (ret != PAPI_OK) handle_error(ret); ret = PAPI_create_eventset(&EventSet); if (ret != PAPI_OK) handle_error(ret); * See Also: PAPI_set_granularity PAPI_set_domain PAPI_set_opt PAPI_get_opt Author Generated automatically by Doxygen for PAPI from the source code. Version 5.2.0.0 Tue Jun 17 2014 PAPI_set_cmp_granularity(3)
Man Page