Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: + v2023 (CPU + GPU)

GROMACS je paket za izvođenje simulacija dinamike molekula, npr. simulacija Newtonovih jednadžbi gibanja sistema s velikim brojem čestica (od nekoliko tisuća, pa do više milijuna). Primarno je dizajniran za biokemijske molekule kao što su proteini, lipidi i nukleinske kiseline koje imaju velik broj kompliciranih vezanih interakcija, ali s obzirom da je GROMACS iznimno brz pri računanju nevezanih interakcija, mnogi ga koriste i za istraživanje ne bioloških sistema tipa polimera.

GROMACS podržava sve tipične algoritme očekivane kod implementacije dinamike molekula ( više detalja u priručniku), ali pruža iznimno visoke performanse u usporedbi s drugim paketima. Paralelizam se postiže koristeći kombinirajući OpenMPI i OpenMP.

Korištenje

Na klasteru su instalirane varijante programskog paketa Gromacs u višedretvenoj i MPI izvedbi za CPU (klasični procesori) i GPU (grafički procesori).

Dostupne verzije su:

2019320193201932019320193201932019320193-mvapich22-double2019.32019320193gromacs/2019.3-mvapich2
VerzijaImplementacijaModulNapomena
5.1.4single precision multithreadgromacs/5.1.4Koristiti isključivo uz *mpisingle
5.1.4double precision multithreadgromacs/5.1.4-doubleKoristiti isključivo uz *mpisingle
5.1.4single precision MPIgromacs/5.1.4-mvapich22
5.1.4double precision MPIgromacs/5.1.4-mvapich22-double
2018.4single precision multithreadgromacs/2018.4Koristiti isključivo uz *mpisingle
2018.4double precision multithreadgromacs/2018.4-doubleKoristiti isključivo uz *mpisingle
2018.4single precision MPIgromacs/2018.4-mvapich22
2018.4double precision MPIgromacs/2018.4-mvapich22-double
2018.4single precision multithread + GPUgromacs/2018.4-gpuKoristiti isključivo uz gpusingle
2018.4single precision MPI + GPUgromacs/2018.4-mvapich2-gpu
2018.6single precision multithread + Plumedgromacs/2018.6Koristiti isključivo uz *mpisingle
2018.6double precision multithread + Plumedgromacs/2018.6-doubleKoristiti isključivo uz *mpisingle
2018.6single precision MPI + Plumedgromacs/2018.6-mvapich22
2018.6double precision MPI + Plumedgromacs/2018.6-mvapich22-double
2018.6single precision multithread + GPU + Plumedgromacs/2018.6-gpuKoristiti isključivo uz gpusingle
2018.6single precision MPI + GPU + Plumedgromacs/2018.6-mvapich2-gpu
2020.6single precision MPI + OpenMP+ Plumedgromacs/2020.6
2020.6double precision MPI +OpenMP + Plumedgromacs/2020.6-double
2020.6single precision multithread + GPU + Plumedgromacs/2020.6-gpuKoristiti isključivo uz gpusingle
2020.6single precision MPI + GPU + Plumedgromacs/2020.6-mvapich22-gpu
2021.4mixed precision MPI + OpenMP + Plumedgromacs/2021.4-mvapich22
2021.4double precision MPI + OpenMP + Plumedgromacs/2021.4-mvapich22-double
2021.4mixed precision multithread + GPU + Plumedgromacs/2021.4-gpuKoristiti isključivo uz gpusingle
2021.4mixed precision MPI + GPU + Plumedgromacs/2021.4-mvapich22-gpu
2021.4mixed precision MPI + Plumed (2.8.0, svi moduli)gromacs/2021.4-mvapich2-fullplumed
2021.4mixed precision MPI + GPU + Plumed (2.8.0, svi moduli)gromacs/2021.4-mvapich2-gpu-fullplumed
2022mixed precision MPI + OpenMPgromacs/2022
2022mixed precision multithread + GPUgromacs/2022-gpuKoristiti isključivo uz gpusingle
2022mixed precision MPI + GPUgromacs/2022-mvapich22
2023mixed precision MPI + OpenMPgromacs/2023
2023mixed precision MPI + GPUgromacs/2023single precision MPI + GPU-gpu

