Opis
GROMACS je računalno-kemijska aplikacija za molekulsku dinamiku (MD), a prvenstveno se koristi za simulacije makromolekula.
GROMACS se prvenstveno temelji na klasičnoj mehanici, što znači da koristi jednadžbe gibanja klasične mehanike za izračunavanje kretanja molekule i njihovih segmenata. MD simulacije mogu pružiti informacije o ponašanju i svojstvima molekula, poput njihovih konformacija, energija i interakcija s drugim molekulama.
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
CPU
verzija | modul | paralelizacija | uključuje PLUMED |
---|---|---|---|
2022.5 | scientific/gromacs/2022.5-gnu | MPI + OpenMP | v2.8.2 |
2023.1 |
| MPI + OpenMP | v2.9.0 |
GPU + CPU
verzija | modul | paralelizacija | uključuje PLUMED |
---|---|---|---|
2022.5 |
| MPI + OpenMP | - |
2023.1 |
| MPI + OpenMP | - |
Službena dokumentacija
Primjeri
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.
U primjeru niže, aplikacija će stvoriti 8 MPI procesa, podijeljenih u 4 OpenMP threada
#PBS -q cpu #PBS -l select=8:ncpus=4 cd ${PBS_O_WORKDIR} module load scientific/gromacs/2022.5-gnu mpiexec -d ${OMP_NUM_THREADS} --cpu-bind depth gmx mdrun -pin on -v -deffnm md
MPI
Ako aplikaciju ne želite dijeliti u OpenMP threadove, možete koristiti paralelizaciju isključivo na razini MPI procesa.
U primjeru niže, aplikacija će pokrenuti 32 MPI procesa.
#PBS -q cpu #PBS -l select=32 cd ${PBS_O_WORKDIR} module load scientific/gromacs/2022.5-gnu mpiexec gmx mdrun -pin on -v -deffnm md
OpenMP
Ako aplikaciju želite dijeliti isključivo u OpenMP threadove, morate zatražiti jedan računalni čvor, budući da u ovom slučaju aplikacija radi s dijeljenom memorijom.
GROMACS će vrijednost OMP_NUM_THREADS
dobiti po definiranju ncpus
varijable u zaglavlju skripte.
U primjeru niže, aplikacija će se pokrenuti s 32 OpenMP threada.
#PBS -q cpu #PBS -l ncpus=32 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.
GPU iskorištenje se u slučaju korištenja više grafičkih procesora 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
U primjeru niže, aplikacija će koristiti jedan grafički procesor te osam procesorskih jezgara.
#PBS -q gpu #PBS -l select=1:ngpus=1:ncpus=8 cd ${PBS_O_WORKDIR} module load scientific/gromacs/2022.5-cuda 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.
#PBS -q gpu #PBS -l select=2:ngpus=1:ncpus=4 cd ${PBS_O_WORKDIR} module load scientific/gromacs/2022.5-cuda mpiexec -d ${OMP_NUM_THREADS} --cpu-bind depth gmx mdrun -pin on -v -deffnm md