news 2026/10/7 6:42:44

IBM的Spectrum LSF运行方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IBM的Spectrum LSF运行方式

IBM的Spectrum LSF software是每个芯片工程师或多或少都会接触到的一套软件系统,LSF是Load Sharing Facility的缩写,顾名思义,这套软件是用于管理资源负载的,使资源最大化被各个用户所使用。

LSF主要功能有3点:1. 管理硬件和软件资源;2. 调度和运行jobs;3. 监控jobs的状态。我们从LSF资源和LSF软件讲下。

1. LSF资源

LSF的资源有硬件资源和软件资源,硬件资源有计算机、磁盘、内存等。软件资源有license等。

硬件资源中定义了Cluster(集群)的概念,Cluster是将一组computer(host)打包成一个整体,它们共享算力和资源。Cluster的host可以简化为3类:management host、execution(compute) host和Submission(client) host,三者安装了LSF的完整或部分软件。Management host充当集群的总体协调器、队列管理、作业派发,一般不跑普通用户计算任务。Execution host用于执行任务。Submission host用于提交任务。

User通常在Submission host上提交jobs,Management host根据jobs的类型和资源需求来选择合适的Execution host去执行jobs。根据需求,这些execution host可以使用共享的NFS memory或者使用自己local的memory去执行任务。如果使用local memory,那么execution host和submission host之间需要互相copy的文件会比较多,但是执行jobs的速度可能更快,因为它不需要和其它host去争抢NFS 磁盘的IO读写资源。

用户提交jobs到LSF的常用命令就是bsub,在提交bsub可以指定一系列需求,比如服务器类型、OS类型、memory大小、CPU个数、EDA license数目和host空闲程度等。这么多复杂的需求,就是靠LSF软件系统去维护,它需要定期监控各个软硬件资源的使用情况,然后从jobs队列(queue)中挑出符合的job丢给execution host去执行,并把执行结果返回给user(不管成功与否),而且还要根据user查询类型反馈系统的状态信息。

2. LSF软件

集群中的每台host的角色不一样,因此运行的LSF进程类型和数量也不一样。主要的LSF进程有以下几种。

Daemon Role

mbatchdJob requests and dispatch

mbschdJob scheduling

sbatchdJob execution

resJob execution

limHost information

pimJob process information

elimDynamic load indexes

mbatchd(Management batch daemon)是运行在management host上的,它负责系统中jobs的整体状态。接收jobs提交和信息查询请求。管理queue中保存的jobs。将jobs分派到由mbschd选择的主机。

mbschd(Management batch scheduler daemon)也是运行在management host上的。它mbatchd一块配合工作,它会根据jobs需求、策略和资源可用性做出调度决策。将调度决策发送到mbatchd。

sbatchd(Server batch daemon)运行在每个服务器host上,包括management host。从mbatchd接收运行jobs的请求,并管理jobs的本地执行。负责执行本地策略并维护host上的jobs状态。sbatchd为每一个job都创建一个子sbatchd。子sbatchd运行一个res实例来创建job运行的执行环境。当作业完成时,子sbatchd退出。

res(Remote execution server)在每个服务器host上运行。接受远程执行请求,为jobs和tasks提供可靠、安全的远程执行。

lim(Load information manager)运行在每个服务器host上,它收集host负载和配置信息,并将其转发给运行在management host上的host LIM。当LIM启动或cpu (ncpu)数量发生变化时,将上报静态负载指数(static load index)。在management host上运行的LIM(Parent LIMIT)会接收集群中各host上运行的lim的负载信息。并把负载信息转发给mbatchd,后者将此信息转发给mbschd以支持调度决策。如果management host上LIM不可用,则management candidate host上的LIM自动接管。

pim(Process information manager)是每个服务器主机上运行的进程信息管理器。由LIM启动,LIM会定期检查PIM并在它死亡时重新启动它。pim收集host上运行的job进程信息,如job占用的CPU和内存等,并将这些信息报告给sbatchd。

elim(External LIM)是一个站点可定义的可执行文件,它收集和跟踪自定义的动态负载指数(dynamic load index)。ELIM可以是shell脚本或编译的二进制程序,它返回用户定义的动态资源的值。ELIM可执行文件必须命名为ELIM。并位于LSF_SERVERDIR中。

上述这些LSF进程在management host和computer host的分布如下图。

上述这些LSF进程的调用关系如下图:

Static Load Index和Dynamic Load Index的区别:

  • Static Load Index(静态负载指数):LIM 启动时读取、硬件 / 配置不变就几乎不动;lshosts查看;
  • Dynamic Load Index(动态负载指数):LIM 每~15s 周期性采样、EWMA 平滑;lsload查看;还可以通过 ELIM 自定义额外动态指数;

Static Load Index(内置静态,lshosts)

名称

含义

单位 /备注

ncpus

检测到的 CPU 数量

核数(LSF 用来算归一化 run‑queue)

ndisks

本地磁盘数目

块设备数

maxmem

整机最大可用内存

MB(物理 RAM 总量)

maxswp

