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 | modul | podrška | paralelizacija | uključuje thermo_pw | |
---|---|---|---|---|---|
6.8 | scientific/qe/6.8-gnu | CPU | MPI + OpenMP | v1.6.0 | |
7.0 | scientific/qe/7.0-gnu | CPU | MPI + OpenMP | v1.7.0 | |
7.1 | scientific/qe/7.1-gnu | CPU | MPI + OpenMP | v1.7.1 | |
7.1 | scientific/qe/7.1-nvhpc | GPU + CPU | OpenMP | v1.7.1 |
Službena dokumentacija
Primjeri
Tip |
---|
Kad u zaglavlju PBS skripte definirate vrijednost varijable |
Warning |
---|
MPI pokretač za GNU verzije:
|
Warning |
---|
MPI pokretač za Intel (MKL) verzije:
|
CPU
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
#PBS -q cpu #PBS -l select=8:ncpus=4 #PBS -N pw MPI_NUM_PROCESSES=$(cat ${PBS_NODEFILE} | wc -l) cd ${PBS_O_WORKDIR} module load scientific/qe/7.1-gnu mpiexec -n ${MPI_NUM_PROCESSES} -d ${OMP_NUM_THREADS} --cpu-bind depth pw.x -i calcite.in |
MPI
Ako 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.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#PBS -q cpu #PBS -l select=32 #PBS -N pw MPI_NUM_PROCESSES=$(cat ${PBS_NODEFILE} | wc -l) cd ${PBS_O_WORKDIR} module load scientific/qe/7.1-gnu mpiexec -n ${MPI_NUM_PROCESSES} 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.
Tip |
---|
QE će vrijednost |
U primjeru niže, aplikacija će se pokrenuti s 32 OpenMP threada.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#PBS -q cpu #PBS -l ncpus=32 #PBS -N pw cd ${PBS_O_WORKDIR} module load scientific/qe/7.1-gnu 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 | ||||||
---|---|---|---|---|---|---|
| ||||||
#PBS -q gpu #PBS -l select=1:ngpus=1:ncpus=4 #PBS -N pw cd ${PBS_O_WORKDIR} module load scientific/qe/7.1-nvhpc pw.x -i calcite.in |