[专题]calypso批量提交lsf任务脚本[专题]calypso批量提交lsf任务脚本
calypso批量提交lsf任务脚本
集群环境:lsf,vasp,calypso
使用说明:需要在脚本中设置四个变量StrTotal:样本数目 GenTotal:计算多少代 ChkTimeInterval:检测优化任务是否执行完成的时间间隔(以分钟为单位,任务所需时间比较长时,设置大一些比如60)
如有问题或建议,请联系:xiejq@bcc.ac.cn qq:820478367 北京市计算中心
下面是脚本代码:
#!/bin/bash
#################...
[专题]calypso批量提交lsf任务脚本
calypso批量提交lsf任务脚本
集群环境:lsf,vasp,calypso
:需要在脚本中设置四个变量StrTotal:样本数目 GenTotal:计算多少代 ChkTimeInterval:检测优化任务是否执行完成的时间间隔(以分钟为单位,任务所需时间比较长时,设置大一些比如60)
如有问题或建议,请联系:xiejq@bcc.ac.cn qq:820478367 北京市计算中心
下面是脚本代码:
#!/bin/bash
################################################
# any question or suggestion , please contact to
# email: xiejq@bcc.ac.cn
# qq: 820478367
#################################################
rm job_log
./calypso.x
StrTotal=3
GenTotal=3
LsfName=cluster.lsf
##measure in minutes
ChkTimeInterval=1
i=1
j=1
StrTotal=$((StrTotal+1))
GenTotal=$((GenTotal+1))
ChkTimeInterval=$((ChkTimeInterval*60))
PrecisionFlag=0
while [ $i -lt $StrTotal ] do
mkdir $i
cp vasp KPOINTS POTCAR $i
cp $LsfName $i"/"$LsfName$i
i=$((i+1))
done
while [ $j -lt $GenTotal ] do
####################sub jobs##############################
if [ $PrecisionFlag -eq 0 ]
then
echo "Generation "$j" INCAR_1 computation begin" >>
job_log
else
echo "Generation "$j" INCAR_2 computation begin" >>
job_log
fi
i=1
while [ $i -lt $StrTotal ]
do
if [ $PrecisionFlag -eq 0 ]
then
cp INCAR_1 $i"/INCAR"
cp "POSCAR_"$i $i"/POSCAR"
else
cp INCAR_2 $i"/INCAR"
fi
cd $i
bsub $LsfName$i 2>&1 |sed -n '3,1p' | sed 's/>.*//g'
| sed 's/^.*/g' >> ../job_log
cd ..
i=$((i+1))
done
if [ $PrecisionFlag -eq 0 ]
then
echo "Generation "$j" INCAR_1 computing......" >> job_log
else
echo "Generation "$j" INCAR_2 computing......" >> job_log
fi
#######check status of jobs every once in a while########
AllDoneFlag=0
while [ $AllDoneFlag -lt 1 ]
do
sleep $ChkTimeInterval
if [ $PrecisionFlag -eq 0 ]
then
LineNum=`sed -n /"Generation "$j" INCAR_1
computation begin"/= job_log`
else
LineNum=`sed -n /"Generation "$j" INCAR_2
computation begin"/= job_log`
fi
LineTotal=$((LineNum+StrTotal))
LineNum=$((LineNum+1))
#echo $LineTotal $LineNum >> job_log
AllDoneFlag=1
while [ $LineNum -lt $LineTotal ]
do
num=`sed -n ''$LineNum',1p' job_log`
AllDoneFlag=`bjobs $num|awk '{if($1=='$num') print
$0}'|awk '{if($3=="RUN"||$3=="PEND") print 0} {if($3=="DONE")
print 1} {if($3=="EXIT") print 2}'`
#echo $LineNum >> job_log
#echo $AllDoneFlag $num >>job_log
if [ $AllDoneFlag -eq 0 ]
then
break
elif [ $AllDoneFlag -eq 2 ]
then
sed '$d' job_log
if [ $PrecisionFlag -eq 0 ]
then
echo "error in Generation "$j" INCAR_1
computation" >> job_log
else
echo "error in Generation "$j" INCAR_2
computation" >> job_log
fi
exit 1
fi
LineNum=$((LineNum+1))
done
done
sed '$d' job_log
if [ $PrecisionFlag -eq 0 ]
then
echo "Generation "$j" INCAR_1 computation
done successfully" >> job_log
PrecisionFlag=1
else
echo "Generation "$j" INCAR_2 computation
done successfully" >> job_log
PrecisionFlag=0
i=1
while [ $i -lt $StrTotal ]
do
cd $i
cp OUTCAR "../OUTCAR_"$i
cp CONTCAR "../CONTCAR_"$i
cd ../
i=$((i+1))
done
./calypso.x
j=$((j+1))
fi
done
本文档为【[专题]calypso批量提交lsf任务脚本】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。