You need to enable JavaScript to run this app.
导航

预付费场景下的闲时任务

最近更新时间2024.01.31 10:15:12

首次发布时间2022.10.13 10:34:53

对于预付费(包年包月)场景,用户将购买到的资源组中的资源以配额(quota)的形式划分成若干个队列并用于不同业务,但不同业务可能因为忙闲不均导致同一时段某些队列有较多的 quota 闲置而某些队列的 quota 吃紧、有大量任务排队,导致整个资源组维度上出现资源浪费
为了解决上述痛点,提升资源组的整体利用率,机器学习平台提供了如下解决方案:

  • 允许用户将队列的空闲 quota 出借给同资源组的其它队列,用于执行闲时自定义任务,提升资源组的整体利用率。
  • 当某资源组的所有队列都愿意外借 quota 时,闲时任务能够使用到的最大资源量则为资源组的资源总量。
  • 为了避免出现 quota “有借无还” 的现象,当 “出借 quota” 的队列有非闲时任务排队时,将立即回收出借的 quota,此时使用这部分 quota 的闲时任务将被中断。
使用前提
  1. 当前用户拥有 >= 1 个预付费队列(原专有队列)的使用权限。

  2. 资源组中存在 >=1 个开启了 空闲资源出借 的预付费队列。

    • 在本队列有足够空闲的 quota 时,无需其它队列开启出借也能创建闲时任务。
使用步骤
  1. 用户登录机器学习平台,参考发起单机 / 分布式训练任务的步骤完成任务创建表单中相关字段的配置。

  2. 选择当前用户有权限的预付费队列。

  3. 使用闲时资源的开关配置为开启,提交表单即可完成任务的创建。

    • 由于闲时任务可能因 quota 回收被中断,所以强烈建议用户在代码中包含 checkpoint 机制,便于任务被强杀后,能在下一次调度成功时通过 checkpoint 恢复上一次的训练。

    • 为了及时感知到任务被强杀的时机,请用户在【账号管理】中完成邮箱的配置,当任务被杀后系统将自动发送邮件通知用户。

  4. 为任务配置计算资源。

    • 由于闲时任务能够使用其它队列的 quota,所以用户选择实例规格将不受本队列资源总量以及个人用量上限的限制,只要未超过资源组的资源上限即可。
      • 比如本队列中的 GPU 型号是 V100,但是如果资源组中包含 A100 的资源,创建闲时任务时也可以选择 A100。
  5. 创建闲时任务后,出借 quota 的队列有足够的空闲 quota 时,闲时任务便能成功调度,同时在本队列的详情页中展示这部分临时 quota 的使用情况。

  6. 当出借 quota 的队列中提交的非闲时任务排队时,平台将会为该队列回收 quota 以保障这部分任务的调度。

    • 闲时任务回收时,任务创建人将收到对应的通知邮件。
    • 被回收的任务详情页中的【Timeline】页面可以发现该任务被标记为 “被抢占”。