IBM LSF 作业负载管理

了解 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 配置文件存储在共享目录中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值