===================================================== SLURM script file for Gaussian 16 ===================================================== .. code-block:: sh :caption: test :name: test333 :emphasize-lines: 2 :linenos: #!/bin/bash -l # Section for defining queueing system variables: # SLURM-section #SBATCH --job-name=watdim01 #SBATCH --output=watdim01.slurmout #SBATCH --partition=cluster8 #SBATCH --nodes=1 #SBATCH --cpus-per-task=8 #SBATCH --threads-per-core=1 #SBATCH --mem-per-cpu=2000 ###################################### # Section for defining job variables and settings: g16root="/scr1/g16_a.03_sse4" g16dir="/scr1/g16_a.03_sse4/g16" LaunchDir=$PWD; LocalRunDir=/scr1/$USER/$SLURM_JOB_ID export GAUSS_SCRDIR=$LocalRunDir; mkdir -p $GAUSS_SCRDIR export GAUSS_EXEDIR=$g16dir export GAUSS_ARCHDIR=$g16dir cat >/$LocalRunDir/$SLURM_JOB_NAME.gjf < $LaunchDir/$SLURM_JOB_NAME.log cp $GAUSS_SCRDIR/$SLURM_JOB_NAME.chk $LaunchDir/ # The following line will clean up /scr1 after finishing the job rm -rf $LocalRunDir # If your job finishes normally, delete the empty .slurmout file slurmout_check=`cat $SLURM_JOB_NAME.slurmout` if [$slurmout_check = ""]; then rm -f $SLURM_JOB_NAME.slurmout fi exit 0 .. code-block:: sh :caption: test :name: test3333 :emphasize-lines: 2 :linenos: #!/bin/bash #SBATCH -J opt-CdSe33ZnS69LHis12 #SBATCH -o %J.out #SBATCH -e %J.err #SBATCH -N 1 #SBATCH -w node01 #SBATCH -n 96 #SBATCH -t 30-12:00:00 #SBATCH -p hpc ###SBATCH --dependency=afterok:0 #======================= export OMP_THREAD_LIMIT=256 # max cpu to 256 for gaussian version <=16 b01 echo ======================= echo Submit Time is [`date`]. echo Working dir is [$SLURM_SUBMIT_DIR]. cd $SLURM_SUBMIT_DIR NPROCS=$((SLURM_NTASKS)) N_NODE=$((SLURM_JOB_NUM_NODES)) echo This job has allocated [${N_NODE}] nodes with [${NPROCS}] processors. # echo Running on host [`hostname`]. echo Running on host [$SLURM_JOB_NODELIST]. echo This jobs runs on the following processors: echo ======================= echo "**Start!!!" echo Job start Time is [`date`]. echo This job name is [$SLURM_JOB_NAME] and job id is [$SLURM_JOB_ID]. >> $SLURM_JOB_ID.out #======================= unset PATH && \ export PATH=/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/root/bin:$PATH && \ unset LD_LIBRARY_PATH JOBNAME=opt-CdSe33ZnS69LHis12 GAUSS_SCRDIR=/tmp/$SLURM_JOB_USER/$SLURM_JOB_ID if [ ! -a $GAUSS_SCRDIR ]; then echo "Scratch directory $GAUSS_SCRDIR created." mkdir -p $GAUSS_SCRDIR fi export GAUSS_SCRDIR echo "Using $GAUSS_SCRDIR for temporary Gaussian 16 files." ls -l $GAUSS_SCRDIR # for gaussian16 b01 export g16root=/data1/apps/gaussian export PATH=$PATH:$g16root/g16 export GAUSS_EXEDIR=$g16root/g16 source $g16root/g16/bsd/g16.profile # for gaussian16 c01 # export g16root=/data1/apps/gaussian-c # export PATH=$PATH:$g16root/g16 # export GAUSS_EXEDIR=$g16root/g16 # source $g16root/g16/bsd/g16.profile # cat $SLURM_JOB_NODELIST |uniq > $GAUSS_SCRDIR/working.nodes echo $SLURM_JOB_NODELIST > $GAUSS_SCRDIR/working.nodes # >> means append and > means replace echo "Gaussian16 nodes:" cat $GAUSS_SCRDIR/working.nodes export GAUSS_LFLAGS=" -mp 96 -vv -nodefile $GAUSS_SCRDIR/working.nodes" #======================= start_time=$(date +%s) #1 task_start_time=$(date +%s) #Run a Gaussian command file echo "Starting Gaussian run at" `date` time g16 < $JOBNAME.gjf > $JOBNAME.out echo "Finished Gaussian run at" `date` echo "Removing GASUU_SCRDIR:" echo "$GAUSS_SCRDIR" rm -Rf $GAUSS_SCRDIR task_duration=$(( $(date +%s) - $task_start_time )) echo "Task 1 duration: $task_duration seconds." >> $SLURM_JOB_ID.out #2 task_start_time=$(date +%s) #convert .chk to .fch # formchk ${JOBNAME}.chk formchk ${JOBNAME}.chk task_duration=$(( $(date +%s) - $task_start_time )) echo "Task 2 duration: $task_duration seconds." >> $SLURM_JOB_ID.out end_time=$(date +%s) duration=$(( $end_time - $start_time )) echo "Total duration: $duration seconds." >> $SLURM_JOB_ID.out echo Job finish Time is [`date`]. echo "**Finished!!!" echo ======================= echo " "