CPrototype:
#include <papi.h>
int PAPI_set_granularity(intgranularity);
Parameters-- granularity one of the following constants as defined in the papi.h header file
• PAPI_GRN_THR -- Count each individual thread
• PAPI_GRN_PROC -- Count each individual process
• PAPI_GRN_PROCG -- Count each individual process group
• PAPI_GRN_SYS -- Count the current CPU
• PAPI_GRN_SYS_CPU -- Count all CPUs individually
• PAPI_GRN_MIN -- The finest available granularity
• PAPI_GRN_MAX -- The coarsest available granularity
ReturnvaluesPAPI_OKPAPI_EINVAL One or more of the arguments is invalid.
PAPI_set_granularity sets the default counting granularity for all new event sets created by
PAPI_create_eventset. This call implicitly sets the granularity for the cpu component (component 0) and
is included to preserve backward compatibility.
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!\n");
exit(1);
}
if (ret < 0) handle_error(ret);
// Set the default granularity for the cpu component
ret = PAPI_set_granularity(PAPI_GRN_PROC);
if (ret != PAPI_OK) handle_error(ret);
ret = PAPI_create_eventset(&EventSet);
if (ret != PAPI_OK) handle_error(ret);
SeealsoPAPI_set_cmp_granularityPAPI_set_domainPAPI_set_optPAPI_get_opt