[root@master1 InspurRun]# cat RunG16
#!/bin/bash
JOBN=$1.sbatch
if [ $# -ne 1 ];then
echo "Usage:$0 <Input.File> "
echo "e.g., $0 A.gjf ,to submit a job named A and compute cores by nprocshared in A.gjf"
exit -1
fi
echo -e "\\e[32;5;1mStep NO 1 : Create $JOBN \\e[0m"
GJF_FILE=$1
NCPU=$(grep -i "^%nprocshared" "${GJF_FILE}" | head -1 | sed -E 's/^%nprocshared=([0-9]+).*/\\1/')
if [ -z "${NCPU}" ];then
echo "错误:在${GJF_FILE}未找到 %nprocshared=数字"
exit 1
fi
echo "从${GJF_FILE}读取到CPU核心数:${NCPU}"
cat << EOF > $JOBN
#!/bin/bash
#SBATCH –job-name=$1
#SBATCH –partition=CPU
#SBATCH –nodes=1
#SBATCH –ntasks-per-node=1
#SBATCH –cpus-per-task=$NCPU
#SBATCH –error=%x.%j.err
#SBATCH –output=%x.%j.out
CURDIR=\\`pwd\\`
SLOG=\\$SLURM_JOB_NAME.\\$SLURM_JOB_ID.log
echo "SLURM JOB NAME : \\$SLURM_JOB_NAME" | tee -a \\$SLOG
echo "SLURM JOB ID : \\$SLURM_JOB_ID" | tee -a \\$SLOG
echo "SLURM JOB NODELIST: \\$SLURM_JOB_NODELIST" | tee -a \\$SLOG
echo "SLURM NPROCS : \\$SLURM_NPROCS" | tee -a \\$SLOG
echo "Work DIR is : \\$CURDIR" | tee -a \\$SLOG
echo " " | tee -a \\$SLOG
ulimit -s unlimited
ulimit -l unlimited
ulimit -a | tee -a \\$SLOG
NODES=\\`scontrol show hostnames \\$SLURM_JOB_NODELIST\\`
for i in \\$NODES
do
echo "\\$i:\\$SLURM_NTASKS_PER_NODE" >> \\$CURDIR/\\$SLURM_JOB_NAME.\\$SLURM_JOB_ID.nodelist
done
echo "process will start at : " | tee -a \\$SLOG
date | tee -a \\$SLOG
echo "++++++++++++++++++++++++++++++++++++++++" | tee -a \\$SLOG
export GAUSSIAN_ROOT=/home/software/g16
export g16root=/home/software/g16
export GAUSS_EXEDIR=\\$g16root
export PATH=\\${GAUSSIAN_ROOT}:\\$PATH
export GAUSS_SCRDIR=/tmp/\\$SLURM_JOB_ID/$1
mkdir -p \\${GAUSS_SCRDIR}
export OMP_NUM_THREADS=\\${SLURM_CPUS_PER_TASK}
export OMP_PROC_BIND=close
g16 $1
rm -rf \\${GAUSS_SCRDIR}
echo "process end at : " | tee -a \\$SLOG
date | tee -a \\$SLOG
rm -rf \\$CURDIR/\\$SLURM_JOB_NAME.\\$SLURM_JOB_ID.nodelist
echo "++++++++++++++++++++++++++++++++++++++++" | tee -a \\$SLOG
echo "processs will sleep 10s" | tee -a \\$SLOG
sleep 10 | tee -a \\$SLOG
EOF
###Run ENV CHECK LOG
##echo "++++++++++++++++++++++++++++++++++++++++" | tee -a \\$SLOG
##echo "ENV CHECK LOG +++++++++++++++++++++++++" | tee -a \\$SLOG
##export | tee -a \\$SLOG
sleep 0.5
echo -e "\\e[32mDone\\e[0m"
echo -e "\\e[32;5;1mStep NO 2 : sbatch $JOBN \\e[0m"
sbatch $JOBN
sleep 0.1
echo -e "\\e[32mDone\\e[0m"
echo -e "\\e[32;5;1mNow Wait For queue\\e[0m"
sleep 1.5
squeue
[root@master1 InspurRun]#






