随着业务业务场景不断丰富,批量计算也由传统的HPC逐渐扩展到大数据、AI等多种场景,但各个领域独立发展,呈现出生态割裂、技术栈不兼容,资源利用率低等问题,严重影响批量计算的进一步发展
云原生技术以其丰富的生态和灵活的扩展性受到各个社区及厂商的倾迈,并以云原生技术为基础构建统一的批量计算系统,提升资源使用率
云原生批量计算面临的挑战
2. 领域框架支持
3. 调度和性能
4. 资源共享,异构计算
云原生批量计算项目-Volcano
CNCF Volcano 总览
提供完善作业生命周期管理,统一支持几乎所有主流的计算框架,如pytorch,MPI,Horovod,Tensorflow,spark-operator,flink-operator等
2. 丰富的高阶调度策略
公平调度,任务拓扑调度、基于SLA调度、作业抢占、回填、弹性调度、混部等
3. 细粒度的资源管理
提供作业队列,队列资源预留、队列容量管理、多租户的动态资源共享
4. 性能优化和异构资源管理
调度性能优化,并结合Kubernetes提供扩展性、吞吐、网络、运行时的多项优化,异构硬件支持x86,Arm,GPU晟腾,昆仑等
CNCF Volcano关键进展
Volcano 架构和核心能力
提供Job/JobFlow、Queue、PodGroup等核心概念,便于定义批量计算作业部署运行及资源分配需求
2. Volcano Scheduler
丰富的高阶调度策略:公平调度、任务拓扑调度、基于SLA调度、作业抢占、回填、弹性调度、混部等
插件化算法集成框架:支持用户通过不同action和plugin组合定制算法策略,满足不同场景需要等。
3. Volcano Controller
实现完整的作业生命周期管理、作业队列、队列资源预留、队列容量、多租户资源动态共享等核心能力
4. 节点插件
配合调度提供大规模在离线作业混部支持
多元算力支持,包括x86,Arm,GPU,晟腾,昆仑等
2. 租户/namespace / Resource Quota
3. 资源共享
Volcano Job :
在下面中,Queue1中有6CPU资源,Queue2中没有分配,当把Job提交到Queue2的时候,会从Queue1中的部分资源中放入到Queue2中,同时如果Queue1中有任务在提交,会将原本属于Queue1的资源回归到Queue1中。
公平调度
Volcano 典型场景和案例
场景一:弹性调度
场景二:作业拓扑感知调度
场景三:CPU拓扑感知调度
场景四:为Spark提供批量调度
场景五:在离线作业混部
一些关键技术
Volcano作为CNCF首个云原生批量计算项目,支持几乎所有的主流计算框架,提供丰富的高级调度策略及多元算力支持,可在人工智能、大数据、基因测序等海量数据计算和分析场景得到快速应用,弥补了Kubernetes批处理调度能力的空缺 ,并已构建起完善的上下游生态。项目目前已有450+位来自全球各地的贡献者和50+落地案例