[gmx-developers] Current status FFTW-3D
Roland Schulz
schulzr at ornl.gov
Fri Aug 31 21:44:42 CEST 2007
I would like to test first the FFT with the timefft test program. I did some
changes so that it compiles (see below) - the test program was not up to date
to the rest of the CVS. But now the test program crashes most probably
because of a memory error. Since it is more difficult to debug someone else
code, has someone an idea, what the problem is?
On Friday 31 August 2007 11:10, Erik Lindahl wrote:
> On Aug 31, 2007, at 4:04 PM, Roland Schulz wrote:
> It is indeed only the first dimension that is real-to-complex, but
> since the resulting data then only contains half as many points we
> will cut the execution time in the remaining dimensions by 50% too.
you're right
[license discussion]
ok I see
Roland
RCS file: /home/gmx/cvs/gmx/src/mdlib/timefft.c,v
retrieving revision 1.9
diff -u -r1.9 timefft.c
--- timefft.c 19 Apr 2006 09:05:15 -0000 1.9
+++ timefft.c 31 Aug 2007 19:35:40 -0000
@@ -46,6 +46,8 @@
#include "mdrun.h"
#include "main.h"
#include "statutil.h"
+#include "fftgrid.h"
+#include "fftw3.h"
#ifdef GMX_MPI
#include "gmx_parallel_3dfft.h"
@@ -88,7 +90,7 @@
parse_common_args(&argc,argv,
PCA_CAN_SET_DEFFNM | (MASTER(cr) ? 0 : PCA_QUIET),
NFILE,fnm,asize(pa),pa,0,NULL,0,NULL);
- open_log(ftp2fn(efLOG,NFILE,fnm),cr);
+ open_log(ftp2fn(efLOG,NFILE,fnm),cr,FALSE);
snew(niter,NNN);
snew(ct,NNN);
@@ -110,16 +112,16 @@
if (MASTER(cr))
fprintf(stderr,"\r3D FFT (%s precision) %3d^3, niter %3d ",
(rsize == 8) ? "Double" : "Single",n,nit);
-
- g = mk_fftgrid(stdlog,(nnode > 1),n,n,n,bOptFFT);
+
+ g = mk_fftgrid(n,n,n,NULL,cr);
if (PAR(cr))
start = time(NULL);
else
start_time();
for(j=0; (j<nit); j++) {
- gmxfft3D(g,FFTW_FORWARD,cr);
- gmxfft3D(g,FFTW_BACKWARD,cr);
+ gmxfft3D(g,GMX_FFT_REAL_TO_COMPLEX,cr);
+ gmxfft3D(g,GMX_FFT_COMPLEX_TO_REAL,cr);
}
if (PAR(cr))
rt[i] = time(NULL)-start;
More information about the gromacs.org_gmx-developers
mailing list