Versions Compared

Key

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

Image Modified

Table of Contents

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

...

VerzijaUključuje PLUMEDModulSupekMPI implementacija (Supek)PadobranParalelizacija

...

2022.5v2.8.2scientific/gromacs/2022.5-gnucheck mark button Cray MPICH(error) MPI + OpenMP
2023.1v2.

...

9.

...

0

scientific/gromacs/2023.1-gnu

check mark button Cray MPICH(error) 
2023.4-

scientific/gromacs/2023.4/openmpi-5.0.1

...

/gcc-11.2.1

check mark button Open MPI(error) 
2024.2v2.

...

10.0

...

GPU + CPU

scientific/gromacs/2024.2

(error) Open MPIcheck mark button MPI + OpenMP

GPU

VerzijaUključuje PLUMEDModulSupekMPI implementacija (Supek)PadobranParalelizacija

...

2022.5-

scientific/gromacs/2022.5-cuda

check mark button Cray MPICH(error) MPI + OpenMP

...

2023.1-

scientific/gromacs/2023.1-cuda

...

check mark button Cray MPICH(error) 

...

Službena dokumentacija

Primjeri

...

Napomene

Tip

When you define the value of the ncpus variable in the header of the PBS script, the same value of the OMP_NUM_THREADS variable is automatically delivered to the environment.

CPU

MPI + OpenMP

Since the application supports hybrid parallelization, you can split MPI processes into OpenMP threads.

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

...

Warning

Podrazumijevano PBS ponašanje je „slobodno" razmještanje chunkova po slobodnim čvorovima.

Cray MPICH

Zbog aktualnog cray-pals buga, trenutno je ograničen broj poslova koji se mogu širiti van čvora kad koriste Cray MPICH. Ako Vaš posao prijeđe taj limit te proširi svoje MPI procese na druge čvorove, prekinut će se. Kako bi sigurno izbjegli bug, potrebno je sve MPI procese smjestiti na isti čvor. Najjednostavniji način je korištenjem opcije #PBS -l place=pack.

MPI pokretač za Cray MPICH verzije:

mpiexec [-d $OMP_NUM_THREADS --cpu-bind depth] pw.x

Open MPI

U slučaju korištenja Open MPI-ja, moguće je izostaviti gore spomenutu packopciju.

MPI pokretač za Open MPI verzije:

mpirun --hostfile $PBS_NODEFILE gmx

Warning

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


Tip

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


CPU

MPI

Aplikaciju možete dijeliti na razini MPI procesa. U primjeru niže, aplikacija će pokrenuti 32 MPI procesa.

Code Block
languagebash
themeMidnight
titlePBS

...

skripta
linenumberstrue
#PBS -q cpu
#PBS -l select=

...

32:mem=400mb
#PBS -l place=pack

cd ${PBS_O_WORKDIR}

module load scientific/gromacs/2022.5-gnu

mpiexec

...

 gmx mdrun -pin on -v -deffnm md

MPI

If you do not want to divide the application into OpenMP threads, you can use parallelization exclusively at the MPI process level.

...

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. U primjeru niže, aplikacija će se pokrenuti s 32 OpenMP threada.

Code Block
languagebash
themeMidnight
title

...

Bash skripta
linenumberstrue
#PBS -q cpu
#PBS -l select=1:ncpus=32:mem=12gb

cd ${PBS_O_WORKDIR}

module load scientific/gromacs/2022.5-gnu

...

gmx mdrun -pin on -v -deffnm md

OpenMP

If you want to split the application exclusively into OpenMP threads, you must request one computer node, since in this case the application works with shared memory.

Tip

GROMACS will get the OMP_NUM_THREADS value by defining the ncpus variable in the script header.

In the example below, the application will run with 32 OpenMP threads.

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.

Tip
GROMACS preporučuje između 2 i 8 threadova po MPI procesu.
Code Block
languagebash
themeMidnight
title

...

PBS skripta
linenumberstrue
#PBS -q cpu
#PBS -l select=8:ncpus

...

=4:mem=2gb
#PBS -l place=pack

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

GPU

Since the application supports hybrid parallelization, you can split MPI processes into OpenMP threads.

...

GPU utilization in the case of using multiple graphics processors reaches a maximum of 50% (when using 2 GPUs) in a large number of tested examples.

...

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

Single GPU

...

U primjeru niže, aplikacija će koristiti jedan grafički procesor te osam procesorskih jezgara.

Code Block
languagebash
themeMidnight
titlePBS

...

skripta
linenumberstrue
#PBS -q gpu
#PBS -l select=1:ngpus=1:ncpus=8:mem=12gb

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.

Code Block
languagebash
themeMidnight
titlePBS skripta
linenumberstrue
#PBS -q gpu
#PBS -l select=2:ngpus=1:ncpus=4:mem=6gb
#PBS -l place=pack

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