CPU verzije

Primjer korištenja višedretvene verzije:

...

Warning
titleVažno

Gromacs verzija 5.1.4 zahtijeva parametar "-nice 0", kod novijih verzija taj parametar nije potreban.


Warning
titleVažno

Ukoliko neki od novijih CPU Gromacs module-a:

  • gromacs/2020.6
  • gromacs/2021.4-mvapich22
  • gromacs/2022

koristite u *mpisingle paralelnom okruženju, broj jezgri zadajete korištenjem zastavice -ntomp:

Code Block
#$ -pe *mpisingle 8

module load gromacs/2021.4-mvapich22
gmx mdrun -ntomp $NSLOTS -v -c conf30.gro -s topol30.tpr -px pullx30.xvg -pf pullf30.xvg -g md30.log -e ener30.edr -x traj30.xtc -cpi state.cpt -append


Primjer korištenja MPI verzije:

...

Code Block
#$ -N gromacs-cpugpu
#$ -pe gpu 3
#$ -l cores=6
#$ -cwd

module load gromacs/2018.4-mvapich22-gpu

mvapich-wrapper-nopin.sh gmx mdrun -ntomp 6 -v -s topol32.tpr -x traj.xtc -cpi state.cpt -append -c conf32.gro

Instalacija

CPU

Višedretvena verzija Gromacsa je prevedena s Intel 2019 i parametrima:

Code Block
module load intel
export CC=icc
export CXX=icc
export F77=ifort
export F90=ifort
export FC=ifort
export CFLAGS="-O3 -I/opt/intel/mkl/include/intel64/ilp64 -I/opt/intel/mkl/include -I/opt/intel/mkl/include/fftw"
export LIBS="-O3 /opt/intel/mkl/lib/intel64/libmkl_blas95_ilp64.a /opt/intel/mkl/lib/intel64/libmkl_lapack95_ilp64.a -L/opt/intel/mkl/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"
# avx single precision
export DEFOPTS="-DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/apps/gromacs/5.1.4/intel-single/avx -DGMX_FFT_LIBRARY=mkl -DGMX_SIMD=AVX_256 -DGMX_GPU=off"
cmake3 -D GMX_DEFAULT_SUFFIX=OFF -D GMX_MPI=OFF -D GMX_DOUBLE=OFF $DEFOPTS .
# avx2 single precision
export DEFOPTS="-DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/apps/gromacs/5.1.4/intel-single/avx2 -DGMX_FFT_LIBRARY=mkl -DGMX_GPU=off"
cmake3 -D GMX_DEFAULT_SUFFIX=OFF -D GMX_MPI=OFF -D GMX_DOUBLE=OFF $DEFOPTS .
# avx double precision
export DEFOPTS="-DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/apps/gromacs/5.1.4/intel-double/avx -DGMX_FFT_LIBRARY=mkl -DGMX_SIMD=AVX_256 -DGMX_GPU=off"
cmake3 -D GMX_DEFAULT_SUFFIX=OFF -D GMX_MPI=OFF -D GMX_DOUBLE=ON $DEFOPTS .
# avx2 double precision
export DEFOPTS="-DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/apps/gromacs/5.1.4/intel-double/avx2 -DGMX_FFT_LIBRARY=mkl -DGMX_GPU=off"
cmake3 -D GMX_DEFAULT_SUFFIX=OFF -D GMX_MPI=OFF -D GMX_DOUBLE=ON $DEFOPTS .
# install
make
make install

MPI verzija Gromacsa je preveden s Intel 2019 i MVAPICH 2.2 i parametrima:

