Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Reverted from v. 17

...

...

Primjeri

Tip

When you define the value of the ncpus variable in the header of the PBS script, the same value of the Kad u zaglavlju PBS skripte definirate vrijednost varijable ncpus, u okolinu se automatski doprema ista vrijednost OMP_NUM_THREADS variable is automatically delivered to the environment varijable.

CPU

MPI + OpenMP

Since the application supports hybrid parallelization, you can split MPI processes into OpenMP threadsBudući da aplikacija podržava hibridnu paralelizaciju, MPI procese možete podijeliti na OpenMP threadove.

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

GROMACS recommends between 2 and 8 threads per MPI process.U primjeru niže, aplikacija će stvoriti 8 MPI procesa, podijeljenih u 4 OpenMP threada

Code Block
languagebash
titlePBS _scriptskripta
linenumberstrue
#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

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

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 procesaIn the example below, the application will launch 32 MPI processes.

Code Block
languagebash
titlePBS _scriptskripta
linenumberstrue
#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

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

Tip

GROMACS will get the će vrijednost OMP_NUM_THREADS value by defining the ncpus variable in the script header. dobiti po definiranju ncpus varijable u zaglavlju skripte.

U primjeru niže, aplikacija će se pokrenuti s 32 OpenMP threadaIn the example below, the application will run with 32 OpenMP threads.

Code Block
languagebash
titleBash _scriptskripta
linenumberstrue
#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

Since the application supports hybrid parallelization, you can split MPI processes into OpenMP threadsAplikacija podržava rad s grafičkim procesorom, odnosno rad s više grafičkih procesora.

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 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.For this reason, consider using a single GPU and multiple CPU cores. GPU utilization in the case of using 1 GPU + 8 CPUs reaches up to 85%.

Single GPU

In the example below, the application will use one graphics processor and eight processor coresU primjeru niže, aplikacija će koristiti jedan grafički procesor te osam procesorskih jezgara.

Code Block
languagebash
titlePBS _scriptskripta
linenumberstrue
#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

When calling an application with Prilikom pozivanja aplikacije s mpiexec, each MPI process is assigned to one GPU (via the svaki MPI proces dodijeli se jednom grafičkom procesoru (putem varijable CUDA_VISIBLE_DEVICES variable), and each a svaka OpenMP thread nit (via the putem varijable OMP_NUM_THREADS variable) to one processor core.In the example below, the application will use two graphics processors and four processor cores for each graphics processor) 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 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

...