设置调度器参数

调度器是集群上调度作业的软件,负责分发作业、处理作业优先级、按需分配计算节点资源(如vCPU、内存、节点个数)等。您可以根据作业大小,预估使用的节点资源和作业完成时间,设置集群的调度器参数,从而提高资源使用率。本文介绍如何在控制台设置调度器参数。

使用限制

集群的调度器为Slurm或者PBS。其他类型的调度器暂不支持通过控制台设置参数。

操作步骤

  1. 打开调度器页面。

    1. 登录弹性高性能计算控制台

    2. 在顶部菜单栏左上角处,选择地域。

    3. 在左侧导航栏,选择资源管理 > 调度器

  2. 集群列表选择目标集群,在调度器列表选择调度器。

  3. 设置调度器配置信息,然后在页面右上角,单击提交

    Slurm

    如果是Slurm调度器,可以设置以下参数:

    参数

    说明

    主调度周期

    调度计时器Timer,表示每隔多少时间发起调度。

    假设集群只有一个1 vCPU的节点,如果主调度周期设置为20s,则连续提交两个需要1 vCPU、运行时间为30s的作业A和作业B时,作业的运行情况如下:

    • 0s:开始调度,作业A开始Running,作业B为Pending。

    • 20s:触发调度,作业A仍在Running,作业B为Pending(触发调度,但是没有空闲资源供作业B使用)。

    • 30s:作业A为Complete,作业B仍在Pending(尽管有资源空闲,但由于没有触发调度,作业B无法获取资源去运行)。

    • 40s:再次触发调度,作业B开始Running。

    Backfill调度周期

    Backfill调度计时器,触发调度时打破优先级顺序,会尽可能将小负载任务优先提交以保证高CPU使用率。

    假设集群只有一个8 vCPU的节点,如果Backfill周期设置为10s,则提交两个高优先级需要6 vCPU、运行时间为60 min的作业A和作业B后,再提交一个低优先级需要2 vCPU、运行时间为40 min的作业C时,作业运行情况如下:

    • 0s:开始调度,作业A开始Running,作业B和作业C为Pending(由于作业B优先级高于作业C,即使有空闲资源运行作业C,也没有触发调度)。

    • 10s:触发Backfill调度,判断小负载的作业C可以绕过高优先级的作业B提前运行,以保证更高的CPU使用率。此时作业A为Running,作业B为Pending,作业C为Running。

    • 40 min:作业A为Running,作业B为Pending,作业C为Complete。

    • 60 min:作业A为Complete,作业B为Running,作业C为Complete。

    PBS

    如果是PBS调度器,可以设置以下参数:

    参数区域

    参数

    说明

    调度器全局参数配置

    历史作业保留时间

    历史作业的保留时间。超过保留时间后,作业数据会被销毁。

    调度周期

    相邻调度周期的时间间隔。如果没有其他操作触发调度(例如提交作业、重启调度服务),则时隔调度周期触发一次调度。

    最大作业数

    最大允许的作业数。

    最大排队作业数

    最大允许的排队作业数。

    调度器队列参数配置

    队列

    选择要设置的队列。

    队列资源限制

    单击新增限制。限制项如下:

    • 用户:选择要限制的用户。

    • CPU:在选择的队列中,该用户可以使用的最大vCPU个数。

    • 内存:在选择的队列中,该用户可以使用的最大内存数。例如1 gb200 mb等。

    • 节点:在选择的队列中,该用户可以使用的最大节点数。

    • 最大作业数:在选择的队列中,该用户可以提交的最大作业数。

    队列用户映射

    单击新增用户,在弹出的对话框中选择用户,单击确定,即可设置所选队列仅能被该用户使用。

    说明

    默认情况下,所选队列可以被集群的所有用户使用。设置后,所选队列仅能被选择的用户使用。