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:
@ -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;
|
double time1,time2;
|
||||||
|
|
||||||
@ -3596,22 +3626,6 @@ int PPPM::timing(int n, double &time3d, double &time1d)
|
|||||||
time2 = MPI_Wtime();
|
time2 = MPI_Wtime();
|
||||||
time3d = time2 - time1;
|
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;
|
if (differentiation_flag) return 2;
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,7 +42,8 @@ class PPPM : public KSpace {
|
|||||||
virtual void init();
|
virtual void init();
|
||||||
virtual void setup();
|
virtual void setup();
|
||||||
virtual void compute(int, int);
|
virtual void compute(int, int);
|
||||||
virtual int timing(int, double &, double &);
|
virtual int timing_1d(int, double &);
|
||||||
|
virtual int timing_3d(int, double &);
|
||||||
virtual double memory_usage();
|
virtual double memory_usage();
|
||||||
|
|
||||||
virtual void compute_group_group(int, int, int);
|
virtual void compute_group_group(int, int, int);
|
||||||
|
|||||||
Reference in New Issue
Block a user