详情页标题前

腾讯云容器服务运行弹性训练任务同尘科技

详情页1

概述

传统分布式深度学习任务(例如 Tensorflow Job)在提交训练任务后,无法再动态调整 Worker 数量。但在某些场景下,需要弹性训练能力,例如,集群中存在一批算力需求波动大的高优任务(例如周期性波动的在线任务),集群的整体平均资源利用率较低,因为波谷期的资源未得到充分利用。这种场景下,可以在集群中运行弹性训练任务,充分利用集群闲置资源。MPI Operator 通过对接 Horovod 的 Elastic 模式,可以让 MPI Job 具备动态调整训练 Workers 数量的能力。您可以结合云原生的低成本算力能力(竞价实例)以及多维度弹性能力(例如 HPA、VPA、CA)充分利用空闲的算力资源,以大幅降低训练成本。本文介绍如何运行 MPI 任务。

前提条件

AI 环境中已安装 MPI Operator。AI 环境中有 GPU 资源。

操作步骤

MPI-Operator 官方提供了多个训练案例,本文将以 Horovod Elastic 训练为例。

准备训练代码

本示例中使用 Horovod 官方提供的示例代码 tensorflow2_mnist_elastic.py。

制作训练镜像

Horovod 官方提供的 horovod/horovod:0.20.0-tf2.3.0-torch1.6.0-mxnet1.5.0-py3.7-cpu 镜像中已经包含了该训练代码。注意:如果采用其他 Horovod 镜像作为基础镜像来制作训练镜像,请将训练代码复制至到镜像内。由于训练代码是基于 TensorFlow 2.3.0 构建,如果采用不同的 TensorFlow 版本,请注意 API 兼容性。

腾讯云自研优化镜像

说明镜像仓库 ccr.ccs.tencentyun.com/ti_containers/ti-tensorflow 中内置了由腾讯优图实验室和机智团队合作开发的 Ti-horovod,针对腾讯云网络环境特点进行了定制优化标签(tag)列表1.15.2-gpu-cu100-py32.0.0-gpu-cu100-py32.1.0-gpu-cu101-py32.4.0-gpu-cu112-py32.4.0-gpu-cu113-py3

任务提交

1. 准备一个 MPIJob 的 YAML 文件,定义一个 Horovod Elastic 任务,至少需要1个 Worker,至多接受3个 Worker,最初创建2个 Worker。

apiVersion: kubeflow.org/v1kind: MPIJobmetadata:  name: tensorflow-mnist-elasticspec:  slotsPerWorker: 1  cleanPodPolicy: Running  mpiReplicaSpecs:    Launcher:      replicas: 1      template:        spec:          containers:          - image: horovod/horovod:0.20.0-tf2.3.0-torch1.6.0-mxnet1.5.0-py3.7-cpu            name: mpi-launcher            command:            - horovodrun            args:            - -np            - "2"            - --min-np            - "1"            - --max-np            - "3"            - --host-discovery-script            - /etc/mpi/discover_hosts.sh            - python            - /examples/elastic/tensorflow2_mnist_elastic.py            resources:              limits:                cpu: 1                memory: 2Gi    Worker:      replicas: 2      template:        spec:          containers:          - image: horovod/horovod:0.20.0-tf2.3.0-torch1.6.0-mxnet1.5.0-py3.7-cpu            name: mpi-worker            resources:              limits:                cpu: 2                memory: 4Gi

2. 执行以下命令,通过 kubectl 提交该 MPIJob:

kubectl create -f ./tensorflow-mnist-elastic.yaml

3. 如需修改 Worker 数量,可以通过 kubectl editkubectl patch 来修改该 MPIJob 的 spec.mpiReplicaSpecs[Worker].replicas
容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/148282.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 函数计算中我通过制品仓库 上传的包太大了,oss 又只支持zip 格式的,可我是个jar包,怎么办?-云小二-阿里云

    函数计算中, 麻烦咨询个问题,我通过制品仓库 上传的包太大了,oss 又只支持zip 格式的,可我是个jar包 以下为热心网友提供的参考意见 如果你的JAR包太大了,无法通过OSS上传,你可以考虑以下几种解决方案: 压缩JAR包:使用压缩工具(如zip、tar等)将JAR包压缩成较小的文件。你可以将压缩后的文件上传到OSS,并在函数计算中解压并使用它。 拆分…

    2024年1月3日
  • 关于PolarDB有以下几个问题,能解答吗?-云小二-阿里云

    我们现在使用的是RDS,一个主实例三个只读实例,费用有点高,看了这个polardb数据库介绍说性能比mysql好,成本低,有些疑虑,不知道该不该换成polardb?关于PolarDB有以下几个问题,能解答吗?1.同样的cpu和内存配置下,性能rds和polardb哪个更好。2.费用上能节约多少3.现在我们是mysql5.6,能直接升级到8.0吗4.我们业务不…

    阿里云 2023年12月28日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云云函数(SCF)第三方教程-云淘科技

    本文提供了云函数不同场景下的第三方教程,您可参考教程进行相关实践操作。利用云函数接收兔小巢的 WebHooks,并通知到对应邮箱SCF 云函数 API 实践云上的甜蜜早安:腾讯云云函数助力 PHP 打造女友专属每日推送 官网1折活动,限时活动,即将结束,速速收藏同尘科技为腾讯云授权服务中心。购买腾讯云产品享受折上折,更有现金返利。同意关联立享…

    腾讯云 2023年12月9日
  • 阿里云负载均衡ListLoadBalancers – 查询负载均衡实例信息-云淘科技

    查询已创建的网络型负载均衡实例的基本信息。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试调试授权信息下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如…

    阿里云负载均衡 2023年12月10日
  • 腾讯云云直播QUIC 协议直播

    QUIC(Quick UDP Internet Connection)是谷歌公司研发的基于 UDP 协议的下一代高质量传输协议,自2018年开始,IETF 将 QUIC 协议确定为 HTTP/3.0 网络协议规范进行推广,QUIC 协议相对于 TCP 协议,更适合弱网络和高丢包场景下的数据传输。当前腾讯视频云支持使用 QUIC 协议来进行 直播推流 和 直播…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。