ORCA
Description¶
ORCA is an ab initio quantum chemistry program package that contains modern electronic structure methods including density functional theory, many-body perturbation, coupled cluster, multireference methods, and semi-empirical quantum chemistry methods. Its main field of application is larger molecules, transition metal complexes, and their spectroscopic properties. ORCA is developed in the research group of Frank Neese. The free version is available only for academic use at academic institutions.
Versions¶
The following versions of ORCA are currently available:
- Runtime dependencies:
- None, required libraries and dependencies are loaded automatically with the
ORCA/6.0.0-OpenMPI-4.1.6module.
- None, required libraries and dependencies are loaded automatically with the
You can load the ORCA module with the following command:
module load ORCA/6.0.0-OpenMPI-4.1.6
- Runtime dependencies:
- None, required libraries and dependencies are loaded automatically with the
ORCA/6.0.1-OpenMPI-4.1.6module.
- None, required libraries and dependencies are loaded automatically with the
You can load the ORCA module with the following command:
module load ORCA/6.0.1-OpenMPI-4.1.6
User guide¶
You can find the software documentation and user guide here. To download the .pdf manual you should register at the community forum.
Benchmarking ORCA¶
In order to better understand how ORCA 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 MPI ranks per node.
Following command has been used to run the benchmarks:
/storage-apps/easybuild/software/ORCA/5.0.4-OpenMPI-4.1.4/orca ${benchmark}.inp > ${benchmark}.out
Info
Single-node 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 following systems:
Geometry optimization of C12 benzene dimer at the D3-PBE0/def2-TZVPP level of theory illustrating the most time-consuming part of the calculation, i.e. SCF calculations.
| Single node Performance | Cross-node Performance |
|---|---|
![]() |
![]() |
Geometry optimization of C36 fullerene at PBE0/6-31G* level of theory illustrating the most time-consuming part of the calculation, i.e. SCF calculations.
| Single node Performance | Cross-node Performance |
|---|---|
![]() |
![]() |
Geometry optimization of C36 fullerene at PBE0/def2-QZVP* level of theory illustrating the most time-consuming part of the calculation, i.e. SCF calculations.
| Single node Performance | Cross-node Performance |
|---|---|
![]() |
![]() |
Benchmarks reveal that calculation in ORCA does not scale with number of available cores. The number of MPI ranks required for the best performance is shifted based on the number of functions in the basis-set (see the best performance shift from TZVPP basis set to QZVP from 16 cores to 64 cores).
Example run script¶
Disks
For the best performance use local storage /work for single-node calculations; for cross-node calculations use a shared filesystem (e.g. /scratch) or replicate the input files to /work on every node.
MPI ranks
In case of a parallel run, use the nprocs option inside the %pal block instead of the %palN directive in the input file.
%pal
nprocs ${MPI ranks}
end
You can copy and modify this script as orca_run.sh and submit a job to a compute node with the command sbatch orca_run.sh.
#!/bin/bash
#SBATCH -J "orca_job" # name of job in SLURM
#SBATCH --account=<project> # project number
#SBATCH --partition= # selected partition (short, medium, long)
#SBATCH --ntasks= # number of mpi ranks (parallel run)
#SBATCH --time=hh:mm:ss # time limit for a job
#SBATCH -o stdout.%J.out # standard output
#SBATCH -e stderr.%J.out # error output
# module load ORCA/5.0.4-OpenMPI-4.1.4 # For ORCA 5.0.4 (no longer available)
module load ORCA/6.0.0-OpenMPI-4.1.6 # For ORCA 6.0.0
INIT_DIR=`pwd`
SCRATCH=/work/$SLURM_JOB_ID
mkdir $SCRATCH
INPUT=orca_input.inp
OUTPUT=orca_output.out
cp $INPUT $SCRATCH/$INPUT
cd $SCRATCH
# If you wish to run ORCA in parallel, you should use complete path to the binary.
# /storage-apps/easybuild/software/ORCA/5.0.4-OpenMPI-4.1.4/orca $INPUT > $INIT_DIR/$OUTPUT # For ORCA 5.0.4
mpiexec -np $SLURM_NTASKS /storage-apps/software/orca/orca_6_0_0_shared_openmpi416_avx2/orca $INPUT > $INIT_DIR/$OUTPUT # For ORCA 6.0.0





