Splitting 1d and 3d FFT timings.

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8711 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
pscrozi
2012-08-23 22:32:38 +00:00
parent f5ec88d740
commit 93e71a27d4
2 changed files with 34 additions and 19 deletions

View File

@ -3571,10 +3571,40 @@ void PPPM::slabcorr()
}
/* ----------------------------------------------------------------------
perform and time the FFTs required for N timesteps
perform and time the 1d FFTs required for N timesteps
------------------------------------------------------------------------- */
int PPPM::timing(int n, double &time3d, double &time1d)
int PPPM::timing_1d(int n, double &time1d)
{
double time1,time2;
for (int i = 0; i < 2*nfft_both; i++) work1[i] = ZEROF;
MPI_Barrier(world);
time1 = MPI_Wtime();
for (int i = 0; i < n; i++) {
fft1->timing1d(work1,nfft_both,1);
fft2->timing1d(work1,nfft_both,-1);
if (differentiation_flag != 1) {
fft2->timing1d(work1,nfft_both,-1);
fft2->timing1d(work1,nfft_both,-1);
}
}
MPI_Barrier(world);
time2 = MPI_Wtime();
time1d = time2 - time1;
if (differentiation_flag) return 2;
return 4;
}
/* ----------------------------------------------------------------------
perform and time the 3d FFTs required for N timesteps
------------------------------------------------------------------------- */
int PPPM::timing_3d(int n, double &time3d)
{
double time1,time2;
@ -3596,22 +3626,6 @@ int PPPM::timing(int n, double &time3d, double &time1d)
time2 = MPI_Wtime();
time3d = time2 - time1;
MPI_Barrier(world);
time1 = MPI_Wtime();
for (int i = 0; i < n; i++) {
fft1->timing1d(work1,nfft_both,1);
fft2->timing1d(work1,nfft_both,-1);
if (differentiation_flag != 1) {
fft2->timing1d(work1,nfft_both,-1);
fft2->timing1d(work1,nfft_both,-1);
}
}
MPI_Barrier(world);
time2 = MPI_Wtime();
time1d = time2 - time1;
if (differentiation_flag) return 2;
return 4;
}