General Information

Q-Chem is a general-purpose electronic structure package featuring a variety of established and new methods implemented using innovative algorithms that enable fast calculations of large systems on various computer architectures, from laptops and regular lab workstations to HPC clusters using density functional and wave-function based approaches. It offers an integrated graphical interface and input generator; a large selection of functionals and correlation methods, including methods for electronically excited states and open-shell systems; solvation models; and wave-function analysis tools.

For details to the program consult the official documentation.

License Restrictions

Q-Chem may only be used by users or groups holding a valid license. The use is restricted for the purpose under which the license was purchased.

Obtaining Access

Currently, there is a single research group at the Insitute of Physics holding an academic license. Contact the team of IT-Physik to get access if you are part of that group and don't have access yet.

Lmod Modules

Obtaining a list of available Q-Chem versions

module spider qchem

The modules will set all necessary Q-Chem related environment variables, including

VariableDefault valueDescription
QCSCRATCH/dev/shmDirectory for temporary files. Will be deleted after successfull calculations. Remaining files will be automatically deleted by Slurm at the end of a job. In order to save certain files, you need to copy them back manually before the job ends. 
QCNPROCS$SLURM_CPUS_PER_TASKNumber of OpenMP threads.

You may override these variables by redefining them after loading the module.

Running Q-Chem

General purpose Sbatch template


#!/usr/bin/env bash
#SBATCH --job-name=qchem
#SBATCH --partition=epyc
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=16
#SBATCH --cores-per-socket=16
#SBATCH --mem-per-cpu=1G
#SBATCH --time=1-0

ml purge
ml qchem

INFILE="$1"

if [[ ! -f "${INFILE}" ]]; then
    echo "File $1 does not exist!"
    exit 1
fi

JOBFILE_BASE="${INFILE%.*}"

qchem "${INFILE}" "${INFILE_BASE}.out"

Notes on parallization and performance


At the moment only SMP-parallelization of Q-Chem using the --cpus-per-task sbatch option is supported. Up to 128 CPU cores may be requested this way. MPI-support for Q-Chem has been removed from version 6.0 onward. Therefore keep the values of --ntasks and --nodes at 1 at all times.

Note on performance

We don't really recommend to use more than 64 cores for a Q-Chem calculation. Most of the time, even fewer cores are enough for small molecules (16 cores is typically a good size)! If you still do, then at least have the courtesy to run benchmarks and verfiy if the large number of cores are actually worth it!

Furthermore, we recommend to use the --cores-per-socket Sbatch option and set it equal to --cpus-per-task for optimal performance. This will ensure that all cores are on the same socket and slowdowns due to larger inter-core latencies are avoided.


Support

If you have any problems with Q-Chem please contact the team of IT-Physik (preferred) or the HPC-Servicedesk.


  • Keine Stichwörter