全部產品
Search
文件中心

Platform For AI:快速提交MPIJob訓練任務

更新時間:Jul 08, 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方式啟動作業。