Ada: GROMACS

Introduction

GROMACS is a force field molecular dynamics software suite principally designed to simulate complex interactions between biochemical molecules such as proteins, lipids and nucleic acids.

Documentation is available on the GROMACS Official Website.

Availability

The installed versions are :

  • 4.6.3
  • 4.6.5 (default version)
  • 5.0.1
  • 5.0.2
  • 5.1.4 with PLUMED plugin
  • 2016.3

The executable file of the mdrun calculation takes advantage of hybrid MPI/OpenMP parallelization.

Launching script

The executable files are accessible with the module command:

module load gromacs

Note that as of version 5.1.4, the default environment cannot be used anymore to execute Gromacs. Instead you should use the Intel MPI environment and modify your submission script accordingly (see the example bellow).

The following is an example of a launching script in hybrid parallelization for a calculation executed in the TMPDIR using the IBM MPI environment :

job.ll
# @ job_name         = gromacs
# @ output           = $(job_name).$(jobid)
# @ error            = $(job_name).$(jobid)
# @ job_type         = parallel
# Number of MPI processes requested
# @ total_tasks      = 32
# Number of OpenMP threads per MPI process
# @ parallel_threads = 4
# @ wall_clock_limit = 10:00:00
# @ queue
 
### Module initialization ###
module load gromacs
 
### Command echoes ###
set -x
 
### Copy the input files to the TMPDIR ###
cp *.gro *.top *.mdp *.tpr $TMPDIR
 
### Run the calculation ###
cd $TMPDIR
poe mdrun -s example.tpr
 
### Copy the output files to the submission folder ###
cd -
cp $TMPDIR/*.trr $TMPDIR/*.log .

The following is an example of a launching script in hybrid parallelization for a calculation executed in the TMPDIR using the Intel MPI environment and Gromacs 2016.3 :

job.ll
# @ job_name         = gromacs
# @ output           = $(job_name).$(jobid)
# @ error            = $(job_name).$(jobid)
# @ job_type         = mpich
# Number of MPI processes requested
# @ total_tasks      = 32
# Number of OpenMP threads per MPI process
# @ nb_threads       = 4
# @ resources        = ConsumableCpus($(nb_threads))
# @ environment      = OMP_NUM_THREADS=$(nb_threads); NB_TASKS=$(total_tasks)
# @ queue
# @ wall_clock_limit = 10:00:00
# @ queue
 
### Module initialization ###
module load gromacs/2016.3
 
### Command echoes ###
set -x
 
### Copy the input files to the TMPDIR ###
cp *.gro *.top *.mdp *.tpr $TMPDIR
 
### Run the calculation ###
cd $TMPDIR
mpirun -n $NB_TASKS mdrun_mpi -s example.tpr
 
### Copy the output files to the submission folder ###
cd -
cp $TMPDIR/*.trr $TMPDIR/*.log .

Parameters specific to the software

In order to benefit from using the hybrid mode, the Verlet algorithm must be used. To avoid having to regenerate the input files, or simply to test this mode, you may use the -testverlet option for the mdrun executable file.
Remember to adapt the launching script directives (execution of a hybrid MPI/OpenMP parallel code).