34 void bench_openmp(FILE *infile,
int m,
int psi_flag)
39 int M, d, trafo_adjoint;
43 double tt_total, tt_preonepsi;
45 fscanf(infile,
"%d %d", &d, &trafo_adjoint);
47 N = malloc(d*
sizeof(
int));
48 n = malloc(d*
sizeof(
int));
51 fscanf(infile,
"%d", N+t);
54 fscanf(infile,
"%d", n+t);
56 fscanf(infile,
"%d", &M);
59 fftw_import_wisdom_from_filename(
"nfft_benchomp_detail_threads.plan");
61 fftw_import_wisdom_from_filename(
"nfft_benchomp_detail_single.plan");
65 nfft_init_guru(&p, d, N, M, n, m,
66 PRE_PHI_HUT| psi_flag | MALLOC_X | MALLOC_F_HAT| MALLOC_F| FFTW_INIT | FFT_OUT_OF_PLACE,
67 FFTW_MEASURE| FFTW_DESTROY_INPUT);
70 fftw_export_wisdom_to_filename(
"nfft_benchomp_detail_threads.plan");
72 fftw_export_wisdom_to_filename(
"nfft_benchomp_detail_single.plan");
77 for (t=0; t < p.
d; t++)
78 fscanf(infile,
"%lg", p.
x+p.
d*j+t);
85 fscanf(infile,
"%lg %lg", &re, &im);
86 p.
f_hat[j] = re + _Complex_I * im;
93 fscanf(infile,
"%lg %lg", &re, &im);
94 p.
f[j] = re + _Complex_I * im;
101 nfft_precompute_one_psi(&p);
103 tt_preonepsi = nfft_elapsed_seconds(t1,t0);
105 if (trafo_adjoint==0)
110 tt_total = nfft_elapsed_seconds(t1,t0);
117 #ifndef MEASURE_TIME_FFTW
131 int main(
int argc,
char **argv)
140 nthreads = atoi(argv[3]);
142 omp_set_num_threads(nthreads);
149 psi_flag = atoi(argv[2]);
151 bench_openmp(stdin, m, psi_flag);