下篇文章:芯片设计- RTL 数字逻辑设计入门 1- Linux 环境下 VCS与 Verdi 联合仿真
1.1 LSF 简介
LSF(Load Sharing Facility)是IBM旗下的一款分布式集群管理系统软件,负责计算资源的管理和批处理作业的调度。它给用户提供统一的集群资源访问接口,让用户透明地访问整个集群资源。同时提供了丰富的功能和可定制的策略。LSF 具有良好的可伸缩性和高可用性,支持几乎所有的主流操作系统。它通常是高性能计算环境中不可或缺的基础软件。作用上与PBS一样,使用方法略有不同。
LSF用来调度、监视、分析联网计算机的负载。通过集中监控和调用,充分共享计算机的CPU、内存、磁盘、license等资源,一组安装了 LSF 软件的计算机组成了 一个cluster。cluster内的资源统一监控和调度。
bsub 是调用 lsf 的命令。
1.1.1 LSF 常用命令
利用 bhosts
命令可查看当前各节点的空闲情况
利用 bqueues
可以查看现有队列信息
利用 bjobs
可以查看作业的运行情况,bjobs | wc
统计总的 job 数
bjobs -r #显示正在运行的作业
bjobs -p #显示等待运行(pending)的作业和等待的原因
bjobs -s #显显示已经挂起(suspending)的作业和挂起的原因
bjobs -l JOBID #显示JOBID这个作业的所有信息
利用 bjobs -u name
可以查看用户下的具体任务
利用 bkill
命令可以终止某个运行中或排队中的作业,
[ServerA@hmli] bkill 79726
Job <79722 > is being terminated
bhist -a
: 查看已经运行完毕的作业信息
利用 busers
可以查看用户信息
bsub
提交 lsf 作业
bhist
查看历史
bqueues
命令,可以查看队列情况
1.1.2 bsub 命令
LSF 使用 bsub 提交作业,命令格式:
bsub [options] command [argument]
- -q 选择队列;
- -i 指定输入文件;
- -I 交互模式,此时终端不能输入;
- -o 指定输出文件,作业提交后标准输出的信息会保存到这个文件中;
- -e 指定输出文件,作业提交后标准错误输出的信息会保存到这个文件中;
- -n 指定作业需要的CPU核;
- -J 作业的名字;
- -w ‘
dependecy_expression
’ , 提交作业前,指定操作。操作有:- done;
- ended, 如
–e “ended(aaaa*)”
, 表示作业名中有“aaaa”
的作业完成之后才可以提交作业;
- -W 限定作业运行时间;
- -K 提交作业,并且等待作业完成。当提交作业后,终端打印
“waiting for dispath”
。当作业完成后,终端打印“job is finished”
。作业没有完成,不能提交新的作业; - -J bsub 提交的作业,有一个
JOBID
和JOB_NAME
。JOBID
不可设置,可以指定JOB_NAME
。
1.1.3 常用提交作业的命令
bsub -n x -q queuename -R rusage[mem=10240] -i inputfile -o outputfile COMMAND
-n x
代表了提交作业需要的线程数;-q
指定作业提交到的队列,如果不采用-q
选项,系统把作业提交到默认作业队列;-R rusage
指定任务需要10G内存;inputfile
代表程序需要读入的文件名;outputfile
代表一个文件,作业提交后标准输出信息将会保存到这个文件;COMMAND
则是用户要运行的程序,使用8个cpu运行任务。
对于串行作业,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
通过 busb
命令,将编译可执行的 a.out
文件 提交 6
次作业:
-J 参数,执行作业的名字;
-o 参数指定 lsf 执行该可执行文件的输出,保存到指定文件。
最后要等待前面 6 个作业完成,才执行第7个作业,只是打印信息,可以通过以下 bsub 命令:
bsub –I –w “ended(aaaaaaaaaa*)” echo “a.out finished”
- -I 参数,表示和终端交互,后续提交的任务要等这个任务完成后,才可以提交;
- -w
”ended..”
指定该作业要等作业名中有aaaaaaaa
的作业都完成后,才可以提交。
执行的过程中,通过 bjobs
命令,可以查看作业情况。对于最后一个任务,状态是 PEND
的,因此要等之前的任务都完成之后,才可以执行;