12 #define MAX_EVENTS 128 23 int main (
int argc,
char **argv)
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,
"rapl")) {
54 printf(
"Found rapl component at cid %d\n", rapl_cid);
57 fprintf(stderr,
"No rapl events found: %s\n",
67 fprintf(stderr,
"No rapl 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")) {
187 fprintf(
fff[
i],
"%.4f %.3f (* %s in (%s) *)\n",
196 fprintf(
fff[
i],
"%.4f %lld (* %s *)\n",
205 else if (strstr(
events[
i],
"ENERGY_CNT")) {
207 fprintf(
fff[
i],
"%.4f %lld (* %s *)\n",
216 fprintf(
fff[
i],
"%.4f %.3f %s %.3f %s (* Average Power for %s *)\n",
218 ((
double)
values[
i]/1.0e9),
"J",
219 ((
double)
values[
i]/1.0e9)/elapsed_time,
"W",
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)
int data_type[MAX_EVENTS]
char units[PAPI_MIN_STR_LEN]
char filenames[MAX_EVENTS][BUFSIZ]
int main(int argc, char **argv)
int PAPI_num_components(void)
char units[MAX_EVENTS][BUFSIZ]
Return codes and api definitions.
int PAPI_get_event_info(int EventCode, PAPI_event_info_t *info)
int PAPI_add_named_event(int EventSet, const char *EventName)
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)
char events[MAX_EVENTS][BUFSIZ]
long long PAPI_get_real_nsec(void)
int PAPI_start(int EventSet)
static long long values[NUM_EVENTS]