Versions Compared

Key

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

Table of Contents

Opis

Quantum ESPRESSO je računalno-kemijska aplikacija koja je optimizirana za simulacije u fizici čvrstog stanja. Temelji se na teoriji funkcionala gustoće, a koristi se ravninskim valovima (engl. plane wave) koji se koriste za opisivanje ponašanja elektrona u čvrstom stanju.

Quantum ESPRESSO je aplikacija otvorenog koda, a podržava hibridnu paralelizaciju, MPI + OpenMP,kao i upotrebu grafičkih procesora. 

Verzije

verzija

CPU

modulprevodiocpodrškaparalelizacija
VerzijaUključuje thermo_pwModulPrevodiocParalelizacija
uključuje thermo_pw
6.81.6.0scientific/qe/6.8-gnuGNU
CPU
MPI + OpenMP
v1.6.0
scientific/qe/6.8-intelIntel + MKL
7.01.7.0scientific/qe/7.0-gnuGNU
CPUMPI + OpenMPv1.7.0
scientific/qe/7.0-intelIntel + MKL
7.1
scientific/qe/7.
1
-gnuGNUCPUMPI + OpenMPv1
.7.1scientific/qe/7.1-
intel
gnu
Intel + MKL
GNU
scientific/qe/7.1-
nvhpcNVIDIA HPCGPU + CPUOpenMP
intelIntel + MKL
7.2-scientific/qe/7.2-gnuGNU
CPUMPI + OpenMP
-
scientific/qe/7.2-intelIntel + MKL
scientific/qe/7.2-gnu+mklGNU + MKL

GPU

VerzijaUključuje thermo_pwModulPrevodiocParalelizacija
7.1v1.7.1scientific/qe/7.
2
1-nvhpcNVIDIA HPC
GPU + CPU
OpenMP
7.2-scientific/qe/7.2-nvhpc
OpenMP

Službena dokumentacija

Primjeri

Napomene

Warning

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

Zbog aktualnog cray-pals buga, trenutno je limitiran broj poslova koje se mogu širiti van čvora kad koriste Cray-ev mpiexec. 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.

Tip

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

Tip

MPI pokretač za GNU verzije:

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

MPI pokretač za Intel verzije:

mpiexec [-x ${OMP_NUM_THREADS}] pw.x

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
#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
languagebash
themeMidnight
titleBash skripta
linenumberstrue
#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
languagebash
themeMidnight
titlePBS skripta
linenumberstrue
#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
languagebash
titlePBS skripta
linenumberstrue
#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