LSF(Load Sharing Facility)是IBM旗下的一款分布式集群管理系统软件,负责计算资源的管理和批处理作业的调度。它给用户提供统一的集群资源访问接口,让用户透明地访问整个集群资源。它通常是高性能计算环境中不可或缺的基础软件。LSF 是一种强大的工作负载管理平台,提供基于各种策略的智能调度功能,利用分布式的基础架构资源来提高整体的系统性能。用户通过 LSF可以实现集群间的负载均衡,扩展集群构架和资源,最大限度地提高集群的使用效率。
所谓集群(Cluster)就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理。当用户请求集群系统时,集群给用户的感觉就是一个单一独立的服务器,而实际上用户请求的是一组集群服务器。简单来讲,集群就是一堆服务器合作做同一件事,这些机器可能需要统一协调管理,可以分布在一个机房,也可以分布在全国全球各个地区的多个机房。只有当并发或总请求数量超过单台服务器的承受能力时,服务器集群才会体现出优势。
-q 选择作业提交的队列queue
-i 指定输入文件
-I 交互模式,此时终端不能输入
-J 指定作业名称
-n 指定作业需要的CPU核心数,LSF中一般称之为slot
-R span[hosts=1] 指定作业只能在单个节点运行,不能跨节点(跨节点作业需要MPI支持,生物中比较少),-R 可以使得作业在需要满足某种条件的节点上运行
-o 作业标准输出,%J为作业ID,即此处的作业输出文件为 jobid.out
-e 作业错误输出,%J为作业ID,即此处的作业输出文件为 jobid.err
-M 内存控制参数,作业占用的内存超过其指定值时,作业会被系统杀掉。如 -M 20GB -R "rusage[mem=20GB]" 申请20GB的内存,且其内存使用量不能超过20G;
-m 指定作业运行节点;
-W hh:mm 设置作业运行时间;
-w 作业依赖,方便写流程,如-w "done(JobA)",作业名为JobA的作业完成之后,该作业才开始运行;
-K 提交作业并等待作业结束,在写流程时会用得上,可以见后面的例子
-P 指定project name,如果我们需要统计某个项目消耗的计算资源,如CPU时等,可以将相关的作业都指定为同一个project name,然后根据project name统计资源消耗;
-r rerun选项,即作业失败后自动重新运行,提交大量作业时此选项比较有用;
example:
/tools/xxx/xxx/bsub -q normal -P AnIP -K -C 0
上面-q 后面跟queue的名字;-P后面跟project名字;
3. 常用命令之bqueues
查询所有queue的状态
QUEUE_NAME:队列名称
PRIO:优先级
NJOBS:几个作业在并行
PEND:阻塞的作业数量
RUN:正在运行的作业数量
SUSP:挂起的作业数量
5. 常用命令之bjobs
删除不需要的作业
7. bpeek -f 作业号
查看任务日志,显示处于运行时作业的标准输出和标准错误输出信息;
8. bhist
显示最近完成作业或正在运行作业的历史情况
bhist jobid
查看作业历史;
参考文献
[1]https://blog.51cto.com/u_13946099/6081321
[2]https://blog.csdn.net/dacming/article/details/125164549
[3]https://www.04ip.com/post/275572.html
[4]https://blog.csdn.net/l471094842/article/details/94039624