运行 Paddle 作业

运行 Kueue 调度的 PaddleJob

此页面展示了在运行 Training Operator PaddleJobs 时如何利用 Kueue 的调度和资源管理功能。

本指南适用于对 Kueue 有基本了解的 批处理用户。有关更多信息,请参阅 Kueue 概述

开始之前

查看管理集群配额了解初始集群设置的详细信息。

查看训练操作员安装指南

请注意,最低要求的训练操作员版本为 v1.7.0。

您可以修改已安装版本的 kueue 配置,将 PaddleJobs 包含为允许的工作负载。

PaddleJob 定义

a. 队列选择

目标本地队列应在 PaddleJob 配置的 metadata.labels 部分中指定。

metadata:
  labels:
    kueue.x-k8s.io/queue-name: user-queue

b. 在 PaddleJobs 中选择性设置挂起字段

spec:
  runPolicy:
    suspend: true

默认情况下,Kueue 会通过 webhook 将 suspend 设置为 true,并在 PaddleJob 被接纳时取消挂起。

示例 PaddleJob

此示例基于 https://github.com/kubeflow/training-operator/blob/288d680a699237fb61a74ada005e202721815ff2/examples/paddlepaddle/simple-cpu.yaml

apiVersion: kubeflow.org/v1
kind: PaddleJob
metadata:
  name: paddle-simple-cpu
  namespace: default
  labels:
    kueue.x-k8s.io/queue-name: user-queue
spec:
  paddleReplicaSpecs:
    Worker:
      replicas: 2
      restartPolicy: OnFailure
      template:
        spec:
          containers:
            - name: paddle
              image: registry.baidubce.com/paddlepaddle/paddle:2.5.1
              command:
                - python
              args:
                - "-m"
                - paddle.distributed.launch
                - "run_check"
              ports:
                - containerPort: 37777
                  name: master
              imagePullPolicy: Always
              resources:
                requests:
                  cpu: 1
                  memory: "256Mi"