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 | prevodioc | podrška | paralelizacija | uključuje thermo_pw |
---|---|---|---|---|---|
6.8 | scientific/qe/6.8-gnu | GNU | CPU | MPI + OpenMP | v1.6.0 |
scientific/qe/6.8-intel | Intel + MKL | ||||
7.0 | scientific/qe/7.0-gnu | GNU | CPU | MPI + OpenMP | v1.7.0 |
scientific/qe/7.0-intel | Intel + MKL | ||||
7.1 | scientific/qe/7.1-gnu | GNU | CPU | MPI + OpenMP | v1.7.1 |
scientific/qe/7.1-intel | Intel + MKL | ||||
scientific/qe/7.1-nvhpc | NVIDIA HPC | GPU + CPU | OpenMP | ||
7.2 | scientific/qe/7.2-gnu | GNU | CPU | MPI + OpenMP | - |
scientific/qe/7.2-intel | Intel + MKL | ||||
scientific/qe/7.2-gnu+mkl | GNU + MKL | ||||
scientific/qe/7.2-nvhpc | NVIDIA HPC | GPU + CPU | OpenMP |
Službena dokumentacija
Primjeri
Kad u zaglavlju PBS skripte definirate vrijednost varijable ncpus
, u okolinu se automatski doprema ista vrijednost OMP_NUM_THREADS
varijable.
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 + 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.
#PBS -q cpu #PBS -l select=8:ncpus=4 cd ${PBS_O_WORKDIR} module load scientific/qe/7.1-gnu mpiexec -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.
#PBS -q cpu #PBS -l select=32 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.
QE će vrijednost OMP_NUM_THREADS
dobiti po definiranju ncpus
varijable u zaglavlju skripte.
U primjeru niže, aplikacija će se pokrenuti s 32 OpenMP threada.
#PBS -q cpu #PBS -l ncpus=32 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.
#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