exciting
Description
exciting
is an ab initio code that implements density-functional theory (DFT), capable of reaching the precision of micro Hartree. As its name suggests, exciting
has a strong focus on excited-state properties. Among its features are:
G0W0 approximation;
Solution to the Bethe-Salpeter equation (BSE), to compute optical properties;
Time-dependent DFT (TDDFT) in both frequency and time domains;
Density-functional perturbation theory for lattice vibrations.
exciting
is an open-source code, released under the GPL license.
More information is found on the official website: https://exciting-code.org/
Modules
exciting
is currently available only on Lise. The standard species files deployed with exciting
are located in $EXCITING_SPECIES
. If you wish to use a different set, please refer to the manual.
exciting | Module file | Requirement | Compute Partitions | Features | CPU/GPU |
---|---|---|---|---|---|
fluorine |
|
| CentOS 7 | MPI, OpenMP, MKL (including FFTW) | / |
neon-20 |
|
| CentOS 7 | MPI, OpenMP, MKL (including FFTW) | / |
neon-21 |
|
| CentOS 7 | MPI, OpenMP, MKL (including FFTW) | / |
neon-21 |
|
| CPU CLX - Rocky Linux 9 | MPI, OpenMP, MKL (including FFTW) | / |
neon-21 |
|
| CPU Genoa - Rocky Linux 9 | MPI, OpenMP, MKL (including FFTW) | / |
sodium-alpha |
|
| CPU Genoa - Rocky Linux 9 | MPI, OpenMP, MKL (supporting ScaLAPACK) | / |
sodium-alpha |
|
| CPU Genoa - Rocky Linux 9 | MPI, OpenMP, AOCL (supporting ScaLAPACK) | / |
N.B.: The sodium-alpha version is a pre-release and should therefore be used with caution. Not all unit tests and integration tests (in the test suite) are currently passing.
Example Jobscripts
For compute nodes - CPU CLX - Rocky Linux 9
#!/bin/bash
#SBATCH --time 12:00:00
#SBATCH --partition=cpu-clx
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=24
#SBATCH --cpus-per-task=4
#SBATCH --job-name=exciting
# Load exciting and the required modules
# Check the table above to find which module to load, depending on the version to be used
module load impi/2021.15
module load exciting/011-sodium-alpha
# Set the number of OpenMP threads as given by the SLURM parameter "cpus-per-task"
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}
# Adjust the maximum stack size of OpenMP threads
export OMP_STACKSIZE=512m
# Do not use the CPU binding provided by slurm
export SLURM_CPU_BIND=none
# Binding OpenMP threads
export OMP_PLACES=cores
export OMP_PROC_BIND=close
# Binding MPI tasks
export I_MPI_PIN=yes
export I_MPI_PIN_DOMAIN=omp
export I_MPI_PIN_CELL=core
# Important: Do not use srun when SLURM_CPU_BIND=none in combination with the pinning settings defined above
mpirun exciting
For compute nodes - CPU Genoa - Rocky Linux 9
#!/bin/bash
#SBATCH --time 12:00:00
#SBATCH --partition=cpu-genoa
#SBATCH --nodes=3
#SBATCH --ntasks-per-node=12
#SBATCH --cpus-per-task=16
#SBATCH --job-name=exciting
# Load exciting and the required modules
# Check the table above to find which module to load, depending on the version to be used
module load openmpi/gcc/5.0.3
module load exciting/011-sodium-alpha
# Set the number of OpenMP threads as given by the SLURM parameter "cpus-per-task"
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}
# Adjust the maximum stack size of OpenMP threads
export OMP_STACKSIZE=512m
# Do not use the CPU binding provided by slurm
export SLURM_CPU_BIND=none
# Binding OpenMP threads
export OMP_PLACES=cores
export OMP_PROC_BIND=close
# for unbuffered I/O, uncomment the following line
# export GFORTRAN_UNBUFFERED_ALL=1
# Do not use srun combined with export SLURM_CPU_BIND=none
# Important: here we are using mpirun to start the MPI process. The pinning is performed according to the following line
mpirun --bind-to core --map-by ppr:${SLURM_NTASKS_PER_NODE}:node:pe=${OMP_NUM_THREADS} exciting