Code Block
module load mpi/mvapich2-intel-2.2-x86_64
export CC=mpicc
export CXX=mpicxx
export F77=mpif77
export F90=mpif90
export FC=mpif90
export CFLAGS="-O3 -I/opt/intel/mkl/include/intel64/ilp64 -I/opt/intel/mkl/include -I/opt/intel/mkl/include/fftw"
export LIBS="-O3 /opt/intel/mkl/lib/intel64/libmkl_blas95_ilp64.a /opt/intel/mkl/lib/intel64/libmkl_lapack95_ilp64.a -L/opt/intel/mkl/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"
# avx single precision
export DEFOPTS="-DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/apps/gromacs/5.1.4/mvapich2-intel-2.2/avx -DGMX_FFT_LIBRARY=mkl -DGMX_SIMD=AVX_256 -DGMX_GPU=off"
cmake3 -D GMX_DEFAULT_SUFFIX=OFF -D GMX_MPI=ON -D GMX_DOUBLE=OFF $DEFOPTS .
# avx2 single precision
export DEFOPTS="-DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/apps/gromacs/5.1.4/mvapich2-intel-2.2/avx2 -DGMX_FFT_LIBRARY=mkl -DGMX_GPU=off"
cmake3 -D GMX_DEFAULT_SUFFIX=OFF -D GMX_MPI=ON -D GMX_DOUBLE=OFF $DEFOPTS .
# avx double precision
export DEFOPTS="-DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/apps/gromacs/5.1.4/mvapich2-intel-2.2-double/avx -DGMX_FFT_LIBRARY=mkl -DGMX_SIMD=AVX_256 -DGMX_GPU=off"
cmake3 -D GMX_DEFAULT_SUFFIX=OFF -D GMX_MPI=ON -D GMX_DOUBLE=ON $DEFOPTS .
# avx2 double precision
export DEFOPTS="-DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/apps/gromacs/5.1.4/mvapich2-intel-2.2-double/avx2 -DGMX_FFT_LIBRARY=mkl -DGMX_GPU=off"
cmake3 -D GMX_DEFAULT_SUFFIX=OFF -D GMX_MPI=ON -D GMX_DOUBLE=ON $DEFOPTS .
# install
make
make install

GPU

Višedretvena verzija Gromacsa je prevedena s Intel 2018 i CUDA 10.0 i parametrima:

Code Block
module load intel/2018
module load cuda/10-0
export CC=icc
export CXX=icc
export F77=ifort
export F90=ifort
export FC=ifort
export CFLAGS="-O3 -I/opt/intel/mkl/include/intel64/ilp64 -I/opt/intel/mkl/include -I/opt/intel/mkl/include/fftw"
export LIBS="-O3 /opt/intel/mkl/lib/intel64/libmkl_blas95_ilp64.a /opt/intel/mkl/lib/intel64/libmkl_lapack95_ilp64.a -L/opt/intel/mkl/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"
# avx2 single precision
export DEFOPTS="-DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/apps/gromacs/2018.4/intel-single-gpu/avx2 -DGMX_FFT_LIBRARY=mkl -DGMX_SIMD=AVX2_256 -DGMX_GPU=on"
cmake3 -D GMX_DEFAULT_SUFFIX=OFF -D GMX_MPI=OFF -D GMX_DOUBLE=OFF $DEFOPTS .
# install
make
make install

MPI verzija Gromacsa je preveden s Intel 2018, MVAPICH 2.2 i CUDA 10.0 i parametrima:

Code Block
module load mpi/mvapich2-intel2018-2.2-x86_64-cuda
export CC=mpicc
export CXX=mpicxx
export F77=mpif77
export F90=mpif90
export FC=mpif90
export CFLAGS="-O3 -I/opt/intel/mkl/include/intel64/ilp64 -I/opt/intel/mkl/include -I/opt/intel/mkl/include/fftw"
export LIBS="-O3 /opt/intel/mkl/lib/intel64/libmkl_blas95_ilp64.a /opt/intel/mkl/lib/intel64/libmkl_lapack95_ilp64.a -L/opt/intel/mkl/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"
# avx2 single precision
export DEFOPTS="-DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/apps/gromacs/2018.4/mvapich2-intel-2.2-gpu/avx2 -DGMX_FFT_LIBRARY=mkl -DGMX_SIMD=AVX2_256 -DGMX_GPU=on"
cmake3 -D GMX_DEFAULT_SUFFIX=OFF -D GMX_MPI=ON -D GMX_DOUBLE=OFF $DEFOPTS .
# install
make
make install