# # PURPOSE: MAKEFILE FOR GNU/Linux SPIDER using FFTW3 on 2 or more processors # # COMPILER: Portland Group F95 # TARGET: 64bit Intel Pentium4 running GNU/Linux # IMAGES: Optimal SPIDER image byte order: Big-endian (SGI) (Non-native) # USAGE: make -f Makefile_linux_mp_intel64 # # NOTE: Uses FFTW3 configured with: --enable-float --enable-openmp # NOTE: You may ignore any undefined QFFLAGS, QLFLAGS & SUFFIX # NOTE: To create executable: make -f Makefile_linux_mp_intel64 # # PGI Compile/link flags # -O2 : Invokes level 2 optimization (-O3 causes some run time problems with PGI compiler on SPIDER code) # -Kieee : Invokes strict IEEE floating calculations # -mp : Invokes multi processor support # -tp p6 : Targets 32 bit Pentium Pro/II/III with 32 bit memory addresses, supports x87 FP # -tp p7 : Targets 32 or 64 bit Pentium4 with 32 bit memory addresses, supports SSE1 & SSE2 FP # -tp p7-64 : Targets 64 bit Pentium4 with 64 bit memory addresses, supports SSE1, SSE2 & SSE3 FP # -tp x64 : Targets unified 64 bit AMD & Intel binaries # -tp k8-64e : Targets AMD Opteron Revision E or AMD Turion (cluster) # -Mipa=fast : Invokes interprocedural analysis # -fast : Selects appropriate set of flags usually including -O2 -Munroll -Mnoframe # -fastsse : Selects appropriate set of flags including SSE support and usually -O2 -Munroll -Mnoframe -Mvect=sse -Mcache_align # -pc 64 : Sets precision of FPU operations # -mcmodel=medium : Allows use of >2GB data area # -Bstatic_pgi : Uses static PGI libs but makes dynamic executable # -Bstatic : Static link SHELL = /bin/sh AFLAGS = r # Location of PGI Fortran compiler COMP = /usr10/pgi/linux86-64/2011/bin/pgf95 PGM = spider WHICH = mp_intel64 EXE = $(PGM)_linux_$(WHICH)$(SUFFIX) LIB = $(EXE).a FFLAGS = -tp p7-64 -mcmodel=medium -fastsse -Mipa=fast -mp=nonuma -O2 -Mpreprocess -Kieee -Minfo -byteswapio -DHAS_IEEE -DSP_MP -DSP_LIBFFTW3 -c LF = -tp p7-64 -mcmodel=medium -fastsse -Mipa=fast -mp=nonuma $(QLFLAGS) # Link with FFTW3 static libraries with threads and with math library FFTWLIBDIR = ../fftw/fftw3-intel64/lib LINKLIBS = -Bstatic -L$(FFTWLIBDIR) -lfftw3f -lfftw3f_threads -mp -lm .PRECIOUS : ../bin/$(EXE) $(LIB) include Makefile.inc include Makebody.inc