[petsc-users] Using PFFT within PETSc

Giuseppe Pitton gpitton at sissa.it
Mon Nov 23 01:31:25 CST 2015


Dear users and developers,
I am trying to interface PETSc with the parallel fast Fourier transform 
library PFFT 
(https://www-user.tu-chemnitz.de/~potts/workgroup/pippig/software.php.en), 
based in turn on FFTW. My plan is to build a spectral differentiation 
code, and in the attached files you can see a simple example.
The code works correctly in serial, but in parallel there are some 
problems regarding the output of the results, I think due to some 
differences in the way PETSc and PFFT store data, but I'm not sure if 
this is really the issue.
In the attached code, the number of processors used should be specified 
at compile time in the variable "ncpus". As long as ncpus = 1, 
everything works fine, but if ncpus = 2 or an higher power of 2, the 
code terminates correctly but the results show some artifacts, as you 
can see from the generated hdf5 file, named "output-pfft.h5".
In the makefile the variables PFFTINC, PFFTLIB, FFTWINC and FFTWLIB 
should be set correctly.
Thank you,
Giuseppe

-------------- next part --------------
PFFTINC		 = /scratch/opt/pfft-dev/include
FFTWINC		 = /scratch/opt/fftw-3.3.4/include
PFFTLIB		 = /scratch/opt/pfft-dev/lib
FFTWLIB		 = /scratch/opt/fftw-3.3.4/lib

CFLAGS	         =-std=c99 -I${PFFTINC} -I${FFTWINC} -L${PFFTLIB} -L${FFTWLIB}
CLEANFILES       = output-pfft.h5 test-pfft
NP               = 1

include ${PETSC_DIR}lib/petsc/conf/variables
include ${PETSC_DIR}lib/petsc/conf/rules


test-pfft: test-pfft.o  chkopts
	-${CLINKER} -o test-pfft test-pfft.o -lm -lpfft -lfftw3 -lfftw3_mpi ${PETSC_LIB}
	${RM} test-pfft.o

include ${PETSC_DIR}lib/petsc/conf/test
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-pfft.c
Type: text/x-csrc
Size: 5736 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20151123/0df3a441/attachment.c>


More information about the petsc-users mailing list