Preskočiť na obsah

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.

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
Respect_C12 Respect C36
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
Created by: Marek Štekláč, Marek Štekláč