Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

GROMACS je aplikacija otvorenog koda, a podržava hibridnu paralelizaciju, MPI + OpenMP,kao i upotrebu grafičkih procesora koji značajno ubrzavaju MD izračune. 

Verzije

verzijamodulpodrškaparalelizacijauključuje PLUMED
2022.5scientific/gromacs/2022.5-gnuCPUMPI + OpenMPv2.8.2
20232022.5

scientific/gromacs/2022.5-cuda

CUDA GPU + CPUMPI + OpenMP-

Službena dokumentacija

...

Tip

Kad u zaglavlju PBS skripte definirate vrijednost varijable ncpus, u okolinu se automatski doprema ista vrijednost OMP_NUM_THREADS varijable.

CPU

MPI + OpenMP

Budući da aplikacija podržava hibridnu paralelizaciju, MPI procese možete podijeliti na OpenMP threadove.

...

Code Block
languagebash
titlePBS skripta
linenumberstrue
#PBS -N run-gmx
#PBS -q cpu
#PBS -l select=8:ncpus=4
#PBS -j oe
N run-gmx

MPI_NUM_PROCESSES=$(cat ${PBS_NODEFILE} | wc -l)

cd ${PBS_O_WORKDIR}

module load scientific/gromacs/2022.5-gnu

mpiexec -n ${MPI_NUM_PROCESSES} -d ${OMP_NUM_THREADS} --cpu-bind depth gmx mdrun -pin on -v -deffnm md

...

Code Block
languagebash
titlePBS skripta
linenumberstrue
#PBS -N run-gmx
#PBS -q cpu
#PBS -l select=32:ncpus=1
#PBS -jN oerun-gmx

MPI_NUM_PROCESSES=$(cat ${PBS_NODEFILE} | wc -l)

cd ${PBS_O_WORKDIR}

module load scientific/gromacs/2022.5-gnu

mpiexec -n ${MPI_NUM_PROCESSES} -d ${OMP_NUM_THREADS} --cpu-bind depth gmx mdrun -pin on -v -deffnm md

...

Code Block
languagebash
titleBash skripta
linenumberstrue
#PBS -q cpu
#PBS -l select=1:ncpus=32
#PBS -N run-gmx

MPI_NUM_PROCESSES=$(cat ${PBS_NODEFILE} | wc -l)

cd ${PBS_O_WORKDIR}

module load scientific/gromacs/2022.5-gnu

gmx mdrun -pin on -v -deffnm md

GPU

Aplikacija podržava rad s grafičkim procesorom, odnosno rad s više grafičkih procesora.

Warning

GPU iskorištenje je u slučaju korištenja više grafičkih procesora relativno malo i kreće se do maksimalno 50% kod korištenja 2 GPU-a u većem broju testiranih primjera.

Iz tog razloga, razmotrite korištenje jednog grafičkog procesora i više procesorskih jezgri. GPU iskorištenje se u slučaju korištenja 1 GPU + 8 CPU kreće i do 85%.

Single GPU

Prilikom pozivanja aplikacije s mpiexec, MPI proces dodjeljuje se jednom grafičkom procesoru (putem varijable CUDA_VISIBLE_DEVICES), a svaka OpenMP nit (putem varijable OMP_NUM_THREADS) jednoj procesorskoj jezgri.

U primjeru niže, aplikacija će koristiti jedan grafički procesor te četiri procesorske jezgre.

Code Block
languagebash
titlePBS skripta
linenumberstrue
#PBS -q cpu
#PBS -l select=1:ngpus=1:ncpus=8
#PBS -N run-gmx

MPI_NUM_PROCESSES=$(cat ${PBS_NODEFILE} | wc -l)

cd ${PBS_O_WORKDIR}

module load scientific/gromacs/2022.5-gnu

mpiexec -n ${MPI_NUM_PROCESSES} -d ${OMP_NUM_THREADS} --cpu-bind depth gmx mdrun -pin on -v -deffnm md

Multi GPU

Prilikom pozivanja aplikacije s mpiexec, svaki MPI proces dodijeli se jednom grafičkom procesoru (putem varijable CUDA_VISIBLE_DEVICES), a svaka OpenMP nit (putem varijable OMP_NUM_THREADS) jednoj procesorskoj jezgri.

U primjeru niže, aplikacija će koristiti dva grafička procesora te po četiri procesorske jezgre za svaki grafički procesor.

Code Block
languagebash
titlePBS skripta
linenumberstrue
#PBS -q cpu
#PBS -l select=2:ngpus=1:ncpus=324
#PBS -jN oerun-gmx

MPI_NUM_PROCESSES=$(cat ${PBS_NODEFILE} | wc -l)

cd ${PBS_O_WORKDIR}

module load scientific/gromacs/2022.5-gnu

mpiexec -n ${MPI_NUM_PROCESSES} -d ${OMP_NUM_THREADS} --cpu-bind depth gmx mdrun -pin on -v -deffnm md

...