全部产品
Search
文档中心

人工智能平台 PAI:快速提交MPIJob训练任务

更新时间:Jul 07, 2026

MPIJob是基于MPI协议的分布式训练任务类型,适用于多机多卡并行训练场景。DLC支持通过mpirun和DeepSpeed两种方式提交MPIJob任务。

前提条件

使用限制

仅支持在华北6(乌兰察布)地域使用灵骏智算资源提交该任务。

提交MPIJob类型的训练任务

步骤一:准备代码源

使用官方DeepSpeed examples代码合集创建代码集,关键参数如下,其他参数保持默认。具体操作,请参见代码配置

  • 名称:自定义代码集名称,本方案示例为:deepspeed-examples。

  • Git地址https://github.com/microsoft/DeepSpeedExamples.git

步骤二:提交分布式训练任务

支持使用以下两种方式提交分布式训练任务:

mpirun方式

  1. 进入新建任务页面。

    1. 登录PAI控制台,在页面上方选择目标地域,并选择目标工作空间,然后单击进入DLC

    2. 在分布式训练(DLC)页面,单击新建任务

  2. 新建任务页面,配置以下关键参数,更多参数配置详情,请参见创建训练任务

    参数

    描述

    环境信息

    镜像配置

    本方案提供了一个测试镜像,单击镜像地址,在文本框中输入dsw-registry-vpc.<RegionID>.cr.aliyuncs.com/pai-common/deepspeed-training:23.08-gpu-py310-cu122-ubuntu22.04,用于提交MPIJob分布式训练任务。其中<RegionID>需替换为地域ID,例如华北6(乌兰察布)为cn-wulanchabu。更多关于地域ID的详细说明,请参见地域和可用区

    启动命令

    每个POD中执行的脚本命令。您可以在命令中配置环境变量来覆盖默认配置,详情请参见系统环境变量

    cd /root/code/DeepSpeedExamples/training/cifar/
    
    # -np 2 -npernode 1 表示使用2个节点,每个节点1张卡,总共2张卡。
    mpirun -np 2 -npernode 1  --allow-run-as-root -bind-to none -map-by slot -x LD_LIBRARY_PATH -x PATH -mca pml ob1 -mca btl ^openib python /root/code/DeepSpeedExamples/training/cifar/cifar10_tutorial.py

    代码配置

    选择在线配置,并选择已创建的代码配置,挂载路径保持默认。

    资源信息

    资源类型

    选择资源配额

    说明

    仅当工作空间同时支持使用灵骏智算资源和通用计算资源提交DLC任务时,才支持选择资源类型。

    资源来源

    选择资源配额

    资源配额

    选择已创建的灵骏智算资源配额。

    框架

    选择MPI

    任务资源

    • 节点数量配置为2。

    • CPU(核数)配置为4。

    • GPU(卡数)配置为1。

    • 内存(GiB)配置为8。

    • 共享内存(GiB)配置为8。

    驱动设置

    使用上方提供的测试镜像时,建议选择535.54.03版本的驱动。

    说明

    目前,只有灵骏智算的资源规格支持驱动设置。

  3. 单击确定

deepspeed(pdsh)方式

使用该方式提交分布式训练任务,启动命令的配置如下,其他参数与mpirun方式配置相同。

cd /root/code/DeepSpeedExamples/training/pipeline_parallelism
deepspeed --hostfile /etc/mpi/hostfile train.py --deepspeed_config=ds_config.json -p 2 --steps=200
说明

使用自定义镜像运行DeepSpeed作业时,需在镜像中安装MPI和DeepSpeed依赖库。您也可以直接使用DockerHub上已预装依赖的DeepSpeed官方镜像。

本方案使用系统环境变量的默认配置,您也可以在启动命令中配置环境变量来覆盖默认配置。更多详细内容,请参见系统环境变量

步骤三:查看任务详情和日志结果

  1. 任务提交成功后,在分布式训练(DLC)页面,单击任务的名称。

  2. 在任务详情页面,即可查看任务的基本信息和执行状态。

  3. 在任务详情页面底部的实例区域,单击launcher类型的实例操作列下的日志,查看作业运行情况。

    INFO: detected pid 1, running init handler
    I0928 01:55:38.749915     12 main.go:473] "level"=0 "msg"="starting up" "pid"=12 "args"=["/git-sync"]
    I0928 01:55:38.750815     12 main.go:923] "level"=0 "msg"="cloning repo" "origin"="https://github.com/microsoft/DeepSpeedExamples.git" "path"="/code"
    I0928 01:55:42.238693     12 main.go:737] "level"=0 "msg"="syncing git" "rev"="HEAD" "hash"="9b3d8984d8211e87f778da9125c836b3d8c9b90f"
    I0928 01:55:44.547667     12 main.go:772] "level"=0 "msg"="adding worktree" "path"="/code/9b3d8984d8211e87f778da9125c836b3d8c9b90f" "branch"="origin/master"
    I0928 01:55:44.856108     12 main.go:833] "level"=0 "msg"="reset worktree to hash" "path"="/code/9b3d8984d8211e87f778da9125c836b3d8c9b90f" "hash"="9b3d8984d8211e87f778da9125c836b3d8c9b90f"
    I0928 01:55:44.856138     12 main.go:838] "level"=0 "msg"="updating submodules"
    /bin/sh -c prepare_dlc_environment || exit $?; cd /root/code/DeepSpeedExamples/training/cifar/
    mpirun -np 2 --allow-run-as-root -bind-to none -map-by slot -x LD_LIBRARY_PATH -x PATH -mca pml ob1 -mca btl ^openib python /root/code/DeepSpeedExamples/training/cifar/cifar10_tutorial.py
    WARN: ./requirements.txt not found, skip installing requirements.
    Warning: Permanently added '[dlc1p8cwlh6s8pl8-worker-0]:2222' (ED25519) to the list of known hosts.
    Warning: Permanently added '[dlc1p8cwlh6s8pl8-worker-1]:2222' (ED25519) to the list of known hosts.
    Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data/cifar-10-python.tar.gz
    Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data/cifar-10-python.tar.gz
      0%|          | 0/170498071 [00:00<?, ?it/s]
      0%|          | 0/170498071 [00:00<?, ?it/s]
      0%|          | 32768/170498071 [00:00<18:40, 152084.37it/s]
      0%|          | 32768/170498071 [00:00<18:59, 149578.44it/s]
      0%|          | 65536/170498071 [00:00<18:42, 151830.78it/s]
      0%|          | 65536/170498071 [00:00<19:09, 148238.16it/s]

系统环境变量

MPI分布式作业包含Launcher和Worker两种角色。DLC为Launcher预设了以下环境变量,您可以在启动命令中配置同名变量来覆盖默认值。

环境变量

描述

默认值

适用场景

OMPI_MCA_btl_tcp_if_include

为Launcher和Worker指定通信的网卡,多个网卡之间使用半角逗号(,)分隔。

eth0

适用于使用mpirun方式启动作业。

OMPI_MCA_orte_default_hostfile

为mpirun命令指定hostfile,在PAI-DLC中可以自动生成hostfile,无需手动修改。

/etc/mpi/hostfile

OMPI_MCA_plm_rsh_agent

为Launcher指定如何远程启动Worker任务。

/etc/mpi/kubexec.sh

PDSH_RCMD_TYPE

PDSH的远程命令类型。

ssh

适用于使用DeepSpeed方式启动作业。