You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Opis

GROMACS je računalno-kemijska aplikacija za molekulsku dinamiku (MD), a prvenstveno se koristi za simulacije makromolekula te se može smatrati besplatnom alternativom komercijalnom Amberu.

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

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

scientific/gromacs/2022.5-cuda

GPU + CPUMPI + 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.

GROMACS preporuča između 2 i 8 threadova po MPI procesu.

U primjeru niže, aplikacija će stvoriti 8 MPI procesa, podijeljenih u 4 OpenMP threada.

PBS skripta
#PBS -q cpu
#PBS -l select=8:ncpus=4
#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

MPI

Ukoliko aplikaciju ne želite dijeliti aplikaciju u OpenMP threadove, možete koristiti paralelizaciju isključivo na razini MPI procesa.

U primjeru niže, aplikacija će pokrenuti 32 MPI procesa.

PBS skripta
#PBS -q cpu
#PBS -l select=32:ncpus=1
#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

OpenMP

Ukoliko 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.

Bash skripta
#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.

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.

PBS skripta
#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.

PBS skripta
#PBS -q cpu
#PBS -l select=2:ngpus=1:ncpus=4
#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
  • No labels