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
Variable | Default value | Description |
---|---|---|
QCSCRATCH | /dev/shm | Directory 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_TASK | Number 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.