void run_test(s_resval *res, int nrepeat, int n, int m, int p, char *kernel_name, R c, R eps_I, R eps_B, int nthreads) { char cmd[1025]; int r, t; for (t = 0; t < 16; t++) { res[t].avg = K(0.0); res[t].min = K(1.0) / K(0.0); res[t].max = K(0.0); } if (nthreads < 2) snprintf(cmd, 1024, "%s %d %d %d %s " __FR__ " " __FR__ " " __FR__ " < fastsum_benchomp_test.data > fastsum_benchomp_test.out", CMD_DETAIL_SINGLE, n, m, p, kernel_name, c, eps_I, eps_B); else snprintf(cmd, 1024, "%s %d %d %d %s " __FR__ " " __FR__ " " __FR__ " %d < fastsum_benchomp_test.data > fastsum_benchomp_test.out", CMD_DETAIL_THREADS, n, m, p, kernel_name, c, eps_I, eps_B, nthreads); fprintf(stderr, "%s\n", cmd); check_result_value(system(cmd), 0, cmd); for (r = 0; r < nrepeat; r++) { int retval; R v[16]; FILE *f; check_result_value(system(cmd), 0, cmd); f = fopen("fastsum_benchomp_test.out", "r"); retval = fscanf(f, "" __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ " " __FR__ "", v, v + 1, v + 2, v + 3, v + 4, v + 5, v + 6, v + 7, v + 8, v + 9, v + 10, v + 11, v + 12, v + 13, v + 14, v + 15); check_result_value(retval, 16, "read fastsum_benchomp_test.out"); fclose(f); for (t = 0; t < 16; t++) { res[t].avg += v[t]; if (res[t].min > v[t]) res[t].min = v[t]; if (res[t].max < v[t]) res[t].max = v[t]; } } for (t = 0; t < 16; t++) res[t].avg /= (R)(nrepeat); fprintf(stderr, "%d %d: ", nthreads, nrepeat); for (t = 0; t < 16; t++) fprintf(stderr, "%.3" __FES__ " %.3" __FES__ " %.3" __FES__ " | ", res[t].avg, res[t].min, res[t].max); fprintf(stderr, "\n"); }
void run_test(s_resval *res, int nrepeat, int m, int flags, int nthreads) { char cmd[1025]; int r,t; for (t = 0; t < 6; t++) { res[t].avg = 0.0; res[t].min = 1.0/0.0; res[t].max = 0.0; } if (nthreads < 2) snprintf(cmd, 1024, "./nfft_benchomp_detail_single %d %d < nfft_benchomp_test.data > nfft_benchomp_test.out", m, flags); else snprintf(cmd, 1024, "./nfft_benchomp_detail_threads %d %d %d < nfft_benchomp_test.data > nfft_benchomp_test.out", m, flags, nthreads); fprintf(stderr, "%s\n", cmd); check_result_value(system(cmd), 0, cmd); for (r = 0; r < nrepeat; r++) { int retval; double v[6]; FILE *f; check_result_value(system(cmd), 0, cmd); f = fopen("nfft_benchomp_test.out", "r"); retval = fscanf(f, "%lg %lg %lg %lg %lg %lg", v, v+1, v+2, v+3, v+4, v+5); check_result_value(retval, 6, "read nfft_benchomp_test.out"); fclose(f); for (t = 0; t < 6; t++) { res[t].avg += v[t]; if (res[t].min > v[t]) res[t].min = v[t]; if (res[t].max < v[t]) res[t].max = v[t]; } } for (t = 0; t < 6; t++) res[t].avg /= nrepeat; fprintf(stderr, "%d %d: ", nthreads, nrepeat); for (t = 0; t < 6; t++) fprintf(stderr, "%.3e %.3e %.3e | ", res[t].avg, res[t].min, res[t].max); fprintf(stderr, "\n"); }
void run_test_create(int d, int L, int M) { char cmd[1025]; snprintf(cmd, 1024, "%s %d %d %d > fastsum_benchomp_test.data", CMD_CREATEDATASET, d, L, M); fprintf(stderr, "%s\n", cmd); check_result_value(system(cmd), 0, "createdataset"); }
void run_test_create(int d, int trafo_adjoint, int N, int M, double sigma) { char cmd[1025]; if (d==1) snprintf(cmd, 1024, "./nfft_benchomp_createdataset %d %d %d %d %lg > nfft_benchomp_test.data", d, trafo_adjoint, N, M, sigma); else if (d==2) snprintf(cmd, 1024, "./nfft_benchomp_createdataset %d %d %d %d %d %lg > nfft_benchomp_test.data", d, trafo_adjoint, N, N, M, sigma); else if (d==3) snprintf(cmd, 1024, "./nfft_benchomp_createdataset %d %d %d %d %d %d %lg > nfft_benchomp_test.data", d, trafo_adjoint, N, N, N, M, sigma); else if (d==4) snprintf(cmd, 1024, "./nfft_benchomp_createdataset %d %d %d %d %d %d %d %lg > nfft_benchomp_test.data", d, trafo_adjoint, N, N, N, N, M, sigma); else exit(1); fprintf(stderr, "%s\n", cmd); check_result_value(system(cmd), 0, "createdataset"); }