4.4. JobSet Operator を使用したワークロードの管理


OpenShift Container Platform の JobSet Operator を使用すると、高性能コンピューティング (HPC) や AI トレーニングなどの大規模で協調的なワークロードを管理および実行できます。マルチテンプレートジョブのサポートや安定したネットワーク接続といった機能は、迅速な復旧とリソースの効率的な利用に役立ちます。

4.4.1. ジョブセットのデプロイ

JobSet Operator を使用すると、JobSet をデプロイして、大規模で協調的なワークロードを管理および実行できます。

前提条件

  • JobSet Operator をインストールしました。
  • NVIDIA 製 GPU を搭載したクラスターが利用可能です。

手順

  1. 次のコマンドを実行して新しいプロジェクトを作成します。

    $ oc new-project <my_namespace>
  2. jobset.yaml という名前のファイルを作成します。

    apiVersion: jobset.x-k8s.io/v1alpha2
    kind: JobSet
    metadata:
      name: pytorch
    spec:
      replicatedJobs:
      - name: workers
        template:
          spec:
            parallelism: <pods_running_number>
            completions: <pods_finish_number>
            backoffLimit: 0
            template:
              spec:
                imagePullSecrets:
                  - name: my-registry-secret
                initContainers:
                  - name: prepare
                    image: docker.io/alpine/git:v2.52.0
                    args: ['clone', 'https://github.com/pytorch/examples']
                    volumeMounts:
                      - name: workdir
                        mountPath: /git
                containers:
                  - name: pytorch
                    image: docker.io/pytorch/pytorch:2.10.0-cuda13.0-cudnn9-runtime
                    resources:
                      limits:
                        nvidia.com/gpu: "1"
                      requests:
                        nvidia.com/gpu: "1"
                    ports:
                    - containerPort: 4321
                    env:
                    - name: MASTER_ADDR
                      value: "pytorch-workers-0-0.pytorch"
                    - name: MASTER_PORT
                      value: "4321"
                    - name: RANK
                      valueFrom:
                        fieldRef:
                          fieldPath: metadata.annotations['batch.kubernetes.io/job-completion-index']
                    - name: PYTHONUNBUFFERED
                      value: "0"
                    command:
                    - /bin/sh
                    - -c
                    - |
                      cd examples/distributed/ddp-tutorial-series
                      torchrun --nproc_per_node=1 --nnodes=3 --rdzv_id=100 --rdzv_backend=c10d --rdzv_endpoint=$MASTER_ADDR:$MASTER_PORT multinode.py 1000 100
                    volumeMounts:
                      - name: workdir
                        mountPath: /workspace
                volumes:
                  - name: workdir
                    emptyDir: {}

    各項目の説明:

    <pods_running_number>
    同時に実行される Pod の数を指定します。
    <pods_finish_number>
    ジョブが完了したとみなされるために、正常に完了する必要のある Pod の総数を指定します。
  3. 以下のコマンドを実行して、JobSet の設定を適用してください。

    $ oc apply -f jobset.yaml

検証

  • 以下のコマンドを実行して、Pod が起動したことを確認してください。

    $ oc get pods -n <my_namespace>

    出力例

    NAME                        READY   STATUS    RESTARTS   AGE
    pytorch-workers-0-0-2lzwt   1/1     Running   0          2m17s
    pytorch-workers-0-1-g2lrv   1/1     Running   0          2m17s
    pytorch-workers-0-2-dpljq   1/1     Running   0          2m17s

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る