TurboMole ist ein Programmpaket für ab-inito-Elektronenstrukturrechnungen. Aktuell auf unserem HPC System ist zur Zeit die Version 6.5.
- Offizielle Webseite: http://www.turbomole.com
- Manual: www.turbomole-gmbh.com/manuals/version_6_5/Documentation_html
Job Script Template (Shared Memory / OMP)
Codeblock | ||||||
---|---|---|---|---|---|---|
| ||||||
#!/bin/bash
#PBS -l select=1:ncpus=###CORES###:mem=32gb
#PBS -l place=group=###GROUPING###
#PBS -l walltime=999:00:00
#PBS -r n
#PBS -N ###JOB NAME###
#PBS -A ###myJAM PROJECT###
export LOGFILE=$PBS_O_WORKDIR/$PBS_JOBNAME"."$PBS_JOBID".log"
#make unique scratch directory on GPFS filesystem
SCRATCHDIR=/scratch_gs/$USER/$PBS_JOBID
mkdir -p "$SCRATCHDIR"
cd $PBS_O_WORKDIR
echo "$PBS_JOBID ($PBS_JOBNAME) @ `hostname` at `date` in "$RUNDIR" START" > $LOGFILE
echo "`date +"%d.%m.%Y-%T"`" >> $LOGFILE
#load Gaussian Environment and set scratch directory
module load TurboMole/6.5
export TURBOTMPDIR=$SCRATCHDIR
#copy input files to scratch directory
cp -r $PBS_O_WORKDIR/* $SCRATCHDIR/.
cd $SCRATCHDIR
rm $PBS_JOBNAME"."$PBS_JOBID".log"
#set memory affinity (see below)
export KMP_AFFINITY="verbose,explicit,compact"
#some output for debugging
CPUSET=/dev/cpuset/PBSPro/$PBS_JOBID
CPUSET_CPUS=`cat $CPUSET/cpus`
CPUSET_MEMS=`cat $CPUSET/mems`
echo >> $LOGFILE
echo "GLOBAL PARAMETERS" >> $LOGFILE
echo "---------------------------" >> $LOGFILE
echo "Node : "`hostname` >> $LOGFILE
echo "RunDir : "$PBS_O_WORKDIR >> $LOGFILE
echo "TurboBins : "$TURBOBINS >> $LOGFILE
echo "ScratchDir: "$SCRATCHDIR >> $LOGFILE
echo "# CPUs : "$NCPUS >> $LOGFILE
echo " \`-CPUSet: "$CPUSET_CPUS >> $LOGFILE
echo " \`-MEMs : "$CPUSET_MEMS >> $LOGFILE
echo "# Threads : "$OMP_NUM_THREADS >> $LOGFILE
echo "KMP_AFFINITY = "$KMP_AFFINITY >> $LOGFILE
echo >> $LOGFILE
echo "STARTING TURBOMOLE..." >> $LOGFILE
echo "---------------------------" >> $LOGFILE
#INSERT TURBOMOLE CALLS HERE, e.g.
# actual -r 2>&1 >> $LOGFILE
# dscf_omp 2>&1 >> $LOGFILE
# or whatever
# copy back results to home directory
cp -r $SCRATCHDIR/* $PBS_O_WORKDIR/.
cd $PBS_O_WORKDIR
#print the last known statistics of the job (memory usage, cpu time, etc...)
echo >> $LOGFILE
qstat -f $PBS_JOBID >> $LOGFILE
echo "$PBS_JOBID ($PBS_JOBNAME) @ `hostname` at `date` in "$RUNDIR" END" >> $LOGFILE
echo "`date +"%d.%m.%Y-%T"`" >> $LOGFILE |
Zur Bedeutung und Verwendung der Environment-Variable KMP_AFFINITY siehe: Thread Affinity Interface (Intel)