Compiling SIESTA 3.1 on phase 3
Instructions for compiling the SIESTA code on phase 3 (Cray XE6, Interlagos)
Module setup
Swap to the PGI compiler
module swap PrgEnv-cray PrgEnv-pgi
Load the NetCDF and FFTW 3 modules:
module add netcdf module add fftw
Modules loaded for the central installation of SIESTA 3.1:
Currently Loaded Modulefiles: 1) modules/3.2.6.6 2) nodestat/2.2-1.0400.29866.4.3.gem 3) sdb/1.0-1.0400.30000.6.18.gem 4) MySQL/5.0.64-1.0000.4667.20.1 5) lustre-cray_gem_s/1.8.4_2.6.32.45_0.3.2_1.0400.6221.1.1-1.0400.30252.1.29 6) udreg/2.3.1-1.0400.3911.5.6.gem 7) ugni/2.3-1.0400.3912.4.29.gem 8) gni-headers/2.1-1.0400.3906.5.1.gem 9) dmapp/3.2.1-1.0400.3965.10.12.gem 10) xpmem/0.1-2.0400.29883.4.6.gem 11) hss-llm/6.0.0 12) Base-opts/1.0.2-1.0400.29823.8.1.gem 13) xtpe-network-gemini 14) PrgEnv-pgi/4.0.30 15) xt-mpich2/5.3.4 16) atp/1.3.0 17) xt-asyncpe/5.03 18) pmi/2.1.4-1.0000.8596.8.9.gem 19) xt-libsci/11.0.03 20) xt-totalview/8.9.2 21) totalview-support/1.1.2 22) pgi/11.9.0 23) pbs/10.2.2.113537 24) packages-phase3 25) usertools/1.0 26) budgets/1.0 27) xtpe-interlagos 28) fftw/3.3.0.0 29) hdf5/1.8.6 30) netcdf/4.1.2
Configure the build
Set the compiler commands
export FC=ftn export MPIFC=ftn export FC_SERIAL=pgf90
Configure the package:
cd siesta-3.1/Obj sh ../Src/obj_setup.sh cp ../Src/Sys/cscs-cray-mpi.make arch.make
Edit top part of arch.make to the following:
# # This file is part of the SIESTA package. # # Copyright (c) Fundacion General Universidad Autonoma de Madrid: # E.Artacho, J.Gale, A.Garcia, J.Junquera, P.Ordejon, D.Sanchez-Portal # and J.M.Soler, 1996- . # # Use of this software constitutes agreement with the full conditions # given in the SIESTA license, as signed by all legitimate users. # SIESTA_ARCH=hector-phase3-cray-xe6-mpi # # For HECToR Cray XE6 # FC=ftn FPP=pgf90 -F FC_ASIS=$(FC) # FFLAGS=-fastsse FFLAGS_DEBUG= -g -O0 RANLIB=echo COMP_LIBS= # NETCDF_LIBS= # /usr/local/netcdf-3.5/lib/pgi/libnetcdf.a NETCDF_INTERFACE= # libnetcdf_f90.a FPPFLAGS_CDF= # -DCDF # KINDS=4 8 MPI_LIBS= MPI_INTERFACE=libmpi_f90.a MPI_INCLUDE=. FPPFLAGS_MPI=-DMPI # LIBS= SYS=nag DEFS= $(DEFS_CDF) $(DEFS_MPI) FPPFLAGS= $(FPPFLAGS_CDF) $(FPPFLAGS_MPI)
Build the package
Then build the package:
make
