ReSpect
Description¶
ReSpect is a computer simulation program for relativistic calculations of spectroscopic properties of atoms and molecules combining fully relativistic (four-component) Dirac approach with all-electron Kohn-Sham density functional theory. The program also provides in-built all-electron basis sets of Gaussian-Type Orbitals (GTOs) suitable for relativistic calculations of elements across the periodic table (Z=1-118).
Versions¶
Following versions of ReSpect package are currently available:
- Runtime dependencies:
You can load selected version (also with runtime dependencies) as a one module by following command:
module load ReSpect/5.2.0
User guide¶
Software documentation and user guide can be found on the official ReSpect website.
Benchmarking ReSpect¶
In order to better understand how ReSpect utilises the available hardware on Devana and how to get good performance we can examine the effect on benchmark performance of the choice of the number of OMP threads. Since the ReSpect comes as precompiled binaries without MPI support, its performance deteriorates when utilizing more than MPI rank. Thus the only performance gain can be achieved with an increased number of utilized OMP threads.
Following command has been used to run the benchmarks:
/storage-apps/ReSpect-5.2.0/respect --nt=$SLURM_CPUS_PER_TASK --scf --inp=$trajectory --scratch=$work_dir
Info
Benchmarks have been run on local /work/ storage native to each compute node, which are generally faster than shared storage hosting /home/ and /scratch/ directories.
Benchmarks have been made on C12 PBE0/ucc-pvtz benzene dimer and C36 PBE0/ucc-pvtz fullerene:
C12 PBE0/ucc-pvtz | C36 PBE0/ucc-pvtz |
---|---|
Numerical values for the benchmark for 1 and 4 MPI ranks are as follows:
MPI/OMP | 1 | 2 | 4 | 8 | 16 | 32 | 64 |
---|---|---|---|---|---|---|---|
1 | 56029 | 28718 | 14934 | 7971 | 4484 | 2340 | 1266 |
4 | 115028 | 116937 | 28467 | 14475 | 7500 |
Numerical values for the benchmark for 1 and 4 MPI ranks are as follows:
MPI/OMP | 1 | 2 | 4 | 8 | 16 | 32 | 64 |
---|---|---|---|---|---|---|---|
1 | 2253 | 1138 | 573 | 430 | 230 | 106 | 62 |
4 | 9004 | 4564 | 2316 | 1179 | 317 |
Info
Running ReSpect on multiple nodes is not possible due to missing MPI parallelization.
Example run script¶
You can copy and modify this script to respect_run.sh and submit job to a compute node by command 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-node= # 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/$USER/ReSpect/$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=C36_respect --scratch=$SCRATCH