查看LSF計算節點列表bhosts
# bhosts HOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSV fat01 ok - 16 0 0 0 0 0 fat02 ok - 16 0 0 0 0 0 fat03 ok - 16 0 0 0 0 0 fat04 ok - 16 0 0 0 0 0 fat05 ok - 16 0 0 0 0 0 fat06 ok - 16 0 0 0 0 0 fat07 ok - 16 0 0 0 0 0 fat08 ok - 16 0 0 0 0 0 fat09 ok - 16 0 0 0 0 0 fat10 ok - 16 0 0 0 0 0 ......
查看LSF隊列bqueues
查看所有隊列的整體信息:
# bqueues QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP cpu 40 Open:Active - - - - 2072 0 2072 0 fat 40 Open:Active - - - - 0 0 0 0 gpu 40 Open:Active - - - - 288 0 288 0 mic 40 Open:Active - - - - 0 0 0 0 cpu-fat 40 Open:Active - - - - 16 0 16 0
查看某個隊列的信息:
# bqueues fat QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP fat 40 Open:Active - - - - 0 0 0 0
查看計算節點負載lsload
查看整體負載:
# lsload HOST_NAME status r15s r1m r15m ut pg ls it tmp swp mem node011 ok 0.0 0.3 0.4 0% 0.0 0 49024 193G 62G 61G node039 ok 0.0 0.6 0.5 0% 0.0 0 49024 194G 62G 61G node041 ok 0.0 0.0 0.0 0% 0.0 0 49024 194G 62G 61G node050 ok 0.0 0.0 0.0 0% 0.0 0 49024 194G 62G 60G node064 ok 0.0 0.7 0.6 0% 0.0 0 49024 194G 62G 61G node077 ok 0.0 0.7 0.5 0% 0.0 0 49024 194G 62G 61G .....
查看某個節點的負載:
# lsload node001 HOST_NAME status r15s r1m r15m ut pg ls it tmp swp mem node001 ok 0.3 0.1 0.1 1% 0.0 0 332 152G 62G 61G
使用LSF提交作業bsub
手動提交作業
LSF使用bsub提交作業。bsub命令的格式是:
bsub -n Z -q QUEUENAME -i INPUTFILE -o OUTPUTFILE COMMAND
其中:Z
提交作業需要的線程數,-q
指定作業提交的隊列。如果不添加-q
選項,系統將把作業提交到默認的作業隊列。 INPUTFILE
表示程序需要讀入的文件名,OUTPUTFILE
表示輸出文件名,作業提交后的輸出到標准輸出信息將會保存在這個文件中。
對於串行作業,COMMAND
可以直接使用您的程序名。 例如,將串行程序mytest
的通過LSF提交:
bsub -n 1 -q q_default -o mytest.out ./mytest
對於MPI並行作業,COMMAND
的格式為-a mpich_gm mpirun.lsf PROG_NAME
。 例如,將並行程序mytest
,通過LSF提交,使用16個線程運行這個作業:
bsub -n 16 -q q_default -o mytest.out -a mpich_gm mpirun.lsf ./mytest
交互式批量提交
使用bsub
還可以啟動一個交互式的shell環境,一次提交多個運行參數相同的並行作業。例如下面的操作:
# bsub bsub> -n 16 bsub> -q q_default bsub> -o output.txt bsub> COMMAND1 bsub> COMMAND2 bsub> COMMAND3
等價於:
bsub -n 16 -q q_default -o output.txt COMMAND1 bsub -n 16 -q q_default -o output.txt COMMAND2 bsub -n 16 -q q_default -o output.txt COMMAND3
編寫LSF作業控制腳本
#BSUB -n 16 #BSUB -q q_default #BSUB -o output.txt -a mpich_gm mpirun.lsf ./mytest
bsub
還接受來自標准輸入的作業說明。 因此,我們可以編寫LSF腳本提交作業。 bsub腳本簡單易寫,上面一段代碼是名為bsub.script
的完整例子,將bsub.script
通過輸入重定向,提交給LSF:
bsub < bsub.script
這等價於:
bsub -n 16 -q q_default -o output.txt -a mpich_gm mpirun.lsf ./mytest
一個功能更完整的LSF作業控制腳本
#BSUB -J HELLO_MPI #BSUB -o job.out #BSUB -e job.err #BSUB -n 256 source /lustre/utility/intel/composer_xe_2014.3.163/bin/compilervars.sh intel64 source /lustre/utility/intel/mkl/bin/intel64/mklvars_intel64.sh source /lustre/utility/intel/impi/4.1.1.036/bin64/mpivars.sh MPIRUN=`which mpirun` EXE="./mpihello" CURDIR=$PWD cd $CURDIR rm -f nodelist nodes >& /dev/null touch nodelist touch nodes NP=0 for host in `echo $LSB_MCPU_HOSTS |sed -e 's/ /:/g'| sed 's/:n/\nn/g'` do echo $host >> nodelist echo $host | cut -d ":" -f1 >> nodes nn=`echo $host | cut -d ":" -f2` NP=`echo $NP+$nn | bc` done
其他作業管理操作
查看作業狀態bjobs
檢查已提交的作業的運行狀態:
bjobs
以寬格式來顯示作業運行狀態:
bjobs -w
顯示所有作業:
bjobs -a
顯示正在運行的作業:
bjobs -r
顯示等待運行(pending)的作業和等待的原因:
bjobs -p
顯示已經掛起(suspending)的作業和掛起的原因:
bjobs -s
顯示JOBID
這個作業的所有信息:
bjobs -l JOBID
終止作業bkill
終止不需要的作業:
bkill
終止JOBID
這個作業:
bkill JOBID
直接將作業JOBID
從LSF中移除,而不等待該作業的進程在操作系統中終結:
bikill JOBID
監視作業輸出bpeek
當作業正在運行時,顯示它的標准輸出,監視作業運行:
bpeek
查看JOBID
的標准輸出:
bpeek JOBID
作業歷史信息bhist
顯示作業的歷史情況:
bhist
顯示JOBID
作業的歷史情況:
bhist JOBID