Gromacs 2016.5 for LX (gcc)

Webpage

http://www.gromacs.org/

Version

2016.5

Build Environment

  • GCC 5.3.1
  • Intel MKL 2018 Update 2
  • Intel MPI 2017.3.196
  • FFTW 3.3.2 (sse enabled)
  • cmake 2.8.12.2

Files Required

  • gromacs-2016.5.tar.gz
  • (regressiontests-2016.5.tar.gz; testset)

Build Procedure

(Leading tabs in the block enclosed with "EOF" are replaced with spaces. Please beware when you use this script.)

#!/bin/sh

VERSION=2016.5
SCL_TOOLSET=devtoolset-4
INSTALL_PREFIX=/local/apl/lx/gromacs2016.5-gnu

BASEDIR=/home/users/${USER}
GROMACS_TARBALL=${BASEDIR}/gromacs-${VERSION}.tar.gz
#REGRESSION=${BASEDIR}/regressiontests-${VERSION} # unpacked

WORKDIR=/work/users/${USER}
#export OMP_NUM_THREADS=1

#---------------------------------------------------------------------
umask 0022

cd ${WORKDIR}
if [ -d gromacs-${VERSION} ]; then
  mv gromacs-${VERSION} gromacs_erase
  rm -rf gromacs_erase &
fi

tar xzf ${GROMACS_TARBALL}
cd gromacs-${VERSION}

# single precision, no MPI
scl enable ${SCL_TOOLSET} bash <<-EOF
        mkdir rccs-gnu-s
        cd rccs-gnu-s
        cmake .. \
                -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
                -DCMAKE_VERBOSE_MAKEFILE=ON \
                -DGMX_MPI=OFF \
                -DGMX_GPU=OFF \
                -DGMX_DOUBLE=OFF \
                -DGMX_THREAD_MPI=ON \
                -DGMX_FFT_LIBRARY=fftw3 \
                -DREGRESSIONTEST_DOWNLOAD=OFF
        make -j12 && make install
        cd ..

        # double precision, no MPI
        mkdir rccs-gnu-d
        cd rccs-gnu-d
        cmake .. \
                -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
                -DCMAKE_VERBOSE_MAKEFILE=ON \
                -DGMX_MPI=OFF \
                -DGMX_GPU=OFF \
                -DGMX_DOUBLE=ON \
                -DGMX_SIMD=AVX2_256 \
                -DGMX_THREAD_MPI=ON \
                -DGMX_FFT_LIBRARY=fftw3 \
                -DREGRESSIONTEST_DOWNLOAD=OFF
        make -j12 && make install
        cd ..

        # compiler setting for MPI versions
        export CC=mpicc
        export CXX=mpicxx
        export F77=mpif90
        export F90=mpif90
        export FC=mpif90

        # single precision, with MPI
        mkdir rccs-gnu-mpi-s
        cd rccs-gnu-mpi-s
        cmake .. \
                -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
                -DCMAKE_VERBOSE_MAKEFILE=ON \
                -DGMX_MPI=ON \
                -DGMX_GPU=OFF \
                -DGMX_DOUBLE=OFF \
                -DGMX_THREAD_MPI=OFF \
                -DGMX_FFT_LIBRARY=fftw3 \
                -DREGRESSIONTEST_DOWNLOAD=OFF
        make -j12 && make install
        cd ..

        # double precision, with MPI
        mkdir rccs-gnu-mpi-d
        cd rccs-gnu-mpi-d
        cmake .. \
                -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
                -DCMAKE_VERBOSE_MAKEFILE=ON \
                -DGMX_MPI=ON \
                -DGMX_GPU=OFF \
                -DGMX_DOUBLE=ON \
                -DGMX_SIMD=AVX2_256 \
                -DGMX_THREAD_MPI=OFF \
                -DGMX_FFT_LIBRARY=fftw3 \
                -DREGRESSIONTEST_DOWNLOAD=OFF
        make -j12 && make install
        cd ..
EOF

Notice

Double precision version is complied with AVX2_256 level, which is the same as the default setting in gromacs 5.1.5, due to a compilation error in AVX_512 setting.