【AI算力平台】智算GPU调度器——Volcano

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

Volcano是Kubernetes的批处理调度系统,提供高性能任务调度能力。适用于AI、大数据等高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理场景。

一、Volcano调度器

1.1 核心组件Volcano Scheduler

Volcano Scheduler是负责Pod调度的组件,它由一系列action和plugin组成。

  • Action

    • action定义了调度各环节中需要执行的动作。

  • plugin

    • plugin根据不同场景提供了action 中算法的具体实现细节。

1.2 Volcano工作流程

  1. 客户端提交的Job

  2. 客户端提交的Job被调度器识别到并缓存起来

  3. 周期性开启会话,一个调度周期开始

  4. 将没有被调度的Job,发送到会话的待调度队列中

  5. 遍历所有的待调度Job

    1. 为每个Job找到一个最合适的节点,将该Job 绑定到这个节点。

    2. 按照定义的次序依次执行enqueue、allocate、preempt、reclaim、backfill等动作

    3. action中执行的具体算法逻辑取决于注册的plugin中各函数的实现。

  6. 关闭本次会话

1.3 Volcano自定义资源

Pod组(PodGroup)

  • PodGroup,代表一组强关联Pod的集合,主要用于批处理工作负载场景

    • 比如Tensorflow中的一组ps和worker。

队列(Queue)

  • 容纳一组PodGroup的队列,也是该组PodGroup获取集群资源的划分依据。

作业(Volcano Job,简称vcjob)

  • Volcano Job,Volcano自定义的Job资源类型。

  • 区别于Kubernetes Job,vcjob提供了更多高级功能,如可指定调度器、支持最小运行Pod数、 支持task、支持生命周期管理、支持指定队列、支持优先级调度等。

  • Volcano Job更加适用于机器学习、大数据、科学计算等高性能计算场景。

应用扩缩容优先级策略

  • 开启Volcano应用扩缩容优先级策略后,将会在集群中新增两类CRD资源

    • BalancerPolicyTemplate,用来进行优先级策略定义

    • Balancer,用来申明扩缩容优先级的作用范围

  • 一个Balancer CR资源对应一个BalancerPolicyTemplate CR资源,两者结合共同申明哪些工作负载使用了哪些优先级策略。

二、使用Volcano调度工作负载

Volcano是一个基于Kubernetes的批处理平台,提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力。针对计算型应用提供了作业调度、作业管理、队列管理等多项功能。

2.1 Volcano调度工作负载

使用Volcano调度工作负载时,只需要在Pod的spec字段中设置schedulerName参数并指定参数值为volcano

2.1.1 使用yaml创建queue

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值