Compiling SIESTA 3.1 and 3.2 on HECToR
Instructions for compiling the SIESTA code on HECToR phase 3 (Cray XE6, Interlagos)
Module setup
Swap to the PGI compiler
module swap PrgEnv-cray PrgEnv-pgi module swap pgi pgi/12.1.0
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.7 2) nodestat/2.2-1.0400.31264.2.5.gem 3) sdb/1.0-1.0400.32124.7.19.gem 4) MySQL/5.0.64-1.0000.5053.22.1 5) lustre-cray_gem_s/1.8.6_2.6.32.45_0.3.2_1.0400.6453.7.1-1.0400.38471.0.0 6) udreg/2.3.1-1.0400.4264.3.1.gem 7) ugni/2.3-1.0400.4374.4.88.gem 8) gni-headers/2.1-1.0400.4351.3.1.gem 9) dmapp/3.2.1-1.0400.4255.2.159.gem 10) xpmem/0.1-2.0400.31280.3.1.gem 11) hss-llm/6.0.0 12) Base-opts/1.0.2-1.0400.31284.2.2.gem 13) xtpe-network-gemini 14) PrgEnv-pgi/4.0.46 15) atp/1.6.0 16) xt-asyncpe/5.17 17) pmi/4.0.0-1.0000.9282.69.4.gem 18) xt-libsci/12.0.00 19) xt-totalview/8.11.0 20) totalview-support/1.1.4 21) pgi/12.1.0 22) pbs/10.2.2.113537 23) packages-phase3 24) bolt/0.5 25) budgets/1.0 26) xtpe-interlagos 27) cray-mpich2/5.6.1 28) fftw/3.3.0.1 29) hdf5/1.8.8 30) netcdf/4.2.0
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