写点什么

Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算

  • 2023-01-18
    中国香港
  • 本文字数:2537 字

    阅读完需:约 8 分钟

Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算

本文分享自华为云社区《Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算》,作者:华为云云原生团队 。

北京时间 2023 年 1 月 9 日,Volcano 社区 v1.7.0 版本正式发布。此次版本增加了以下新特性:

  • Pytorch Job 插件功能强化

  • Ray on Volcano

  • 增强 Volcano 对 Kubernetes 通用服务的调度能力

  • 支持 Volcano 的多架构镜像

  • 优化队列状态信息等

Volcano 是业界首个云原生批量计算项目,于 2019 年 6 月在上海 KubeCon 正式开源,并在 2020 年 4 月成为 CNCF 官方项目。2022 年 4 月,Volcano 正式晋级为 CNCF 孵化项目。Volcano 社区开源以来,受到众多开发者、合作伙伴和用户的认可和支持。截止目前,累计有 490+全球开发者向项目贡献了代码。



Volcano v1.7.0 关键特性介绍

▍1. Pytorch Job 强化功能插件

Pytorch 是当下最流行的 AI 框架之一,已被广泛应用于计算机视觉,自然语言处理等深度学习领域,并且已有越来越多的用户开始以容器化的方式在 Kubernetes 上运行 Pytorch 来获得更高资源利用率和并行效率。

本次 1.7 版本提供了 Pytorch Job 强化功能插件,,免去了容器端口、MASTER_ADDR、MASTER_PORT、WORLD_SIZE、RANK 环境变量等众多繁琐的手动配置环节,让用户可以用极简的方式在 Volcano 上运行 Pytorch Job。

Volcano 社区当前提供了 TensorFlow、MPI 和 Pytorch 等 Job 强化功能插件,帮助用户更简洁高效的运行对应的训练框架和计算作业。

此外,Volcano 还提供了 Job 插件的扩展开发框架,满足高阶用户针对复杂场景定制 Job 插件的需求。

设计文档:Pytorch-plugin

https://github.com/volcano-sh/volcano/blob/master/docs/design/distributed-framework-plugins.md#pytorch-plugin

用户手册:Pytorch-plugin-user-guide

https://github.com/volcano-sh/volcano/blob/master/docs/user-guide/how_to_use_pytorch_plugin.md#pytorch-plugin-user-guide

Issue:#2292

https://github.com/volcano-sh/volcano/issues/2292


▍2. Ray on Volcano

Ray 是一个用于扩展 AI 和 Python 应用程序的统一框架,可以在任何机器、集群、云提供商和 Kubernetes 上运行,并具有不断发展完善的社区生态。

当前,机器学习工作负载的计算密集度越来越高,单节点开发环境已无法满足训练任务在资源上的需求,Ray 可以将同一套代码从单机运行无缝扩展到集群中运行。Ray 是面向通用场景进行的设计,可以高效运行任何类型的工作负载。

该特性实现 Volcano 和 Ray 的协同工作,使用 Volcano 为 Ray 提供批量调度功能。目前该特性已在 KubeRay v0.4https://github.com/ray-project/kuberay/releases/tag/v0.4.0)版本正式发布。

用户手册:KubeRay-integration-with-Volcano

https://ray-project.github.io/kuberay/guidance/volcano-integration/#kuberay-integration-with-volcano

Issue

#2429:https://github.com/volcano-sh/volcano/issues/2429#213https://github.com/ray-project/kuberay/issues/213


▍3. 增强对 Kubernetes 通用服务的调度能力

在不同的业务场景下,调度器发挥的价值与能力各有不同。比如,在批量计算场景中,Volcano 的调度策略和能力更为丰富;通用服务调度场景中,Kubernetes 默认调度器的能力更为均衡。但用户的集群中通常不会只运行一种类型的任务,在既有批量计算任务运行,又需要调度通用服务的场景下,如何兼顾不同类型任务的调度是一项值得研究的工作。

从 1.7 版本开始,Volcano 提供对 Kubernetes 默认调度器完全兼容的能力,可用于调度管理长期运行的服务。通过本次功能强化,用户可以使用 Volcano 统一调度长时间运行的服务和批处理工作负载。

重点增强项如下:

Volcano 的 scheduler 和 webhook 支持多调度器

支持 NodeVolumeLimits 插件

支持 VolumeZone 插件

支持 PodTopologySpread 插件

支持 SelectorSpread 插件

另外,本次版本将对 Kubernetes 的支持升级到了 v1.25。

Issue:

#2394:https://github.com/volcano-sh/volcano/issues/2394

#2510:https://github.com/volcano-sh/volcano/issues/2510


▍4. 支持 Volcano 的多架构镜像

该特性通过交叉编译实现一键化编译 Volcano 多架构镜像功能,比如,可以在 amd64 架构机器上,一键化编译 amd64 和 arm64 架构的 Volcano 基础镜像,并上传至镜像仓库。用户安装部署时,会根据自身环境中机器架构自动选择合适的镜像运行,对开发者和用户更友好。

使用手册:building-docker-images

https://github.com/volcano-sh/volcano/blob/master/docs/development/development.md#building-docker-images

Issue:#2435

https://github.com/volcano-sh/volcano/pull/2435


▍5. 优化队列状态信息

该特性在队列状态信息中增加已分配资源实时统计功能,通过该功能,用户可以实时查看队列的资源分配情况,方便管理员动态规划资源,使集群资源得到最大化利用。Volcano 通过队列的方式对集群资源进行分配管理,使用 Capability 字段来限制每个队列的资源上限,这是我们进行队列资源分配的硬约束。当前,在集群运行过程中,用户无法清楚的了解到队列中已分配资源和 Capability 中空闲资源的详细信息,有可能会在队列空闲资源不足时提交大量工作负载,导致作业挂起和 autoScaler 非预期的触发集群扩容,从而增加云资源的使用成本。通过该特性中新增加的状态信息,用户可以更清晰有效的管理集群资源,控制使用成本。

Issue:#2571

https://github.com/volcano-sh/volcano/issues/2571


致谢贡献者

致谢贡

Volcano v1.7.0 版本包含了来自 29 位贡献者的数百次代码提交,在此对各位贡献者表示由衷的感谢:


贡献者 GitHub ID:



相关链接

Release note:v1.7.0 https://github.com/volcano-sh/volcano/releases/tag/v1.7.0

Branch:release-1.7 https://github.com/volcano-sh/volcano/tree/release-1.7

深入了解 Volcano

Volcano 云原生批量计算项目主要用于 AI、大数据、基因、渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支持。社区已吸引 2.6 万+全球开发者,并获得 2.8k Star 和 670+ Fork,参与贡献企业包括华为、AWS、百度、腾讯、京东、小红书等。目前,Volcano 在人工智能、大数据、基因测序等海量数据计算和分析场景已得到快速应用,已完成对 Spark、Flink、Tensorflow、PyTorch、Argo、MindSpore、Paddlepaddle 、Kubeflow、MPI、Horovod、mxnet、KubeGene、Ray 等众多主流计算框架的支持,并构建起完善的上下游生态。

点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 6
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
Volcano 社区 v1.7.0 版本正式发布 | 云原生批量计算_云计算_华为云开发者联盟_InfoQ写作社区