

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejemplos de comandos de gobierno AWS CLI de HyperPod tareas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-cli"></a>

Puede usarlo HyperPod con EKS a través de Kubectl o mediante una CLI personalizada HyperPod. Puede utilizar estos comandos a través de Studio o. AWS CLI A continuación, se proporcionan ejemplos de gobierno de SageMaker HyperPod tareas sobre cómo ver los detalles del clúster mediante los HyperPod AWS CLI comandos. Para obtener más información, incluida la forma de instalación, consulte el [repositorio HyperPod CLI de Github](https://github.com/aws/sagemaker-hyperpod-cli).

**Topics**
+ [

## Obtención de información sobre la cuota de dispositivos aceleradores de clústeres
](#hp-eks-cli-get-clusters)
+ [

## Envíe un trabajo a una cola y un espacio de nombres SageMaker gestionados por la IA
](#hp-eks-cli-start-job)
+ [

## Enumeración de trabajos
](#hp-eks-cli-list-jobs)
+ [

## Obtención de información detallada sobre un trabajo
](#hp-eks-cli-get-job)
+ [

## Suspensión y anulación de la suspensión de trabajos
](#hp-eks-cli-patch-job)
+ [

## Trabajos de depuración
](#hp-eks-cli-other)

## Obtención de información sobre la cuota de dispositivos aceleradores de clústeres
<a name="hp-eks-cli-get-clusters"></a>

El siguiente comando de ejemplo obtiene la información sobre la cuota de dispositivos aceleradores de clústeres.

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

El espacio de nombres de este ejemplo, `hyperpod-ns-test-team`, se crea en Kubernetes en función del nombre del equipo proporcionado al crear la asignación de recursos de computación `test-team`. Para obtener más información, consulte [Edición de políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md).

Ejemplo de respuesta:

```
[
    {
        "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
            }
        }
    }
]
```

## Envíe un trabajo a una cola y un espacio de nombres SageMaker gestionados por la IA
<a name="hp-eks-cli-start-job"></a>

El siguiente comando de ejemplo envía un trabajo a tu clúster. HyperPod Si solo tienes acceso a un equipo, en ese caso te HyperPod AWS CLI asignarán automáticamente la cola. De lo contrario, si se descubren varias colas, le mostraremos todas las opciones posibles para que las seleccione.

```
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
```

Las clases de prioridad se definen en la **Política de clústeres**, que indica cómo se priorizan las tareas y cómo se asignan los recursos computacionales inactivos. Cuando un científico de datos envía un trabajo, utiliza uno de los nombres de las clases de prioridad con el formato `priority-class-name-priority`. En este ejemplo, `training-priority` hace referencia a la clase de prioridad denominada “training”. Para obtener más información sobre los conceptos de las políticas, consulte [Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

Si no se especifica ninguna clase de prioridad, el trabajo se trata como un trabajo de prioridad baja con un valor de clasificación de tareas de 0. 

Si se especifica una clase de prioridad, pero no se corresponde con ninguna de las clases de prioridad definidas en la **Política de clústeres**, el envío no se realizará correctamente y aparecerá un mensaje de error con el conjunto definido de clases de prioridad.

También puede enviar el trabajo con un archivo de configuración YAML con el siguiente comando: 

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

El siguiente es un ejemplo de un archivo de configuración YAML que equivale a enviar un trabajo, tal y como se ha descrito anteriormente.

```
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
```

Como alternativa, puede enviar un trabajo utilizando `kubectl` para asegurarse de que la tarea aparezca en la pestaña **Panel**. A continuación se muestra un comando kubectl de ejemplo.

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

Al enviar el trabajo, incluya el nombre de la cola y las etiquetas de clase de prioridad. Por ejemplo, con el nombre de la cola `hyperpod-ns-team-name-localqueue` y la clase de prioridad `priority-class-name-priority`, debe incluir las siguientes etiquetas:
+ `kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue` 
+ `kueue.x-k8s.io/priority-class: priority-class-name-priority`

En el siguiente fragmento de configuración de YAML, se muestra cómo añadir etiquetas al archivo de configuración original para garantizar que la tarea aparezca en la pestaña **Panel**:

```
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
```

## Enumeración de trabajos
<a name="hp-eks-cli-list-jobs"></a>

El siguiente comando enumera los trabajos y sus detalles.

```
hyperpod list-jobs
```

Ejemplo de respuesta:

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

## Obtención de información detallada sobre un trabajo
<a name="hp-eks-cli-get-job"></a>

El siguiente comando proporciona los detalles de un trabajo. Si no se especifica ningún espacio de nombres, HyperPod AWS CLI buscará un espacio de nombres gestionado por la SageMaker IA al que tengas acceso.

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

Ejemplo de respuesta:

```
{
    "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“
}
```

## Suspensión y anulación de la suspensión de trabajos
<a name="hp-eks-cli-patch-job"></a>

Si quieres eliminar algún trabajo enviado del planificador, HyperPod AWS CLI proporciona un `suspend` comando para eliminar temporalmente el trabajo de la organización. El trabajo suspendido ya no se programará a menos que el comando anule la suspensión del trabajo manualmente con el comando de la `unsuspend`.

Para suspender temporalmente un trabajo:

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

Para volver a añadir un trabajo a la cola:

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

## Trabajos de depuración
<a name="hp-eks-cli-other"></a>

 HyperPod AWS CLI También proporciona otros comandos para depurar los problemas de envío de trabajos. Por ejemplo, `list-pods` y `get-logs` en el repositorio de HyperPod AWS CLI Github.