The HECToR Service is now closed and has been superceded by ARCHER.

Compiling LAMMPS 28Mar12 on HECToR Phase 3 (Cray XE6, Interlagos)

This page contains the compilation instructions for compiling LAMMPS 28Mar12 version of LAMMPS on HECToR Phase 3 (Cray XE6, Interlagos).

Download/unpack the source code

Download the latest version of LAMMPS from http://lammps.sandia.gov/download.html unpack it:

gunzip lammps.tar.gz
tar xvf lammps.tar
cd lammps-28Mar12/src

Setup the build environment

Switch to the GNU compiler Suite. Since January 2011 LAMMPS has had serious issues building with the PGI compiler so use GNU instead.

module swap PrgEnv-cray PrgEnv-gnu 

Load the FFTW 3 module:

module load fftw

Edit the existing Makefile.xe6 supplied under src/MAKE/Makefile.xe6. The following flags were used to compile LAMMPS:

 CC =            CC
 CCFLAGS =       -O3
 DEPFLAGS =      -M
 LINK =          CC
 LINKFLAGS =     -O3
 LIB =           -lstdc++
 ARCHIVE =       ar
 ARFLAGS =       -rc
 SIZE =          size

If FFTW is required then the paths to this must also be specified in the Makefile:
 FFT_INC =       -DFFT_FFTW3 -I$FFTW_INC
 FFT_PATH =      -L$FFTW_DIR
 FFT_LIB =       -lfftw3

Build the code

Build the parallel version with:

 make makelist
 make xe6

Modules loaded for the centrally installed build were:

  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-gnu/4.0.30
 15) xt-mpich2/5.4.3
 16) atp/1.3.0
 17) xt-asyncpe/5.07
 18) pmi/3.0.0-1.0000.8661.28.2807.gem
 19) xt-libsci/11.0.05
 20) xt-totalview/8.9.2
 21) totalview-support/1.1.2
 22) gcc/4.6.2
 23) pbs/10.2.2.113537
 24) packages-phase3
 25) budgets/1.0
 26) xtpe-interlagos
 27) java/jdk1.7.0_02
 28) globus/5.0.3
 29) fftw/3.3.0.0
 

Additional instructions for building the serial version of LAMMPS

To build the serial version of LAMMPS you first need to swap to the frontend processor architecture and build the MPI STUBS library:

module swap xtpe-interlagos xtpe-istanbul
cd STUBS
cp Makefile Makefile.orig

Edit Makefile and set

 CC =            CC
 CCFLAGS =       -O3

Make the MPI STUBS library with

make 

The suppled Makefile.serial can be used as a starting point. Edit serial makefile to include the STUBS library, flags used:

 CC =            CC
 CCFLAGS =       -O3
 DEPFLAGS =      -M
 LINK =          CC
 LINKFLAGS =     -O3
 LIB =           -lstdc++
 ARCHIVE =       ar
 ARFLAGS =       -rc
 SIZE =          size

If FFTW is required the paths to FFTW must also be set in Makefile.serial

 FFT_INC =       -DFFT_FFTW3 -I$FFTW_INC
 FFT_PATH =      -L$FFTW_DIR
 FFT_LIB =       -lfftw3

Build serial LAMMPS

cd ../
gmake serial 

Modules loaded for the centrally installed build were:

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-gnu/4.0.30
 15) xt-mpich2/5.4.3
 16) atp/1.3.0
 17) xt-asyncpe/5.07
 18) pmi/3.0.0-1.0000.8661.28.2807.gem
 19) xt-libsci/11.0.05
 20) xt-totalview/8.9.2
 21) totalview-support/1.1.2
 22) gcc/4.6.2
 23) pbs/10.2.2.113537
 24) packages-phase3
 25) budgets/1.0
 26) xtpe-istanbul
 27) java/jdk1.7.0_02
 28) globus/5.0.3
 29) fftw/3.3.0.0