了解 LSF 作业生命周期。 使用 bsub 将作业提交到队列,并指定作业提交选项以修改默认作业行为。 提交的作业在队列中等待,直到将它们调度并分配到主机上来执行。 在作业分发时,LSF 会检查哪些主机有资格运行该作业。
一、作业生命周期
LSF 作业会经历几种状态,从作业提交开始,到分发,执行和最终返回作业结果。

1. 提交一个作业
您可以使用 bsub 命令从 LSF 客户端或服务器提交作业。
如果在提交作业时未指定队列,则该作业将提交到默认队列。
作业在等待调度时被排在队列中。 等待的作业处于 PEND 状态。 如果在配置文件lsb.params中定义了 MAX_INFO_DIRS 参数,则该作业将保存在 LSF_SHAREDIR/cluster_name/logdir/info/ 目录中的作业文件中,或者在其子目录之一中。
-  作业 ID 提交作业时,LSF 为每个作业分配唯一的作业 ID。 
-  作业名 您还可以使用 bsub的 -J 选项为作业分配一个任意名称。 与作业 ID 不同,作业名称不一定是唯一的。 
2. 调度该作业
-  主批处理守护程序(mbatchd)查看队列中的作业,然后将要调度的作业,发送到主批处理调度程序守护程序(mbschd)。 作业以预设的时间间隔进行调度(由配置文件 lsb.params 中的参数 JOB_SCHEDULING_INTERVAL 定义)。 
-  mbschd 根据以下内容评估作业并制定计划决策: -  作业优先级 
 -  调度策略 
 -  可用资源 
 
-  
-  mbschd 选择作业可以运行的最佳主机,并将其决策发送回 mbatchd。资源信息由主负载信息管理器(LIM)以预设的时间间隔,从服务器主机上的 LIM 上收集。 主 LIM 将此信息传达给 mbatchd,后者又将其传达给 mbschd 以支持调度决策。 
3. 分配该作业
mbatchd 收到调度决策后,便立即将作业分配给主机。
4. 运行该作业
从属批处理守护程序(sbatchd)具有以下功能:
-  从 mbatchd 接收请求。 
-  为作业创建一个子 sbatchd 。 
-  创建执行环境。 
-  通过使用远程执行服务器(res)启动作业。 LSF 将执行环境从提交主机复制到执行主机: -  作业所需的环境变量 
 -  作业开始运行的工作目录 
 -  其他与系统有关的环境设置 -  在 UNIX 和 Linux 上,资源限制和 umask 
 -  在 Windows,桌面和 Windows 根目录 作业在提交该作业的用户帐户下运行,并且状态为 RUN。 
 
-  
 
-  
5. 返回结果
作业完成后,如果作业完成没有任何问题,则会被分配为 "DONE" 状态。 如果错误导致作业无法完成,则会为该作业分配 "EXIT" 状态。
sbatchd 传递作业信息,例如错误信息,并输出到 mbatchd。
6. 向客户发送 email
mbatchd 通过电子邮件将作业输出,作业错误和作业信息返回给提交主机。 使用 bsub 的 -o 和 -e 选项将作业输出和错误发送到文件。
作业报告通过电子邮件发送给 LSF 客户端,其中包括以下信息:
-  作业信息: -  CPU 使用 
 -  内存使用 
 -  提交作业的帐户名称 
 
