ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

IBM的Spectrum LSF运行方式

IBM的Spectrum LSF运行方式 IBM的Spectrum LSF software是每个芯片工程师或多或少都会接触到的一套软件系统LSF是Load Sharing Facility的缩写顾名思义这套软件是用于管理资源负载的使资源最大化被各个用户所使用。LSF主要功能有3点1. 管理硬件和软件资源2. 调度和运行jobs3. 监控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上提交jobsManagement 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 RolembatchdJob requests and dispatchmbschdJob schedulingsbatchdJob executionresJob executionlimHost informationpimJob process informationelimDynamic load indexesmbatchdManagement batch daemon是运行在management host上的它负责系统中jobs的整体状态。接收jobs提交和信息查询请求。管理queue中保存的jobs。将jobs分派到由mbschd选择的主机。mbschdManagement batch scheduler daemon也是运行在management host上的。它mbatchd一块配合工作它会根据jobs需求、策略和资源可用性做出调度决策。将调度决策发送到mbatchd。sbatchdServer batch daemon运行在每个服务器host上包括management host。从mbatchd接收运行jobs的请求并管理jobs的本地执行。负责执行本地策略并维护host上的jobs状态。sbatchd为每一个job都创建一个子sbatchd。子sbatchd运行一个res实例来创建job运行的执行环境。当作业完成时子sbatchd退出。resRemote execution server在每个服务器host上运行。接受远程执行请求为jobs和tasks提供可靠、安全的远程执行。limLoad information manager运行在每个服务器host上它收集host负载和配置信息并将其转发给运行在management host上的host LIM。当LIM启动或cpu ncpu数量发生变化时将上报静态负载指数static load index。在management host上运行的LIMParent LIMIT会接收集群中各host上运行的lim的负载信息。并把负载信息转发给mbatchd后者将此信息转发给mbschd以支持调度决策。如果management host上LIM不可用则management candidate host上的LIM自动接管。pimProcess information manager是每个服务器主机上运行的进程信息管理器。由LIM启动LIM会定期检查PIM并在它死亡时重新启动它。pim收集host上运行的job进程信息如job占用的CPU和内存等并将这些信息报告给sbatchd。elimExternal 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‑queuendisks本地磁盘数目块设备数maxmem整机最大可用内存MB物理 RAM 总量maxswp整机最大 Swap 总量MBmaxtmp/tmp 文件系统总容量MBcpufCPU 归一化因子相对速度值用来跨机型校正 r1m 等type主机类型字符串OS 架构model主机型号字符串server是否为 Server hostboolYes/No能否执行作业Dynamic Load Index内置动态lsload名称含义别名说明 工程要点r15s15s 指数平均运行队列长度—瞬时尖峰LSF 已按ncpus/cpuf归一化≠原生 Linux loadavgr1m1min 指数平均运行队列长度cpu最常用负载指标loadSched/loadStop 大多配这个r15m15min 指数平均运行队列长度—看持续高负载ut1min 平均 CPU 利用率—0.0‑1.0注意超线程时 ut 高不代表 slot 耗尽pg1min 平均换页速率—pages/sec不是 swap 已用大小pg 高 内存颠簸风险io1min 平均磁盘 I/O 速率—KB/s本地盘吞吐不直接反映 NFS 压力ls当前登录会话数login交互式用户数量it主机空闲时间idle分钟全部登录会话无操作时长mem当前可用内存—MB实时剩余和maxmem区分swp当前可用 SwapswapMB实时剩余和maxswp区分tmp/tmp 当前剩余空间—MB实时剩余和maxtmp区分PSExternal 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配置命令
返回列表