201 int retval_start,retval_stop;
203 int show_dist = 0, show_std_dev = 0, show_percent = 0;
204 long long totcyc,
values[2];
212 while ( (
c=getopt(argc, argv,
"hb:dpst:") ) != -1) {
242 printf(
"Cost of execution for PAPI start/stop, read and accum.\n" );
243 printf(
"This test takes a while. Please be patient...\n" );
247 fprintf(stderr,
"PAPI_library_init\n");
252 fprintf(stderr,
"PAPI_set_debug\n");
257 fprintf(stderr,
"PAPI_query_event\n");
262 fprintf(stderr,
"PAPI_query_event\n");
267 fprintf(stderr,
"PAPI_create_eventset\n");
272 fprintf(stderr,
"PAPI_add_event\n");
279 fprintf(stderr,
"PAPI_add_event\n");
288 fprintf(stderr,
"PAPI_start");
292 fprintf(stderr,
"PAPI_stop");
296 array = (
long long * ) malloc( (
size_t )
num_iters *
sizeof (
long long ) );
297 if (
array == NULL ) {
298 fprintf(stderr,
"Error allocating memory for results\n");
304 printf(
"\nPerforming loop latency test...\n" );
312 do_output( 0,
array, bins, show_std_dev, show_dist, show_percent );
316 printf(
"\nPerforming start/stop test...\n" );
324 if (retval_start || retval_stop) {
325 fprintf(stderr,
"PAPI start/stop\n");
330 do_output( 1,
array, bins, show_std_dev, show_dist, show_percent );
333 printf(
"\nPerforming read test...\n" );
336 fprintf(stderr,
"PAPI_start");
348 fprintf(stderr,
"PAPI_stop");
352 do_output( 2,
array, bins, show_std_dev, show_dist, show_percent );
355 printf(
"\nPerforming read with timestamp test...\n" );
358 fprintf(stderr,
"PAPI_start");
367 fprintf(stderr,
"PAPI_stop");
377 do_output( 3,
array, bins, show_std_dev, show_dist, show_percent );
380 printf(
"\nPerforming accum test...\n" );
383 fprintf(stderr,
"PAPI_start");
395 fprintf(stderr,
"PAPI_stop");
399 do_output( 4,
array, bins, show_std_dev, show_dist, show_percent );
402 printf(
"\nPerforming reset test...\n" );
405 fprintf(stderr,
"PAPI_start");
416 fprintf(stderr,
"PAPI_stop");
420 do_output( 5,
array, bins, show_std_dev, show_dist, show_percent );
431 printf(
"\nPerforming DERIVED_POSTFIX " 432 "PAPI_read(%d counters) test (%s)...",
437 fprintf(stderr,
"PAPI_add_event");
443 fprintf(stderr,
"PAPI_start");
458 fprintf(stderr,
"PAPI_stop");
462 do_output( 6,
array, bins, show_std_dev, show_dist, show_percent );
465 printf(
"\tI was unable to find a DERIVED_POSTFIX preset event " 466 "to test on this architecture, skipping.\n");
478 printf(
"\nPerforming DERIVED_[ADD|SUB] " 479 "PAPI_read(%d counters) test (%s)...",
484 fprintf(stderr,
"PAPI_add_event\n");
490 fprintf(stderr,
"PAPI_start");
505 fprintf(stderr,
"PAPI_stop");
509 do_output( 7,
array, bins, show_std_dev, show_dist, show_percent );
511 printf(
"\tI was unable to find a suitable DERIVED_[ADD|SUB] " 512 "event to test, skipping.\n");
int PAPI_stop(int EventSet, long long *values)
static int find_derived_add(int i)
int PAPI_add_event(int EventSet, int EventCode)
int PAPI_reset(int EventSet)
static void do_output(int test_type, long long *array, int bins, int show_std_dev, int show_dist, int show_percentile)
static void print_help(void)
static double array[ARRAYSIZE]
static int find_derived_postfix(int i)
int PAPI_get_event_info(int EventCode, PAPI_event_info_t *info)
int PAPI_accum(int EventSet, long long *values)
int PAPI_library_init(int version)
char symbol[PAPI_HUGE_STR_LEN]
int PAPI_cleanup_eventset(int EventSet)
int PAPI_create_eventset(int *EventSet)
int PAPI_query_event(int EventCode)
int PAPI_read_ts(int EventSet, long long *values, long long *cycles)
long long PAPI_get_real_cyc(void)
int PAPI_read(int EventSet, long long *values)
int PAPI_start(int EventSet)
static long long values[NUM_EVENTS]
int PAPI_set_debug(int level)