CPU
MPI
Aplikaciju možete dijeliti na razini MPI procesa.
U primjeru niže, aplikacija će pokrenuti 32 MPI procesa.
Code Block |
---|
language | bash |
---|
theme | Midnight |
---|
title | PBS skripta |
---|
linenumbers | true |
---|
|
#PBS -q cpu
#PBS -l select=32
#PBS -l place=pack
cd ${PBS_O_WORKDIR}
module load scientific/qe/7.1-gnu
mpiexec pw.x -i calcite.in |
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 |
---|
language | bash |
---|
theme | Midnight |
---|
title | Bash skripta |
---|
linenumbers | true |
---|
|
#PBS -q cpu
#PBS -l ncpus=32
cd ${PBS_O_WORKDIR}
module load scientific/qe/7.1-gnu
pw.x -i calcite.in |
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.
Code Block |
---|
language | bash |
---|
theme | Midnight |
---|
title | PBS skripta |
---|
linenumbers | true |
---|
|
#PBS -q cpu
#PBS -l select=8:ncpus=4
#PBS -l place=pack
cd ${PBS_O_WORKDIR}
module load scientific/qe/7.1-gnu
mpiexec -d ${OMP_NUM_THREADS} --cpu-bind depth pw.x -i calcite.in |
GPU
Single GPU
Aplikacija može koristiti jedan grafički procesor koji se definira SGE opcijom ngpus
, a koja će u okolinu izvesti varijablu CUDA_VISIBLE_DEVICES
, čija će vrijednost biti UUID grafičkog procesora koji Vam je sustav dodijelio.
Broj CPU jezgri definira se putem OpenMP dretvi, odnosno u zaglavlju SGE skripte odabirom vrijednosti ncpus
.
U primjeru niže, aplikacija će se pokrenuti s jednim grafičkim procesorom i 4 CPU jezgre.
Code Block |
---|
language | bash |
---|
title | PBS skripta |
---|
linenumbers | true |
---|
|
#PBS -q gpu
#PBS -l select=1:ngpus=1:ncpus=1
cd ${PBS_O_WORKDIR}
module load scientific/qe/7.1-nvhpc
pw.x -i calcite.in |