cannam@95
|
1 AM_CPPFLAGS = -I$(top_srcdir)/kernel -I$(top_srcdir)/dft \
|
cannam@95
|
2 -I$(top_srcdir)/rdft -I$(top_srcdir)/api -I$(top_srcdir)/tests \
|
cannam@95
|
3 -I$(top_srcdir)/libbench2
|
cannam@95
|
4
|
cannam@95
|
5 if MPI
|
cannam@95
|
6 lib_LTLIBRARIES = libfftw3@PREC_SUFFIX@_mpi.la
|
cannam@95
|
7 include_HEADERS = fftw3-mpi.h
|
cannam@95
|
8 nodist_include_HEADERS = fftw3-mpi.f03 fftw3l-mpi.f03
|
cannam@95
|
9 noinst_PROGRAMS = mpi-bench
|
cannam@95
|
10 endif
|
cannam@95
|
11
|
cannam@95
|
12 CC=@MPICC@
|
cannam@95
|
13
|
cannam@95
|
14 EXTRA_DIST = testsched.c f03api.sh f03-wrap.sh genf03-wrap.pl fftw3-mpi.f03.in fftw3l-mpi.f03.in
|
cannam@95
|
15 BUILT_SOURCES = fftw3-mpi.f03.in fftw3-mpi.f03 fftw3l-mpi.f03.in fftw3l-mpi.f03 f03-wrap.c
|
cannam@95
|
16 CLEANFILES = fftw3-mpi.f03 fftw3l-mpi.f03
|
cannam@95
|
17
|
cannam@95
|
18 TRANSPOSE_SRC = transpose-alltoall.c transpose-pairwise.c transpose-recurse.c transpose-problem.c transpose-solve.c mpi-transpose.h
|
cannam@95
|
19 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
|
20 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
|
21 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
|
22 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
|
23
|
cannam@95
|
24 libfftw3@PREC_SUFFIX@_mpi_la_SOURCES = $(SRC) $(TRANSPOSE_SRC) $(DFT_SRC) $(RDFT_SRC) $(RDFT2_SRC)
|
cannam@95
|
25
|
cannam@95
|
26 libfftw3@PREC_SUFFIX@_mpi_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
|
cannam@95
|
27 libfftw3@PREC_SUFFIX@_mpi_la_LIBADD = ../libfftw3@PREC_SUFFIX@.la @MPILIBS@
|
cannam@95
|
28
|
cannam@95
|
29 if THREADS
|
cannam@95
|
30 mpi_bench_CFLAGS = $(PTHREAD_CFLAGS)
|
cannam@95
|
31 if !COMBINED_THREADS
|
cannam@95
|
32 LIBFFTWTHREADS = $(top_builddir)/threads/libfftw3@PREC_SUFFIX@_threads.la
|
cannam@95
|
33 endif
|
cannam@95
|
34 else
|
cannam@95
|
35 if OPENMP
|
cannam@95
|
36 mpi_bench_CFLAGS = $(OPENMP_CFLAGS)
|
cannam@95
|
37 LIBFFTWTHREADS = $(top_builddir)/threads/libfftw3@PREC_SUFFIX@_omp.la
|
cannam@95
|
38 endif
|
cannam@95
|
39 endif
|
cannam@95
|
40
|
cannam@95
|
41 mpi_bench_SOURCES = mpi-bench.c $(top_srcdir)/tests/fftw-bench.c $(top_srcdir)/tests/hook.c
|
cannam@95
|
42 mpi_bench_LDADD = libfftw3@PREC_SUFFIX@_mpi.la $(LIBFFTWTHREADS) $(top_builddir)/libfftw3@PREC_SUFFIX@.la $(top_builddir)/libbench2/libbench2.a $(MPILIBS) $(THREADLIBS)
|
cannam@95
|
43
|
cannam@95
|
44 CHECK = $(top_srcdir)/tests/check.pl
|
cannam@95
|
45 NUMCHECK=10
|
cannam@95
|
46 CHECKSIZE=10000
|
cannam@95
|
47 CHECKOPTS = --verbose --random --maxsize=$(CHECKSIZE) -c=$(NUMCHECK) $(CHECK_PL_OPTS)
|
cannam@95
|
48
|
cannam@95
|
49 if MPI
|
cannam@95
|
50
|
cannam@95
|
51 check-local: mpi-bench$(EXEEXT)
|
cannam@95
|
52 perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 1 `pwd`/mpi-bench"
|
cannam@95
|
53 @echo "--------------------------------------------------------------"
|
cannam@95
|
54 @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 1 CPU"
|
cannam@95
|
55 @echo "--------------------------------------------------------------"
|
cannam@95
|
56 perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 2 `pwd`/mpi-bench"
|
cannam@95
|
57 @echo "--------------------------------------------------------------"
|
cannam@95
|
58 @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 2 CPUs"
|
cannam@95
|
59 @echo "--------------------------------------------------------------"
|
cannam@95
|
60 perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 3 `pwd`/mpi-bench"
|
cannam@95
|
61 @echo "--------------------------------------------------------------"
|
cannam@95
|
62 @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 3 CPUs"
|
cannam@95
|
63 @echo "--------------------------------------------------------------"
|
cannam@95
|
64 perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 4 `pwd`/mpi-bench"
|
cannam@95
|
65 @echo "--------------------------------------------------------------"
|
cannam@95
|
66 @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 4 CPUs"
|
cannam@95
|
67 @echo "--------------------------------------------------------------"
|
cannam@95
|
68 if SMP
|
cannam@95
|
69 perl -w $(CHECK) $(CHECKOPTS) --mpi --nthreads=2 "$(MPIRUN) -np 3 `pwd`/mpi-bench"
|
cannam@95
|
70 @echo "--------------------------------------------------------------"
|
cannam@95
|
71 @echo " MPI FFTW threaded transforms passed "$(NUMCHECK)" tests!"
|
cannam@95
|
72 @echo "--------------------------------------------------------------"
|
cannam@95
|
73 endif
|
cannam@95
|
74
|
cannam@95
|
75 bigcheck: mpi-bench$(EXEEXT)
|
cannam@95
|
76 $(MAKE) $(AM_MAKEFLAGS) NUMCHECK=100 CHECKSIZE=60000 check-local
|
cannam@95
|
77
|
cannam@95
|
78 smallcheck: mpi-bench$(EXEEXT)
|
cannam@95
|
79 $(MAKE) $(AM_MAKEFLAGS) NUMCHECK=2 check-local
|
cannam@95
|
80
|
cannam@95
|
81 endif
|
cannam@95
|
82
|
cannam@95
|
83 fftw3-mpi.f03: fftw3-mpi.f03.in
|
cannam@95
|
84 sed 's/C_MPI_FINT/@C_MPI_FINT@/' $(srcdir)/fftw3-mpi.f03.in > $@
|
cannam@95
|
85
|
cannam@95
|
86 fftw3l-mpi.f03: fftw3l-mpi.f03.in
|
cannam@95
|
87 sed 's/C_MPI_FINT/@C_MPI_FINT@/' $(srcdir)/fftw3l-mpi.f03.in > $@
|
cannam@95
|
88
|
cannam@95
|
89 if MAINTAINER_MODE
|
cannam@95
|
90
|
cannam@95
|
91 fftw3-mpi.f03.in: fftw3-mpi.h f03api.sh $(top_srcdir)/api/genf03.pl
|
cannam@95
|
92 sh $(srcdir)/f03api.sh d f > $@
|
cannam@95
|
93
|
cannam@95
|
94 fftw3l-mpi.f03.in: fftw3-mpi.h f03api.sh $(top_srcdir)/api/genf03.pl
|
cannam@95
|
95 sh $(srcdir)/f03api.sh l | grep -v parameter | sed 's/fftw3.f03/fftw3l.f03/' > $@
|
cannam@95
|
96
|
cannam@95
|
97 f03-wrap.c: fftw3-mpi.h f03-wrap.sh genf03-wrap.pl
|
cannam@95
|
98 sh $(srcdir)/f03-wrap.sh > $@
|
cannam@95
|
99
|
cannam@95
|
100 endif
|