You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

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

verzijamodulprevodiocpodrškaparalelizacijauključuje thermo_pw
6.8scientific/qe/6.8-gnuGNUCPUMPI + OpenMPv1.6.0
scientific/qe/6.8-intelIntel (+ MKL)
7.0scientific/qe/7.0-gnuGNUCPUMPI + OpenMPv1.7.0
scientific/qe/7.0-intelIntel (+ MKL)
7.1scientific/qe/7.1-gnuGNUCPUMPI + OpenMPv1.7.1
scientific/qe/7.1-intelIntel (+ MKL)
scientific/qe/7.1-nvhpcNVIDIA HPCGPU + CPUOpenMP
7.2scientific/qe/7.2-gnuGNUCPUMPI + OpenMP-
scientific/qe/7.2-intelIntel (+ MKL)
scientific/qe/7.2-nvhpcNVIDIA HPCGPU + CPUOpenMP

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 -n ${MPI_NUM_PROCESSES} -d ${OMP_NUM_THREADS} --cpu-bind depth

MPI pokretač za Intel (MKL) verzije:

mpirun -np ${MPI_NUM_PROCESSES} -x ${OMP_NUM_THREADS}

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 skripta
#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.

PBS skripta
#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.

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.

Bash skripta
#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.

PBS skripta
#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
  • No labels