

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Beispiele für HyperPod Task-Governance-Befehle AWS CLI
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-cli"></a>

Sie können es HyperPod mit EKS über Kubectl oder über eine HyperPod benutzerdefinierte CLI verwenden. Sie können diese Befehle über Studio oder verwenden. AWS CLI Im Folgenden finden Sie Beispiele zur SageMaker HyperPod Task-Governance, die zeigen, wie Sie Clusterdetails mithilfe der HyperPod AWS CLI Befehle anzeigen können. Weitere Informationen, einschließlich der Installation, finden Sie im [HyperPod CLI-Github-Repository](https://github.com/aws/sagemaker-hyperpod-cli).

**Topics**
+ [Informationen zum Cluster-Accelerator-Gerätekontingent](#hp-eks-cli-get-clusters)
+ [Senden Sie einen Job an eine von SageMaker KI verwaltete Warteschlange und einen Namespace](#hp-eks-cli-start-job)
+ [Auflisten von Aufträgen](#hp-eks-cli-list-jobs)
+ [Detaillierte Informationen zum Auftrag](#hp-eks-cli-get-job)
+ [Jobs aussetzen und die Aussetzung rückgängig machen](#hp-eks-cli-patch-job)
+ [Debuggen von Aufträgen](#hp-eks-cli-other)

## Informationen zum Cluster-Accelerator-Gerätekontingent
<a name="hp-eks-cli-get-clusters"></a>

Mit dem folgenden Beispielbefehl werden Informationen zum Cluster Accelerator-Gerätekontingent abgerufen.

```
hyperpod get-clusters -n hyperpod-ns-test-team
```

Der Namespace in diesem Beispiel, `hyperpod-ns-test-team`, wird in Kubernetes auf Grundlage des angegebenen Teamnamens, `test-team`, erstellt, wenn die Rechenzuweisung erstellt wird. Weitere Informationen finden Sie unter [Richtlinien bearbeiten](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md).

Beispielantwort:

```
[
    {
        "Cluster": "hyperpod-eks-test-cluster-id",
        "InstanceType": "ml.g5.xlarge",
        "TotalNodes": 2,
        "AcceleratorDevicesAvailable": 1,
        "NodeHealthStatus=Schedulable": 2,
        "DeepHealthCheckStatus=Passed": "N/A",
        "Namespaces": {
            "hyperpod-ns-test-team": {
                "TotalAcceleratorDevices": 1,
                "AvailableAcceleratorDevices": 1
            }
        }
    }
]
```

## Senden Sie einen Job an eine von SageMaker KI verwaltete Warteschlange und einen Namespace
<a name="hp-eks-cli-start-job"></a>

Der folgende Beispielbefehl sendet einen Job an Ihren Cluster. HyperPod Wenn Sie nur Zugriff auf ein Team haben, HyperPod AWS CLI wird Ihnen die Warteschlange in diesem Fall automatisch zugewiesen. Andernfalls, wenn mehrere Warteschlangen entdeckt werden, zeigen wir dir alle praktikablen Optionen an, die du auswählen kannst.

```
hyperpod start-job --job-name hyperpod-cli-test --job-kind kubeflow/PyTorchJob --image docker.io/kubeflowkatib/pytorch-mnist-cpu:v1beta1-bc09cfd --entry-script /opt/pytorch-mnist/mnist.py --pull-policy IfNotPresent --instance-type ml.g5.xlarge --node-count 1 --tasks-per-node 1 --results-dir ./result --priority training-priority
```

Die Prioritätsklassen sind in der **Clusterrichtlinie** definiert, die festlegt, wie Aufgaben priorisiert und ungenutzte Rechenleistung zugewiesen wird. Wenn ein Datenwissenschaftler einen Auftrag einreicht, verwendet er einen der Prioritätsklassen-Namen im Format `priority-class-name-priority`. `training-priority`Bezieht sich in diesem Beispiel auf die Prioritätsklasse mit dem Namen „Training“. Weitere Informationen zu Richtlinienkonzepten finden Sie unter [Richtlinien](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

Wenn keine Prioritätsklasse angegeben ist, wird der Job als Job mit niedriger Priorität behandelt, wobei der Wert 0 für die Aufgabenrangfolge lautet. 

Wenn eine Prioritätsklasse angegeben ist, diese aber keiner der in der **Clusterrichtlinie** definierten Prioritätsklassen entspricht, schlägt die Übermittlung fehl und eine Fehlermeldung gibt die definierten Prioritätsklassen an.

Sie können den Job auch mithilfe einer YAML-Konfigurationsdatei mithilfe des folgenden -Befehls einreichen: 

```
hyperpod start-job --config-file ./yaml-configuration-file-name.yaml
```

Im Folgenden finden Sie ein Beispiel für eine YAML-Konfigurationsdatei, die dem oben beschriebenen Einreichen eines Jobs entspricht.

```
defaults:
  - override hydra/job_logging: stdout
hydra:
  run:
    dir: .
  output_subdir: null
training_cfg:
  entry_script: /opt/pytorch-mnist/mnist.py
  script_args: []
  run:
    name: hyperpod-cli-test
    nodes: 1
    ntasks_per_node: 1
cluster:
  cluster_type: k8s
  instance_type: ml.g5.xlarge
  custom_labels:
    kueue.x-k8s.io/priority-class: training-priority
  cluster_config:
    label_selector:
      required:
        sagemaker.amazonaws.com/node-health-status:
          - Schedulable
      preferred:
        sagemaker.amazonaws.com/deep-health-check-status:
          - Passed
      weights:
        - 100
    pullPolicy: IfNotPresent
base_results_dir: ./result
container: docker.io/kubeflowkatib/pytorch-mnist-cpu:v1beta1-bc09cfd
env_vars:
  NCCL_DEBUG: INFO
```

Alternativ können Sie einen Job einreichen, indem Sie sicherstellen`kubectl`, dass die Aufgabe auf der Registerkarte **Dashboard** angezeigt wird. Nachfolgend finden Sie ein Beispiel für einen kubectl-Befehl.

```
kubectl apply -f ./yaml-configuration-file-name.yaml
```

Geben Sie beim Absenden des Jobs den Namen Ihrer Warteschlange und die Bezeichnungen der Prioritätsklassen an. Zum Beispiel müssen Sie zusammen mit dem Namen der Warteschlange `hyperpod-ns-team-name-localqueue` und der Prioritätsklasse `priority-class-name-priority` die folgenden Labels angeben:
+ `kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue` 
+ `kueue.x-k8s.io/priority-class: priority-class-name-priority`

**Der folgende YAML-Konfigurationsausschnitt zeigt, wie Sie Ihrer ursprünglichen Konfigurationsdatei Labels hinzufügen, um sicherzustellen, dass Ihre Aufgabe auf der Registerkarte Dashboard angezeigt wird:**

```
metadata:
    name: job-name
    namespace: hyperpod-ns-team-name
    labels:
        kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
        kueue.x-k8s.io/priority-class: priority-class-name-priority
```

## Auflisten von Aufträgen
<a name="hp-eks-cli-list-jobs"></a>

Der folgende Befehl listet die Jobs und ihre Details auf.

```
hyperpod list-jobs
```

Beispielantwort:

```
{
    "jobs": [
        {
            "Name": "hyperpod-cli-test",
            "Namespace": "hyperpod-ns-test-team",
            "CreationTime": "2024-11-18T21:21:15Z",
            "Priority": "training",
            "State": "Succeeded"
        }
    ]
}
```

## Detaillierte Informationen zum Auftrag
<a name="hp-eks-cli-get-job"></a>

Der folgende Befehl stellt die Details eines Jobs bereit. Wenn kein Namespace angegeben ist, HyperPod AWS CLI wird ein von SageMaker AI verwalteter Namespace abgerufen, auf den Sie Zugriff haben.

```
hyperpod get-job --job-name hyperpod-cli-test
```

Beispielantwort:

```
{
    "Name": "hyperpod-cli-test",
    "Namespace": "hyperpod-ns-test-team",
    "Label": {
        "app": "hyperpod-cli-test",
        "app.kubernetes.io/managed-by": "Helm",
        "kueue.x-k8s.io/priority-class": "training"
    },
    "CreationTimestamp": "2024-11-18T21:21:15Z",
    "Status": {
        "completionTime": "2024-11-18T21:25:24Z",
        "conditions": [
            {
                "lastTransitionTime": "2024-11-18T21:21:15Z",
                "lastUpdateTime": "2024-11-18T21:21:15Z",
                "message": "PyTorchJob hyperpod-cli-test is created.",
                "reason": "PyTorchJobCreated",
                "status": "True",
                "type": "Created"
            },
            {
                "lastTransitionTime": "2024-11-18T21:21:17Z",
                "lastUpdateTime": "2024-11-18T21:21:17Z",
                "message": "PyTorchJob hyperpod-ns-test-team/hyperpod-cli-test is running.",
                "reason": "PyTorchJobRunning",
                "status": "False",
                "type": "Running"
            },
            {
                "lastTransitionTime": "2024-11-18T21:25:24Z",
                "lastUpdateTime": "2024-11-18T21:25:24Z",
                "message": "PyTorchJob hyperpod-ns-test-team/hyperpod-cli-test successfully completed.",
                "reason": "PyTorchJobSucceeded",
                "status": "True",
                "type": "Succeeded"
            }
        ],
            "replicaStatuses": {
                "Worker": {
                    "selector": "training.kubeflow.org/job-name=hyperpod-cli-test,training.kubeflow.org/operator-name=pytorchjob-controller,training.kubeflow.org/replica-type=worker",
                    "succeeded": 1
                }
            },
        "startTime": "2024-11-18T21:21:15Z"
    },
    "ConsoleURL": "https://us-west-2.console.aws.amazon.com/sagemaker/home?region=us-west-2#/cluster-management/hyperpod-eks-test-cluster-id“
}
```

## Jobs aussetzen und die Aussetzung rückgängig machen
<a name="hp-eks-cli-patch-job"></a>

Wenn Sie einen eingereichten Job aus dem Scheduler entfernen möchten, HyperPod AWS CLI bietet dieser `suspend` Befehl, um den Job vorübergehend aus der Orchestrierung zu entfernen. Der unterbrochene Job wird nicht mehr geplant, es sei denn, der Job wird manuell durch den Befehl aufgehoben `unsuspend`

Um einen Job vorübergehend auszusetzen:

```
hyperpod patch-job suspend --job-name hyperpod-cli-test
```

Um einen Job wieder zur Warteschlange hinzuzufügen:

```
hyperpod patch-job unsuspend --job-name hyperpod-cli-test
```

## Debuggen von Aufträgen
<a name="hp-eks-cli-other"></a>

Der bietet HyperPod AWS CLI auch andere Befehle, mit denen Sie Probleme bei der Auftragsübermittlung beheben können. Zum Beispiel `list-pods` und `get-logs` im HyperPod AWS CLI Github-Repository.