How to install on Cray machines

Qbox installation issues
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 do not correspond to any topic already present on the forum.
Post Reply
pierrecarrier
Posts: 4
Joined: Wed Jan 16, 2013 7:44 pm
Location: 380 Jackson Street, Suite 210, St Paul, MN 55101
Contact:

How to install on Cray machines

Post by pierrecarrier »

Dear François Gygi,

I`m starting to work on Qbox here at Cray. Do you have any example of a file ./src/cray.mk that was used at NERSC (Hopper of Franklin), or any other XE or XT machine you have used in the past?

Thank you in advance,
Pierre Carrier
fgygi
Site Admin
Posts: 167
Joined: Tue Jun 17, 2008 7:03 pm

Re: How to install on Cray machines

Post by fgygi »

The following makefile includes can be used to build Qbox 1.56.2 on hopper.nersc.gov (Cray XE6). They require the PrgEnv-intel and fftw modules to be loaded. The following file does not enable OpenMP threads and uses the sequential MKL library:

Code: Select all

#-------------------------------------------------------------------------------
#
#  hopper.nersc.gov
#
#-------------------------------------------------------------------------------
#
 PLT=x86_64
#-------------------------------------------------------------------------------
 XERCESCDIR=$(HOME)/software/xerces/xerces-c-src_2_8_0_intel
 PLTOBJECTS = readTSC.o

 CXX=CC -mkl=sequential
 LD=$(CXX)

 OPT= -O3 -vec-report1

 PLTFLAGS += $(OPT) -DIA32 -DUSE_FFTW -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 -DPARALLEL_FS -DUSE_DFFTW

 INCLUDE = -I$(XERCESCDIR)/include

 CXXFLAGS= -D$(PLT) $(INCLUDE) $(PLTFLAGS) $(DFLAGS)

 LIBPATH = -L$(XERCESCDIR)/lib

 LIBS =  -lfftw -lxerces-c

 LDFLAGS = $(LIBPATH) $(LIBS)
The following makefile include enables OpenMP threads and uses the threaded MKL library:

Code: Select all

#-------------------------------------------------------------------------------
#
#  hopper.nersc.gov
#
#-------------------------------------------------------------------------------
#
 PLT=x86_64
#-------------------------------------------------------------------------------
 XERCESCDIR=$(HOME)/software/xerces/xerces-c-src_2_8_0_intel
 PLTOBJECTS = readTSC.o

 CXX=CC -mkl=parallel
 LD=$(CXX)

 OPT= -O3 -openmp -vec-report1 -openmp-report1

 PLTFLAGS += $(OPT) -DIA32 -DUSE_FFTW -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 -DPARALLEL_FS -DUSE_DFFTW

 INCLUDE = -I$(XERCESCDIR)/include

 CXXFLAGS= -D$(PLT) $(INCLUDE) $(PLTFLAGS) $(DFLAGS)

 LIBPATH = -L$(XERCESCDIR)/lib

 LIBS =  -lfftw -lxerces-c

 LDFLAGS = $(LIBPATH) $(LIBS)
The difference between the two files is

Code: Select all

12c12
<  CXX=CC -mkl=sequential
---
>  CXX=CC -mkl=parallel
15c15
<  OPT= -O3 -vec-report1
---
>  OPT= -O3 -openmp -vec-report1 -openmp-report1
To build the Xerces-C 2.8.0 library on hopper, the following arguments can be used with the runConfigure command:

Code: Select all

./runConfigure -p linux -c cc -x CC -r none -n fileonly -s
Post Reply