Gromacs 2016.5 for LX (gcc)

ウェブページ

http://www.gromacs.org/

バージョン

2016.5

ビルド環境

  • 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

ビルドに必要なファイル

  • gromacs-2016.5.tar.gz
  • (regressiontests-2016.5.tar.gz; テストセット)

ビルド手順

(EOF内部の行で行頭のタブがスペースに置き換えられていることに注意してください)

#!/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

注意

倍精度版は自動で決まるSIMD幅(AVX_512)でコンパイルするとエラーが出るので、5.1.5と同じ設定(AVX2_256)にしています。