-  
-  作业输出 
-  错误 
二、作业提交
使用 bsub 命令在命令行上提交作业。 您可以使用 bsub 命令指定许多选项来修改默认行为。 作业必须提交到队列中。
队列
队列代表一组挂起等待的作业,它们按定义的顺序排列,并等待其使用资源的机会。 队列执行不同的作业调度和控制策略。
队列有以下特征:
-  优先级 
-  名称 
-  队列限制 (对主机、作业数、用户、组、或者处理器的限制) 
-  标准 UNIX 和 Linux 限制(内存,交换,进程,CPU) 
-  调度策略 
-  管理员 
-  运行条件 
-  负载共享阈值条件 
-  UNIX nice 值 (设置 UNIX 和 Linux 调度程序优先级) 
队列优先级
定义搜索队列,以确定要处理的作业的顺序。 LSF 管理员为队列分配了优先级,其中数值越高,优先级越高。 LSF按从高到低的优先级为队列提供服务。 如果多个队列具有相同的优先级,则 LSF 按照先来先服务的顺序,调度这些队列中的所有作业。
自动队列选择
提交作业时,LSF 会考虑作业要求,并自动从候选默认队列列表中,选择合适的队列。
LSF 根据以下约束条件选择合适的队列:
-  用户访问限制 不允许该用户提交作业的队列,不会予以考虑。 
-  节点限制 如果作业明确指定了可以在其上运行作业的主机节点列表,则必须将所选的队列,配置为作业发送到列表中的主机。 
-  队列状态 不考虑关闭的队列。 
-  排他执行限制 如果作业需要排他执行,则未配置为接受排他作业的队列,将不予考虑。 
-  作业所需的资源 作业请求的资源,必须在所选队列的资源分配限制内。 
如果多个队列满足上述要求,则选择满足要求的候选队列中,列出的第一个队列。
三、作业调度和分配
提交的作业在队列中等待,直到将它们调度并分配到主机上来执行。
将作业提交给 LSF 时,许多因素控制着作业开始的时间和地点:
-  队列或主机的活动时间窗口 
-  作业的资源需求 
-  合格主机的可用性 
-  各种作业槽位限制 
-  作业依赖条件 
-  Fairshare 限制(已配置的用户共享策略) 
-  负载条件 
调度策略
为了解决各种问题,LSF 允许在同一集群中,使用多种调度策略。 LSF 有几种队列调度策略,例如排他,抢占,公平共享和分层公平共享。
-  先来先服务(FCFS)调度: 默认情况下,队列中的作业按 FCFS 顺序分派。 这意味着作业将根据其在队列中的顺序进行调度。 
-  服务水平协议(SLA)调度: LSF 中的 SLA 是 “及时” 的调度策略,用于调度 LSF 管理员和 LSF 用户之间约定的服务。 SLA 调度策略定义应从每个 SLA 运行多少作业,以达到配置的目标。 
-  公平共享调度: 如果您为队列指定一个公平共享调度策略,或者如果已配置主机分区,则 LSF 会根据分配的用户份额,资源使用,或其他因素在用户之间调度作业。 
-  抢占式调度: 您可以指定所需的行为,以便当两个或多个作业竞争同一资源时,一个作业优先于另一个作业。 抢占不仅适用于作业槽位,而且还适用于提前预订(为特定作业保留主机节点)和许可证(使用 IBM Platform License Scheduler)。 
-  回填式调度: 允许小型作业在为其他作业保留的作业槽位上运行,前提是,回填作业在保留时间到期,且资源使用到期之前完成。 
调度与分配
定期安排作业(默认为5秒)。 一旦安排了作业,就可以立即将其分配给主机。
为了防止任何节点过载,默认情况下,LSF 在将作业分发到同一节点之间,会等待一小段时间。
分配顺序
作业不一定按提交顺序分派。
定义队列时,每个队列都有一个由 LSF 管理员设置的优先级编号。LSF 会尝试首先从优先级最高的队列中,启动作业。
LSF 按以下顺序考虑要分派的作业:
-  对于每个队列,从最高优先级到最低优先级。 如果多个队列具有相同的优先级,则 LSF 会按照先来先服务(FCFS)的顺序,调度这些队列中的所有作业。 
-  对于队列中的每个作业,根据 FCFS 顺序。 
-  如果有任何主机有资格运行此作业,将在最合格的主机上启动该作业,并标记该主机不具备启动任何其他作业的资格,直到经过 JOB_ACCEPT_INTERVAL 参数所指定的时间段为止。 
四、节点选择
每次 LSF 尝试分配作业时,它都会检查哪些主机有资格运行该作业。
许多条件决定了节点是否符合条件:
-  主机调度窗口 
-  作业的资源需求 
-  队列的资源需求 
-  队列中的节点列表 
-  节点负载水平 
-  节点的作业槽位限制 
-  用户配额与用户限制 
只有满足所有条件,主机节点才有资格运行作业。 如果队列中已有一个作业,并且该作业的合格主机可用,则该作业将放置在该主机上。 如果有多个主机符合条件,则根据作业和队列资源要求,在最佳主机上启动作业。
主机负载级别
如果主机的负载索引(例如r1m,pg,mem)的值,在配置的调度阈值之内,则该主机可用。 您可以配置两种调度阈值:主机和队列。 如果主机上的任何负载索引,超过相应的主机阈值或队列阈值,则该主机不符合运行任何作业的条件。
合格的主机
当 LSF 尝试放置作业时,它将获取所有主机的当前负载信息。
将每个主机上的负载级别,与在 lsb.hosts 的 Host 部分中,为该主机配置的调度阈值,以及在 lsb.queues 中配置的按队列调度阈值进行比较。
如果任何负载索引,超过其按队列或按主机调度的阈值,则不会在该主机上启动任何新作业。
五、作业执行环境
当 LSF 运行作业时,它将环境从提交主机,复制到执行主机。
执行环境包括以下信息:
-  作业所需的环境变量 
-  作业开始运行的工作目录 
-  其他与系统有关的环境设置,例如资源使用限制 
共享的用户目录
为了提供透明的远程执行,LSF 命令确定用户的当前工作目录,并在远程主机上使用该目录。
可执行文件和 PATH 环境变量
可执行文件的搜索路径(PATH环境变量),未更改地传递到远程执行主机。
注意
在混合集群中,当用户二进制目录,在不同主机类型上具有相同路径名时,LSF 效果最佳。使用相同的路径名,可使 PATH 变量在所有主机上均有效。
为了便于管理,LSF 配置文件存储在共享目录中。



















