Linux / amd64
Linux / arm64
GROMACS is a molecular dynamics application designed to simulate Newtonian equations of motion for systems with hundreds to millions of particles. GROMACS is designed to simulate biochemical molecules like proteins, lipids, and nucleic acids that have a lot of complicated bonded interactions.
The following requirements must be met before running the NGC GROMACS container:
Download the water_GMX50_bare
benchmark:
DATA_SET=water_GMX50_bare
wget -c https://ftp.gromacs.org/pub/benchmarks/DATA_SET.tar.gz
tar xf ${DATA_SET}.tar.gz
cd ./water-cut1.0_GMX50_bare/1536
Several GROMACS images are available, depending on your needs. Set the following environment variable which will be used in the example below.
export GROMACS_TAG={TAG}
NGC supports the Docker runtime through the nvidia-docker plugin. This example is loosely designed and can be modified and adapted to best fit your system architecture.
DOCKER="nvidia-docker run -it --rm -v ${PWD}:/host_pwd --workdir /host_pwd nvcr.io/hpc/gromacs:${GROMACS_TAG}
DOCKER="nvidia-docker run -it --rm -v ${PWD}:/host_pwd --workdir /host_pwd --device=/dev/infiniband --cap-add=IPC_LOCK --net=host nvcr.io/hpc/gromacs:${GROMACS_TAG}
Prepare the benchmark data.
${DOCKER} gmx grompp -f pme.mdp
Run GROMACS.
${DOCKER} gmx mdrun -ntmpi 4 -nb gpu -pin on -v -noconfout -nsteps 5000 -s -ntomp 10 topol.tpr
This example is loosely designed and can be modified and adapted to best fit your system architecture.
Save the NGC Gromacs container as a local Singularity image file:
$ singularity build ${GROMACS_TAG}.sif docker://nvcr.io/hpc/gromacs:${GROMACS_TAG}
The container is now saved in the current directory as ${GROMACS_TAG}.sif
Define the SINGULARITY
command alias.
SINGULARITY="singularity run --nv -B ${PWD}:/host_pwd --pwd /host_pwd ${SIMG}"
Prepare benchmark data.
${SINGULARITY} gmx grompp -f pme.mdp
Run GROMACS.
${SINGULARITY} gmx mdrun -ntmpi 4 -nb gpu -pin on -v -noconfout -nsteps 5000 -s -ntomp 10 topol.tpr
There is currently a bug in Singularity 3.1.x and 3.2.x causing the LD_LIBRARY_PATH
to be incorrectly set within the container environment.
As a workaround The LD_LIBRARY_PATH
must be unset before invoking Singularity:
$ LD_LIBRARY_PATH="" singularity exec ...