...
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
verzija | modul | podrška | paralelizacija | uključuje PLUMED |
---|---|---|---|---|
2022.5 | scientific/gromacs/2022.5-gnu | CPU | MPI + OpenMP | v2.8.2 |
20232022.5 | scientific/gromacs/2022.5-cuda | CUDA GPU + CPU | MPI + OpenMP | - |
Službena dokumentacija
...
Tip |
---|
Kad u zaglavlju PBS skripte definirate vrijednost varijable |
CPU
MPI + OpenMP
Budući da aplikacija podržava hibridnu paralelizaciju, MPI procese možete podijeliti na OpenMP threadove.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#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 | ||||||
---|---|---|---|---|---|---|
| ||||||
#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 | ||||||
---|---|---|---|---|---|---|
| ||||||
#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 | ||||||
---|---|---|---|---|---|---|
| ||||||
#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 | ||||||
---|---|---|---|---|---|---|
| ||||||
#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 |
...