9 #define NUM_ITERS 1000000 26 long long *
elapsed_cyc, total_cyc = 0, uniq_cyc = 0, diff_cyc = 0;
28 double min, max, average, std,
tmp;
60 fprintf(stderr,
"Error! Negative elapsed time\n");
67 min = ( double ) diff_cyc;
69 max = ( double ) diff_cyc;
72 total_cyc += diff_cyc;
75 average = ( double ) total_cyc / (
NUM_ITERS - 1 );
86 printf(
"%s: min %.3lf max %.3lf \n",
func_name[flag],
min, max );
87 printf(
" average %.3lf std %.3lf\n", average, std );
90 printf(
"%s : %7.3f <%7.3f\n",
func_name[flag],
91 (
double ) total_cyc / (
double ) (
NUM_ITERS ),
92 (
double ) total_cyc / (
double ) uniq_cyc );
93 }
else if ( uniq_cyc ) {
94 printf(
"%s : %7.3f %7.3f\n",
func_name[flag],
95 (
double ) total_cyc / (
double ) (
NUM_ITERS ),
96 (
double ) total_cyc / (
double ) uniq_cyc );
98 printf(
"%s : %7.3f >%7.3f\n",
func_name[flag],
99 (
double ) total_cyc / (
double ) (
NUM_ITERS ),
100 (
double ) total_cyc );
long long PAPI_get_virt_usec(void)
long long PAPI_get_virt_cyc(void)
static char * func_name[]
#define CLOCKCORE_VIRT_USEC_FAIL
static int clock_res_check(int flag, int quiet)
#define CLOCKCORE_VIRT_CYC_FAIL
Return codes and api definitions.
long long PAPI_get_real_usec(void)
long long PAPI_get_real_cyc(void)