Preskočiť na obsah

DIRAC

Popis

Program DIRAC počíta molekulárne vlastnosti pomocou relativistických kvantovochemických metód. Pomenovaný je podľa P.A.M. Diraca, otca relativistickej teórie elektrónovej štruktúry.


Oficiálna dokumentácia

Dokumentáciu a návod pre používateľa nájdete na oficiálnej webovej stránke DIRAC.


Dostupné verzie

Aktuálne sú dostupné nasledujúce verzie DIRAC:

  • Spúšťacie závislosti:
    • Žiadne, požadované knižnice a závislosti sa načítajú automaticky spolu s modulom DIRAC/22.0-foss-2021a.

Modul DIRAC môžete načítať pomocou nasledujúceho príkazu:

module load DIRAC/22.0-foss-2021a

  • Spúšťacie závislosti:
    • Žiadne, požadované knižnice a závislosti sa načítajú automaticky spolu s modulom DIRAC/25.0-intel-2022b-int64.

Modul DIRAC môžete načítať pomocou nasledujúceho príkazu:

module load DIRAC/25.0-intel-2022b-int64

Táto verzia je zostavená s 64-bitovými celými číslami (int64), čo umožňuje alokovať väčšie množstvá pamäte.


DIRAC benchmark

Aby sme lepšie pochopili, ako DIRAC využíva dostupný hardvér na Devane a ako dosiahnuť dobrý výkon, môžeme preskúmať vplyv výberu počtu MPI rankov a OMP vlákien na uzol na výkon benchmarkov.

Na spustenie benchmarkov bol použitý nasledujúci príkaz:

    export OMP_NUM_THREADS=$ntomp
    pam-dirc --mpi=$ntmpi --ag=$mem_cpu --scratch=$dirac_dir --inp=$benchmark.inp --mol=$benchmark.mol
kde premenné ntmpi a ntomp predstavujú príslušne počty MPI rankov a OMP vlákien. Premenná mem_cpu, ktorá predstavuje maximálnu alokovateľnú pamäť na MPI rank, bola definovaná ako echo "scale=0; ($SLURM_MEM_PER_NODE / (64 / $ntomp))" | bc. Dočasný pracovný adresár dirac_dir bol nastavený na /scratch.

Benchmarky boli zmerané pre nasledujúce systémy:

pbf.mol
INTGRL
DHF energy calculation for Ba atom
dyall.v2z basis set
C   2  0           A
     82.    1
Pb      .0000000000        .0000000000       2.0575
LARGE BASIS dyall.cv2z
     9.     1
F     0.0000000000        0.0000000000       0.00
LARGE BASIS dyall.cv2z
FINISH
pbf-ccsdt-505000-cv2z.inp
**DIRAC
.TITLE
 PbF
.WAVE F
.4INDEX
**GENERAL
**INTEGRALS
.PRINT
1
*READIN
.UNCONTRACTED
**HAMILTONIAN
.X2C
*AMFI
.AMFICH
+6
**WAVE FUNCTIONS
.SCF
.RELCCSD
*SCF
.CLOSED SHELL
90
.OPEN SHELL
1
1/2
.MAXITR
200
.ERGCNV
1.0D-9 1.0D-9
.EVCCNV
5.0D-6 5.0D-6
.PRINT
1
**MOLTRA
.ACTIVE
energy -50.0 100.0 1.0
.PRINT
1
**RELCC
.NELEC
32 31
.ENERGY
.PRINT
1
*CCENER
.NTOL
9
.MAXIT
150
*END OF

SCF výpočet molekuly PbF s využitím 2-komponentného X2C Hamiltoniánu.

Výkon na jednom uzle Výkon na viacerých uzloch
DIRAC_single_node_perf DIRAC_cross_node_perf

SCF výpočet molekuly PbF s využitím 4-komponentného Dirac-Coulombovho Hamiltoniánu (DCSSSS) v spojení s GAUNT korekciou interakcie dvoch elektrónov

Výkon na jednom uzle Výkon na viacerých uzloch
DIRAC_single_node_perf DIRAC_cross_node_perf

Príklad spúšťacieho skriptu

Tento skript si môžete skopírovať a upraviť na dirac_run.sh a odoslať úlohu na výpočtový uzol príkazom sbatch dirac_run.sh.

#!/bin/bash
#SBATCH -J "dirac_job"   # name of job in SLURM
#SBATCH --account=<project> # project account
#SBATCH --partition=long # selected partition, short, medium or long
#SBATCH --nodes=1        # number of used nodes
#SBATCH --ntasks=        # number of mpi tasks (parallel run)
#SBATCH --cpus-per-task= # number of cpus per mpi task (parallel run)
#SBATCH --time=72:00:00  # time limit for a job
#SBATCH -o stdout.%J.out # standard output
#SBATCH -e stderr.%J.out # error output
#SBATCH --exclusive      # exclusive run on node

module load DIRAC/22.0-foss-2021a

INPUT=dirac.inp # input file
MOL=dirac.xyz   # xyz or mol file

export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
mkdir -p /scratch/$SLURM_JOB_ACCOUNT/$SLURM_JOB_ID
pam-dirc --mpi=$SLURM_NTASKS --inp=$INPUT --scratch=/scratch/$SLURM_JOB_ACCOUNT/$SLURM_JOB_ID --mol=$MOL
Created by: Marek Štekláč, Marek Štekláč