26 int retval,cid,rapl_cid=-1,numcmp;
29 int i,code,enum_retval;
32 long long start_time,before_time,after_time;
39 fprintf(stderr,
"PAPI_library_init failed\n");
45 for(cid=0; cid<numcmp; cid++) {
48 fprintf(stderr,
"PAPI_get_component_info failed\n");
52 if (strstr(cmpinfo->
name,
"powercap")) {
54 printf(
"Found rapl component at cid %d\n", rapl_cid);
57 fprintf(stderr,
"No rapl events found: %s\n",
67 fprintf(stderr,
"No powercap component found\n");
76 while ( enum_retval ==
PAPI_OK ) {
80 printf(
"Error translating %#x\n",code);
92 printf(
"Error getting event info for %#x\n",code);
116 printf(
"Error! No RAPL events found!\n");
124 fprintf(stderr,
"Could not open %s\n",
filenames[
i]);
133 fprintf(stderr,
"Error creating eventset!\n");
140 fprintf(stderr,
"Error adding event %s\n",
events[
i]);
154 fprintf(stderr,
"PAPI_start() failed\n");
165 fprintf(stderr,
"PAPI_start() failed\n");
168 total_time=((double)(after_time-start_time))/1.0e9;
169 elapsed_time=((double)(after_time-before_time))/1.0e9;
174 if (strstr(
events[
i],
"ENERGY")) {
175 fprintf(
fff[
i],
"%.4f %.3f %s %.3f %s (* Average Power for %s *)\n",
177 ((
double)
values[
i]/1.0e6),
"J",
178 ((
double)
values[
i]/1.0e6)/elapsed_time,
"W",
181 else if (strstr(
events[
i],
"POWER")) {
182 fprintf(
fff[
i],
"%.4f %.3f %s (* %s *)\n",
184 ((
double)
values[
i]/1.0e6),
"W",
187 else if (strstr(
events[
i],
"TIME")) {
188 fprintf(
fff[
i],
"%.4f %.3f %s (* %s *)\n",
190 ((
double)
values[
i]/1.0e6),
"S",
194 fprintf(
fff[
i],
"%.4f %lld (* %s *)\n",
char event_name[2][PAPI_MAX_STR_LEN]
int PAPI_stop(int EventSet, long long *values)
char disabled_reason[PAPI_MAX_STR_LEN]
const PAPI_component_info_t * PAPI_get_component_info(int cidx)
char units[PAPI_MIN_STR_LEN]
char events[MAX_EVENTS][BUFSIZ]
int PAPI_num_components(void)
char units[MAX_EVENTS][BUFSIZ]
int PAPI_get_event_info(int EventCode, PAPI_event_info_t *info)
int PAPI_add_named_event(int EventSet, const char *EventName)
char filenames[MAX_EVENTS][BUFSIZ]
int PAPI_library_init(int version)
char name[PAPI_MAX_STR_LEN]
int PAPI_enum_cmp_event(int *EventCode, int modifier, int cidx)
int PAPI_create_eventset(int *EventSet)
int PAPI_event_code_to_name(int EventCode, char *out)
long long PAPI_get_real_nsec(void)
int data_type[MAX_EVENTS]
int PAPI_start(int EventSet)
static long long values[NUM_EVENTS]