Springe direkt zu Inhalt

Molpro

Molpro ist eine Sammlung von ab-initio-Programmen für die Berechnung molekularer Elektronenstrukturen.

OpenMP

Teile des Molpro-Codes können von OpenMP als Parallelisierungsmechanismus profitieren, obwohl in der Molpro-Dokumentation davon abgeraten wird.

Für den Fall, dass man doch noch OpenMP verwenden will, zeigt folgendes Skript, wie der Job konfiguriert werden muss.

#!/bin/bash
#SBATCH --job-name=molpro_openmp
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem-per-cpu=8000
#SBATCH --nodes=1-1
#SBATCH --partition=main
#SBATCH --mail-type=end
#SBATCH --qos=standard
#SBATCH --time=7-00:00:00

export INPUT=example.inp

module purge
module add Molpro/mpp-2019.1.0.linux_x86_64_openmp
module add NBO

export NBOEXE=${EBNBOROOT}/bin/nbo7.i8.exe

export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}

export INTDIR=/localscratch/${USER}/molpro/int.${SLURM_JOBID}
mkdir -p ${INTDIR}

export WFUDIR=/localscratch/${USER}/molpro/wfu.${SLURM_JOBID}
mkdir -p ${WFUDIR}

export SCRATCHDIR=/localscratch/${USER}/molpro/tmp.${SLURM_JOBID}
if [ -d ${SCRATCHDIR} ]; then
  echo "${SCRATCHDIR} exists; double job start; exit"
  exit 1
fi
mkdir -p ${SCRATCHDIR}

export PROJECT=`pwd`
cd ${PROJECT}

molpro -n ${SLURM_CPUS_PER_TASK} -d ${SCRATCHDIR} -I${INTDIR} -W${WFUDIR} ${PROJECT}/${INPUT}

## Clean up
if [ -s ${SCRATCHDIR} ]; then
  echo "Data left in ${SCRATCHDIR}; Please remove it manually!"
else
  rmdir ${SCRATCHDIR}
fi

Schlagwörter