cannam@95: AM_CPPFLAGS = -I$(top_srcdir)/kernel -I$(top_srcdir)/dft \ cannam@95: -I$(top_srcdir)/rdft -I$(top_srcdir)/api -I$(top_srcdir)/tests \ cannam@95: -I$(top_srcdir)/libbench2 cannam@95: cannam@95: if MPI cannam@95: lib_LTLIBRARIES = libfftw3@PREC_SUFFIX@_mpi.la cannam@95: include_HEADERS = fftw3-mpi.h cannam@95: nodist_include_HEADERS = fftw3-mpi.f03 fftw3l-mpi.f03 cannam@95: noinst_PROGRAMS = mpi-bench cannam@95: endif cannam@95: cannam@95: CC=@MPICC@ cannam@95: cannam@95: EXTRA_DIST = testsched.c f03api.sh f03-wrap.sh genf03-wrap.pl fftw3-mpi.f03.in fftw3l-mpi.f03.in cannam@95: BUILT_SOURCES = fftw3-mpi.f03.in fftw3-mpi.f03 fftw3l-mpi.f03.in fftw3l-mpi.f03 f03-wrap.c cannam@95: CLEANFILES = fftw3-mpi.f03 fftw3l-mpi.f03 cannam@95: cannam@95: TRANSPOSE_SRC = transpose-alltoall.c transpose-pairwise.c transpose-recurse.c transpose-problem.c transpose-solve.c mpi-transpose.h cannam@95: DFT_SRC = dft-serial.c dft-rank-geq2.c dft-rank-geq2-transposed.c dft-rank1.c dft-rank1-bigvec.c dft-problem.c dft-solve.c mpi-dft.h cannam@95: RDFT_SRC = rdft-serial.c rdft-rank-geq2.c rdft-rank-geq2-transposed.c rdft-rank1-bigvec.c rdft-problem.c rdft-solve.c mpi-rdft.h cannam@95: RDFT2_SRC = rdft2-serial.c rdft2-rank-geq2.c rdft2-rank-geq2-transposed.c rdft2-problem.c rdft2-solve.c mpi-rdft2.h cannam@95: SRC = any-true.c api.c block.c choose-radix.c conf.c dtensor.c fftw3-mpi.h ifftw-mpi.h rearrange.c wisdom-api.c f03-wrap.c cannam@95: cannam@95: libfftw3@PREC_SUFFIX@_mpi_la_SOURCES = $(SRC) $(TRANSPOSE_SRC) $(DFT_SRC) $(RDFT_SRC) $(RDFT2_SRC) cannam@95: cannam@95: libfftw3@PREC_SUFFIX@_mpi_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@ cannam@95: libfftw3@PREC_SUFFIX@_mpi_la_LIBADD = ../libfftw3@PREC_SUFFIX@.la @MPILIBS@ cannam@95: cannam@95: if THREADS cannam@95: mpi_bench_CFLAGS = $(PTHREAD_CFLAGS) cannam@95: if !COMBINED_THREADS cannam@95: LIBFFTWTHREADS = $(top_builddir)/threads/libfftw3@PREC_SUFFIX@_threads.la cannam@95: endif cannam@95: else cannam@95: if OPENMP cannam@95: mpi_bench_CFLAGS = $(OPENMP_CFLAGS) cannam@95: LIBFFTWTHREADS = $(top_builddir)/threads/libfftw3@PREC_SUFFIX@_omp.la cannam@95: endif cannam@95: endif cannam@95: cannam@95: mpi_bench_SOURCES = mpi-bench.c $(top_srcdir)/tests/fftw-bench.c $(top_srcdir)/tests/hook.c cannam@95: mpi_bench_LDADD = libfftw3@PREC_SUFFIX@_mpi.la $(LIBFFTWTHREADS) $(top_builddir)/libfftw3@PREC_SUFFIX@.la $(top_builddir)/libbench2/libbench2.a $(MPILIBS) $(THREADLIBS) cannam@95: cannam@95: CHECK = $(top_srcdir)/tests/check.pl cannam@95: NUMCHECK=10 cannam@95: CHECKSIZE=10000 cannam@95: CHECKOPTS = --verbose --random --maxsize=$(CHECKSIZE) -c=$(NUMCHECK) $(CHECK_PL_OPTS) cannam@95: cannam@95: if MPI cannam@95: cannam@95: check-local: mpi-bench$(EXEEXT) cannam@95: perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 1 `pwd`/mpi-bench" cannam@95: @echo "--------------------------------------------------------------" cannam@95: @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 1 CPU" cannam@95: @echo "--------------------------------------------------------------" cannam@95: perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 2 `pwd`/mpi-bench" cannam@95: @echo "--------------------------------------------------------------" cannam@95: @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 2 CPUs" cannam@95: @echo "--------------------------------------------------------------" cannam@95: perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 3 `pwd`/mpi-bench" cannam@95: @echo "--------------------------------------------------------------" cannam@95: @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 3 CPUs" cannam@95: @echo "--------------------------------------------------------------" cannam@95: perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 4 `pwd`/mpi-bench" cannam@95: @echo "--------------------------------------------------------------" cannam@95: @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 4 CPUs" cannam@95: @echo "--------------------------------------------------------------" cannam@95: if SMP cannam@95: perl -w $(CHECK) $(CHECKOPTS) --mpi --nthreads=2 "$(MPIRUN) -np 3 `pwd`/mpi-bench" cannam@95: @echo "--------------------------------------------------------------" cannam@95: @echo " MPI FFTW threaded transforms passed "$(NUMCHECK)" tests!" cannam@95: @echo "--------------------------------------------------------------" cannam@95: endif cannam@95: cannam@95: bigcheck: mpi-bench$(EXEEXT) cannam@95: $(MAKE) $(AM_MAKEFLAGS) NUMCHECK=100 CHECKSIZE=60000 check-local cannam@95: cannam@95: smallcheck: mpi-bench$(EXEEXT) cannam@95: $(MAKE) $(AM_MAKEFLAGS) NUMCHECK=2 check-local cannam@95: cannam@95: endif cannam@95: cannam@95: fftw3-mpi.f03: fftw3-mpi.f03.in cannam@95: sed 's/C_MPI_FINT/@C_MPI_FINT@/' $(srcdir)/fftw3-mpi.f03.in > $@ cannam@95: cannam@95: fftw3l-mpi.f03: fftw3l-mpi.f03.in cannam@95: sed 's/C_MPI_FINT/@C_MPI_FINT@/' $(srcdir)/fftw3l-mpi.f03.in > $@ cannam@95: cannam@95: if MAINTAINER_MODE cannam@95: cannam@95: fftw3-mpi.f03.in: fftw3-mpi.h f03api.sh $(top_srcdir)/api/genf03.pl cannam@95: sh $(srcdir)/f03api.sh d f > $@ cannam@95: cannam@95: fftw3l-mpi.f03.in: fftw3-mpi.h f03api.sh $(top_srcdir)/api/genf03.pl cannam@95: sh $(srcdir)/f03api.sh l | grep -v parameter | sed 's/fftw3.f03/fftw3l.f03/' > $@ cannam@95: cannam@95: f03-wrap.c: fftw3-mpi.h f03-wrap.sh genf03-wrap.pl cannam@95: sh $(srcdir)/f03-wrap.sh > $@ cannam@95: cannam@95: endif