ReSpect¶
Popis¶
ReSpect je program na počítačové simulácie pre relativistické výpočty spektroskopických vlastností atómov a molekúl, ktorý kombinuje plne relativistický (štyri-komponentový) Diracov prístup s all-electron Kohn-Sham teóriou funkcionálu hustoty. Program okrem toho poskytuje vestavané all-electron bázy Gaussian-Type Orbitals (GTOs) vhodné pre relativistické výpočty prvkov cez celú periodickú tabuľku (Z=1-118).
Oficiálna dokumentácia¶
Dokumentáciu softvéru a používateľskú príručku nájdete na oficiálnom webe ReSpect.
Dostupné verzie¶
V súčasnosti sú dostupné tieto verzie balíka ReSpect:
- Závislosti pri behu:
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
ReSpect/5.2.0.
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
Modul ReSpect môžete načítať pomocou nasledujúceho príkazu:
module load ReSpect/5.2.0
ReSpect Benchmark¶
Aby sme lepšie pochopili, ako ReSpect využíva dostupné hardvérové vybavenie na Devane a ako dosiahnuť dobrý výkon, môžeme preskúmať vplyv voľby počtu OMP vlákien na výkon benchmarku. Keďže ReSpect je dodávaný ako prekompilovaný binárny súbor bez podpory MPI, jeho výkon sa zhoršuje pri použití viacerých MPI rankov. Výkonový prínos sa preto dá dosiahnuť len zvýšením počtu využívaných OMP vlákien.
Na spustenie benchmarkov sa použil nasledujúci príkaz:
/storage-apps/ReSpect-5.2.0/respect --nt=$SLURM_CPUS_PER_TASK --scf --inp=$trajectory --scratch=$work_dir
Info
Jednouzlové benchmarky boli spustené na lokálnom NVMe disku /work/, ktorý je integrovaný do každého výpočtového uzla a je zvyčajne rýchlejší než zdieľané súborové systémy /home/ a /scratch/.
Benchmarky boli vykonané na C12 PBE0/ucc-pvtz diméri benzénu a C36 PBE0/ucc-pvtz fullérene:
| C12 PBE0/ucc-pvtz | C36 PBE0/ucc-pvtz |
|---|---|
![]() |
![]() |
C12.inp
#1c DFT calculation of C12 molecule, employing the
#scalar-relativistic DKH2 Hamiltonian and PBE0 functional
scf:
method: ks/pbe0
geometry:
C -0.062619375461 0.000000000000 -2.001649629456
C -1.218688068356 -0.354690359108 -1.303485629456
C 1.093449317434 0.354690359108 -1.303485629456
H -2.118113174883 -0.630640582469 -1.846658629456
H 1.992874423961 0.630640582469 -1.846658629456
C -1.218688068356 -0.354690359108 0.092844370544
C 1.093449317434 0.354690359108 0.092844370544
H -2.118113174883 -0.630640582469 0.636017370544
H 1.992874423961 0.630640582469 0.636017370544
C -0.062619375461 0.000000000000 0.791008370544
H -0.062619375461 0.000000000000 1.877355370544
H -0.062619375461 0.000000000000 -3.087996629456
C -0.264430744069 -3.762741758810 -2.205619137167
C -1.420499436964 -4.117432117918 -1.507455137167
C 0.891637948826 -3.408051399702 -1.507455137167
H -2.319924543491 -4.393382341279 -2.050628137167
H 1.791063055353 -3.132101176340 -2.050628137167
C -1.420499436964 -4.117432117918 -0.111125137167
C 0.891637948826 -3.408051399702 -0.111125137167
H -2.319924543491 -4.393382341279 0.432047862833
H 1.791063055353 -3.132101176340 0.432047862833
C -0.264430744069 -3.762741758810 0.587038862833
H -0.264430744069 -3.762741758810 1.673385862833
H -0.264430744069 -3.762741758810 -3.291966137167
basis:
C: ucc-pvtz
H: ucc-pvtz
charge: 0
multiplicity: 1
maxiterations: 500000
convergence: 1.0e-6
Číselné hodnoty pre benchmark pre 1 a 4 MPI ranky sú nasledovné:
| MPI/OMP | 1 | 2 | 4 | 8 | 16 | 32 | 64 |
|---|---|---|---|---|---|---|---|
| 1 | 56029 | 28718 | 14934 | 7971 | 4484 | 2340 | 1266 |
| 4 | 115028 | 116937 | 28467 | 14475 | 7500 |
C36.inp
#1c DFT calculation of C34 molecule, employing the
#scalar-relativistic DKH2 Hamiltonian and PBE0 functional
scf:
method: ks/pbe0
geometry:
C -1.52700 1.76820 1.10880
C -2.36070 0.72480 1.26750
C -1.67820 -2.27640 0.13880
C -2.49780 -1.40820 0.80110
C -1.83200 -0.49960 1.65300
C -0.21160 1.77830 1.49380
C 1.81570 0.46710 1.62050
C 0.41900 0.58540 1.96880
C -0.43190 -0.62020 1.97940
C 0.19450 -1.81880 1.50120
C -0.43300 -2.60020 0.52680
C 1.65110 2.23630 0.12250
C 0.41060 2.54900 0.51060
C 2.48860 1.37490 0.76110
C 2.35930 -0.75560 1.27290
C 1.51570 -1.79100 1.12690
C -3.17430 -0.63550 -0.13640
C -1.52890 -1.78030 -1.13340
C -2.35450 -0.73210 -1.24830
C -3.18670 0.66160 0.15930
C -2.52400 1.42430 -0.78300
C -0.45510 2.61090 -0.56090
C -1.70130 2.31610 -0.15420
C 0.44340 -2.60890 -0.54250
C -0.20120 -1.80680 -1.49020
C 0.42820 -0.58870 -1.92240
C -0.42340 0.62590 -1.94160
C -1.82920 0.50110 -1.60990
C 0.22010 1.84690 -1.52860
C 1.69120 -2.30340 -0.14430
C 2.51320 -1.39870 -0.74120
C 1.83550 -0.46390 -1.58540
C 3.20040 -0.63110 0.17580
C 3.20210 0.65420 -0.17840
C 2.40480 0.77950 -1.29880
C 1.55490 1.81710 -1.18780
basis:
C: ucc-pvtz
charge: 0
multiplicity: 1
maxiterations: 500000
convergence: 1.0e-6
Číselné hodnoty pre benchmark pre 1 a 4 MPI ranky sú nasledovné:
| MPI/OMP | 1 | 2 | 4 | 8 | 16 | 32 | 64 |
|---|---|---|---|---|---|---|---|
| 1 | 2253 | 1138 | 573 | 430 | 230 | 106 | 62 |
| 4 | 9004 | 4564 | 2316 | 1179 | 317 |
Info
Spúšťanie ReSpect na viacerých uzloch nie je možné kvôli chýbajúcej MPI paralelizácii.
Príklad spúšťacieho skriptu¶
Tento skript si môžete skopírovať a upraviť ako respect_run.sh a úlohu odoslať na výpočtový uzol pomocou príkazu sbatch respect_run.sh.
#!/bin/bash
#SBATCH -J "respect_job" # name of job in SLURM
#SBATCH --account=<project> # project number
#SBATCH --partition= # selected partition (short, medium, long)
#SBATCH --ntasks=1 # number of mpi ranks
#SBATCH --cpus-per-task= # number of omp threads
#SBATCH --time=hh:mm:ss # time limit for a job
#SBATCH -o stdout.%J.out # standard output
#SBATCH -e stderr.%J.out # error output
# Load module
module load ReSpect/5.2.0
# Input
INPUT=
# Define locations
INIT_DIR=`pwd`
SCRATCH=/scratch/$SLURM_JOB_ACCOUNT/$SLURM_JOB_ID
# Create working directory and copy input files
mkdir -p $SCRATCH
cp $INIT_DIR/$INPUT.inp $SCRATCH/.
cd $SCRATCH
# Run ReSpect
/storage-apps/ReSpect-5.2.0/respect --nt=$SLURM_CPUS_PER_TASK --scf --inp=$INPUT --scratch=$SCRATCH

