すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:MPIJob トレーニングジョブの送信

最終更新日:Aug 26, 2026

Platform for AI (PAI) の Deep Learning Containers (DLC) は、MPIJob タイプの分散トレーニングジョブをサポートしています。本ガイドでは、コードソースの準備からトレーニングログの監視まで、mpirun または DeepSpeed (pdsh) を使用して MPIJob を送信する手順を説明します。

前提条件

開始する前に、以下を確認してください。

制限事項

Lingjun リソースを使用する場合、MPIJob トレーニングジョブは China (Ulanqab) リージョンでのみサポートされます。

仕組み

MPIJob は、ランチャーと 1 つ以上のワーカーという 2 つのロールを使用します。ランチャーはすべてのノードでトレーニングプロセスを開始し、ワーカーは分散計算を実行します。DLC は hostfile を自動生成し、ノード間通信を構成するため、ノード間の SSH を手動で設定する必要はありません。

DLC はランチャーの環境変数を事前構成します。必要に応じて、起動コマンドでこれらのデフォルト値を上書きできます。詳細については、「システム環境変数」をご参照ください。

起動方法の選択

DLC は、MPIJob トレーニングを起動する 2 つの方法をサポートしています。

方法 起動メカニズム ユースケース
mpirun kubexec (DLC 管理) 標準的な MPI 分散トレーニング
DeepSpeed (pdsh) pdsh DeepSpeed パイプライン並列処理トレーニング

両方の方法は同じリソース構成を使用します。唯一の違いは起動コマンドです。

ステップ 1:コードソースの準備

公式の DeepSpeed サンプルリポジトリを使用してコードソースを作成します。

  1. DLC コンソールで [Code Builds] に移動し、以下のパラメータで新しいコードソースを作成します。その他のパラメータはデフォルトのままにします。詳細については、「コード構成」をご参照ください。

    パラメータ
    [Name] deepspeed-examples
    [Git repository] https://github.com/microsoft/DeepSpeedExamples.git

ステップ 2:分散トレーニングジョブの送信

オプション 1:mpirun

  1. PAI コンソールで、リージョンとワークスペースを選択し、[ディープラーニングコンテナー (DLC)] をクリックします。

  2. DLC ページで、[ジョブの作成] をクリックします。

  3. [ジョブの作成] ページで、次のパラメーターを設定します。その他のパラメーターについては、「トレーニングジョブの作成」をご参照ください。 [起動コマンド:]

    [リソースタイプ][ドライバー設定] は、ワークスペースが Lingjun リソースと汎用リソースの両方をサポートしている場合にのみ表示されます。

    環境情報

    パラメータ
    [Image URL] dsw-registry-vpc.<RegionID>.cr.aliyuncs.com/pai-common/deepspeed-training:23.08-gpu-py310-cu122-ubuntu22.04<RegionID> をリージョン ID に置き換えます。China (Ulanqab) の場合は cn-wulanchabu を使用します。その他のリージョン ID については、「リージョンとゾーン」をご参照ください。
    [Startup command] 以下を参照
    [Code Builds] [Online configuration]Mount path を選択して、作成したコードソースを選択します。 はデフォルトのままにします。

    リソース情報

    パラメータ
    [Resource type] Lingjun AI コンピューティングサービス
    [Source] Resource Quota
    [Resource quota] 作成した Lingjun リソースクォータを選択します。
    [Framework] MPI
    [Number of nodes] 2
    [vCPUs] 4
    [GPUs] 1
    [Memory (GiB)] 8
    [Shared memory (GiB)] 8
    [Driver settings] 535.54.03 (上記のテストイメージに推奨)
    cd /root/code/DeepSpeedExamples/training/cifar/
    
    # -np 2: 2 つのプロセスを起動 (ノードごとに 1 つ)
    # -bind-to none -map-by slot: 各スロットで利用可能なすべての CPU コアを使用
    # -x LD_LIBRARY_PATH -x PATH: これらの環境変数をワーカーノードに転送
    # -mca pml ob1 -mca btl ^openib: ポイントツーポイントメッセージングに InfiniBand の代わりに TCP を使用
    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
  4. [OK] をクリックします。

オプション 2:DeepSpeed (pdsh)

上記の mpirun コマンドの代わりに、この起動コマンドを使用します。その他のパラメータはすべて同じです。

cd /root/code/DeepSpeedExamples/training/pipeline_parallelism

# --hostfile: DLC がすべてのノードアドレスを含むこのファイルを自動生成
# -p 2: パイプラインステージの数
# --steps 200: トレーニングステップの合計数
deepspeed --hostfile /etc/mpi/hostfile train.py \
  --deepspeed_config=ds_config.json \
  -p 2 \
  --steps=200
DeepSpeed でカスタムイメージを使用するには、必要な MPI および DeepSpeed ライブラリをイメージにインストールします。DockerHub の公式 DeepSpeed イメージには、これらのライブラリが事前にインストールされています。

ステップ 3:ジョブの詳細とログの表示

  1. ジョブを投入した後、[Deep Learning Containers (DLC)] ページでジョブ名をクリックします。

  2. ジョブの詳細ページで、基本情報と実行ステータスを確認します。

  3. ページの下部にある[インスタンス]セクションで、タイプが[ランチャー]のインスタンスを見つけ、[操作]列の[ログ]をクリックします。

    image

システム環境変数

DLC は、ランチャーロールに対して以下の環境変数を事前構成します。環境で異なる設定が必要な場合は、起動コマンドでこれらを上書きしてください。

環境変数 説明 デフォルト値 適用対象
OMPI_MCA_btl_tcp_if_include ランチャーとワーカー間の通信に使用するネットワークインターフェイスコントローラー (NIC)。複数の NIC を指定する場合はカンマで区切ります。 eth0 mpirun
OMPI_MCA_orte_default_hostfile mpirun コマンドのホストファイルパス。DLC がこのファイルを自動生成します。 /etc/mpi/hostfile
OMPI_MCA_plm_rsh_agent ランチャーがリモートノードでワーカープロセスを起動するために使用する方法。 /etc/mpi/kubexec.sh
PDSH_RCMD_TYPE pdsh のリモートコマンドタイプ。 ssh DeepSpeed (pdsh)

上書きが必要な場合: ノード間通信に eth0 以外の NIC (例: eth1 やボンディングインターフェイス) を使用する場合は、 OMPI_MCA_btl_tcp_if_include を上書きします。クラスターが SSH 以外のリモート実行方法を必要とする場合は、 PDSH_RCMD_TYPE を上書きします。