整机最大 Swap 总量

MB

maxtmp

/tmp 文件系统总容量

MB

cpuf

CPU 归一化因子

相对速度值(用来跨机型校正 r1m 等)

type

主机类型

字符串(OS + 架构)

model

主机型号

字符串

server

是否为 Server host

bool(Yes/No,能否执行作业)

Dynamic Load Index(内置动态,lsload)

名称

含义

别名

说明 &工程要点

r15s

15s 指数平均运行队列长度

—

瞬时尖峰;LSF 已按ncpus/cpuf归一化,≠原生 Linux loadavg

r1m

1min 指数平均运行队列长度

cpu

最常用负载指标;loadSched/loadStop 大多配这个

r15m

15min 指数平均运行队列长度

—

看持续高负载

ut

1min 平均 CPU 利用率

—

0.0‑1.0;注意超线程时 ut 高不代表 slot 耗尽

pg

1min 平均换页速率

—

pages/sec;不是 swap 已用大小;pg 高 = 内存颠簸风险

io

1min 平均磁盘 I/O 速率

—

KB/s;本地盘吞吐;不直接反映 NFS 压力

ls

当前登录会话数

login

交互式用户数量

it

主机空闲时间

idle

分钟;全部登录会话无操作时长

mem

当前可用内存

—

MB(实时剩余;和maxmem区分)

swp

当前可用 Swap

swap

MB(实时剩余;和maxswp区分)

tmp

/tmp 当前剩余空间

—

MB(实时剩余;和maxtmp区分)

PS:External Dynamic Index:管理员用 ELIM 脚本自定义(例如 license 余量、GPU 利用率),也是动态指数,只是不是 LIM 内置。

3. 总结

LSF将众多软硬件组合起来,给用户提供统一接口,用户不需要关系内部资源协调和组织的细节。组成cluster的host中会至少选用一台作为management host,用于协调其它computer host的运行。Management host通过lim机制掌握了各个host的资源使用情况,这些信息也会提供给mbschd去做出调度决策,mbatchd根据这个调度决策把jobs分配到合适的computer host上去运行,computer host上的sbatchd会为每个分配过来的job启动一个子sbatchd,这个子sbatchd会启动一个res实例来创建job运行的执行环境,使得每个job独立、安全的执行。

LSF中提供了众多的命令给用户使用,大致可以分为以下四类:

  • 提交jobs
  • 查询jobs
  • 查询hosts
  • 配置命令

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 6:42:19

华为云码道检视修复智能体:召回率91.3%的代码检视与修复闭环实践

1. 为什么代码检视这件事值得用智能体重做一遍代码检视(Code Review)是研发流程里最反人性却又最不能省的一环。说它反人性,是因为它要求一个已经写完功能、脑子切到下一个任务的工程师,回头逐行读别人的代码,还要在风…

作者头像 李华
网站建设 2026/10/7 6:42:19

从分立到集成:Buck电路核心原理、元件选型与环路补偿实战指南

做电源设计这些年,碰过最多的拓扑就是Buck电路。不管是刚入行时照着数据手册搭分立元件方案,还是后来用集成模块快速出板,Buck始终是绕不开的基础。这个拓扑看起来简单——一个开关管、一个电感、一个电容、一个二极管,但真正把它…

作者头像 李华
网站建设 2026/10/7 6:41:51

OpenShell不是Shell:系统级调用探针原理与跨平台实践

1. OpenShell 不是 Shell,而是一把被误读多年的“系统级钥匙”OpenShell 这个名字,在 Linux、macOS 和 Windows 的交叉地带反复闪现,尤其在 WSL 用户群、开发者调试现场和 macOS 系统调优讨论中高频出现。但绝大多数人第一次看到它&#xff0…

作者头像 李华
网站建设 2026/10/7 6:41:29

轻量级决策大模型NeoHorse-Jev-4B:结构化推理与边缘部署实践

1. 项目概述:NeoHorse-Jev-4B 是什么,它解决的是哪类真实问题?NeoHorse-Jev-4B 这个名字乍看像一串技术代号,但拆开来看,它其实指向一个非常具体、正在快速落地的工程实践场景:用轻量级开源大模型替代传统规…

作者头像 李华
网站建设 2026/10/7 6:41:21

AI日报:Agent并发、编程工具与内容生产工程化实践

今天是 2026 年 9 月 29 日,我照例把各大平台的热搜和开发者社区翻了一遍,整理出这份 AI 日报。今天的热词明显分成了几条线:AI Agent 的工程化问题(怎么扛并发、多 AI 协作、openclawROS)、AI 编程工具的使用边界&…

作者头像 李华
网站建设 2026/10/7 6:41:00

DeepSeek大模型实战:从本地部署到微调应用全解析

1. DeepSeek是什么:先把这个名字拆明白1.1 从模型家族看DeepSeek的定位DeepSeek是当前大模型领域热度非常高的一个名字,它不只是某一个模型,而是一整套模型家族。简单罗列一下我实际用过的几个版本:DeepSeek-V3是通用对话和文本生…

作者头像 李华