Release 1.60.4 is available

Questions and discussions regarding the use of Qbox
Forum rules
You must be a registered user to post in this forum. Registered users may also post new topics if they consider that their subject does not correspond to any topic already present on the forum.
Post Reply
fgygi
Site Admin
Posts: 167
Joined: Tue Jun 17, 2008 7:03 pm

Release 1.60.4 is available

Post by fgygi »

Qbox 1.60.4 is available. It includes minor bug fixes from 1.60.0 and can be built using the FFTW3 library or the ESSL FFT functions.
The USE_FFTW macro should not be used anymore. It should be replaced by one of the following macros, to be defined in the .mk makefile include:
USE_FFTW2, USE_FFTW3, USE_ESSL_FFT, or FFT_NOLIB.

The following is an example of makefile include using make conditionals for the selection of the FFT library:

Code: Select all

#-------------------------------------------------------------------------------
#
# Copyright (c) 2014 The Regents of the University of California
#
# This file is part of Qbox
#
# Qbox is distributed under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
# See the file COPYING in the root directory of this distribution
# or <http://www.gnu.org/licenses/>.
#
#-------------------------------------------------------------------------------
#
#  pavane.mk
#
#-------------------------------------------------------------------------------
 PLT=Linux_x8664
#-------------------------------------------------------------------------------
 SCALAPACKDIR = $(HOME)/software/scalapack/scalapack-2.0.2
 XERCESCDIR=$(HOME)/software/xerces/xerces-c-src_2_8_0
 ATLASDIR=/usr/lib64/atlas

 PLTOBJECTS = readTSC.o
 SVN_VER :=$(shell svnversion -n)
 DFLAGS += -DSVN_VERSION='"$(SVN_VER)"'

 CXX=mpicxx
 LD=$(CXX)

 PLTFLAGS += -DIA32 -D_LARGEFILE_SOURCE \
             -D_FILE_OFFSET_BITS=64 -DUSE_MPI -DSCALAPACK -DADD_ \
             -DAPP_NO_THREADS -DXML_USE_NO_THREADS -DUSE_XERCES \
             -DMPICH_IGNORE_CXX_SEEK

# FFT must be FFTW2, FFTW3, ESSL or NOLIB
 FFT=FFTW2

ifeq ($(FFT),FFTW2)
 PLTFLAGS += -DUSE_FFTW2
#PLTFLAGS += -DFFTWMEASURE
 FFTWDIR=$(HOME)/software/fftw/Linux_x8664/fftw-2.1.5/fftw
 FFTWINCLUDEDIR=$(FFTWDIR)
 FFTWLIBDIR=$(FFTWDIR)/.libs
 INCLUDE += -I$(FFTWINCLUDEDIR)
 LIBPATH += -L$(FFTWLIBDIR)
 LIBS += -lfftw
endif

ifeq ($(FFT),FFTW3)
 PLTFLAGS += -DUSE_FFTW3
#PLTFLAGS += -DFFTWMEASURE
#PLTFLAGS += -DFFTW_TRANSPOSE
 PLTFLAGS += -DFFTW3_2D
 FFTWDIR=$(HOME)/software/fftw/fftw-3.3.4
 FFTWINCLUDEDIR=$(FFTWDIR)/api
 FFTWLIBDIR=$(FFTWDIR)/.libs
 INCLUDE += -I$(FFTWINCLUDEDIR)
 LIBPATH += -L$(FFTWLIBDIR)
 LIBS += -lfftw3
endif

ifeq ($(FFT),ESSL)
$(error ESSL library not available)
endif

ifeq ($(FFT),NOLIB)
 PLTFLAGS += -DFFT_NOLIB
endif

 INCLUDE += -I$(XERCESCDIR)/include

 CXXFLAGS= -g -O3 -Wunused -D$(PLT) $(INCLUDE) $(PLTFLAGS) $(DFLAGS)

 LIBPATH += -L$(XERCESCDIR)/lib \
            -L$(ATLASDIR) -L$(SCALAPACKDIR) -L/usr/lib64

 LIBS += -lpthread -lxerces-c -lscalapack -llapack -lf77blas -latlas 

 LDFLAGS = $(LIBPATH) $(LIBS)

#-------------------------------------------------------------------------------
lercole
Posts: 1
Joined: Tue Jan 27, 2015 11:06 am

Re: Release 1.60.4 is available

Post by lercole »

Hello François,
I am trying to compile the new version of Qbox with FFTW3 and MKL libraries.
I noticed that it is possible to include the flags -DUSE_FFTW3_2D and -DUSE_FFTW3_THREADS. Is there any improvement in doing that? And what is the difference between them?
Thanks

Loris
fgygi
Site Admin
Posts: 167
Joined: Tue Jun 17, 2008 7:03 pm

Re: Release 1.60.4 is available

Post by fgygi »

Hi Loris,
The FFTW3_2D option allows for the use of the fftw3 two-dimensional functions. The FFTW3_THREADS option enables multithreaded transforms. We do not have a lot of experience with these options. In some cases they provide a slight speedup. If you experiment with them, please let us know if you notice a significant performance improvement (this also depends on the system being simulated). There is not really a strong reason to move from FFTW2 to FFTW3 (apart from availability of the library on a given platform). On the other hand, if you use an IBM platform, the USE_ESSL_FFT option is significantly faster.
Post Reply