

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplos de AWS CLI comandos de governança de HyperPod tarefas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-cli"></a>

Você pode usar HyperPod com o EKS por meio do Kubectl ou da HyperPod CLI personalizada. Você pode usar esses comandos por meio do Studio ou AWS CLI. Veja a seguir exemplos de governança de SageMaker HyperPod tarefas sobre como visualizar detalhes do cluster usando os HyperPod AWS CLI comandos. Para obter mais informações, incluindo como instalar, consulte o repositório [HyperPod CLI do Github](https://github.com/aws/sagemaker-hyperpod-cli).

**Topics**
+ [

## Obter informações sobre a cota do acelerador de clusters
](#hp-eks-cli-get-clusters)
+ [

## Envie um trabalho para uma fila e um SageMaker namespace gerenciados por IA
](#hp-eks-cli-start-job)
+ [

## Listar tarefas
](#hp-eks-cli-list-jobs)
+ [

## Obter informações detalhadas de um trabalho
](#hp-eks-cli-get-job)
+ [

## Suspender e cancelar a suspensão de trabalhos
](#hp-eks-cli-patch-job)
+ [

## Depurar trabalhos
](#hp-eks-cli-other)

## Obter informações sobre a cota do acelerador de clusters
<a name="hp-eks-cli-get-clusters"></a>

O comando de exemplo a seguir obtém as informações sobre a cota do dispositivo do acelerador de cluster.

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

O namespace neste exemplo, `hyperpod-ns-test-team`, é criado no Kubernetes com base no nome fornecido da equipe, `test-team`, quando a alocação de computação é criada. Para obter mais informações, consulte [Editar políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md).

Exemplo de resposta:

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

## Envie um trabalho para uma fila e um SageMaker namespace gerenciados por IA
<a name="hp-eks-cli-start-job"></a>

O comando de exemplo a seguir envia um trabalho para seu HyperPod cluster. Se você tiver acesso a apenas uma equipe, eles HyperPod AWS CLI atribuirão automaticamente a fila para você nesse caso. Do contrário, se várias filas forem descobertas, exibiremos todas as opções viáveis para você selecionar.

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

As classes prioritárias são definidas em **política de cluster**, que define como as tarefas são priorizadas e a computação ociosa é alocada. Quando um cientista de dados envia um trabalho, ele usa um dos nomes da classe prioritária com o formato `priority-class-name-priority`. Neste exemplo, `training-priority` refere-se à classe prioritária chamada “treinamento”. Para ter mais informações sobre conceitos de política, consulte [Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

Se não for especificada uma classe de prioritária, o trabalho será tratado como de baixa prioridade, com um valor de classificação de tarefas de 0. 

Se uma classe prioritária for especificada, mas não corresponder a uma das classes prioritárias definidas em **Política de cluster**, o envio falhará e uma mensagem de erro apresentará o conjunto definido de classes prioritárias.

Você também pode enviar o trabalho usando um arquivo de configuração YAML com o seguinte comando: 

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

Veja a seguir um exemplo de arquivo de configuração YAML equivalente ao envio de um trabalho, conforme discutido acima.

```
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, você pode enviar um trabalho usando o `kubectl` para garantir que a tarefa apareça na guia **Painel**. O comando a seguir é um exemplo de comando kubectl.

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

Ao enviar o trabalho, inclua o nome da fila e os rótulos da classe prioritária. Por exemplo, com o nome da fila `hyperpod-ns-team-name-localqueue` e a classe de prioritária `priority-class-name-priority`, você deve incluir os seguintes rótulos:
+ `kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue` 
+ `kueue.x-k8s.io/priority-class: priority-class-name-priority`

O seguinte trecho de configuração YAML demonstra como adicionar rótulos ao seu arquivo de configuração original para garantir que sua tarefa apareça na guia **Painel**.

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

## Listar tarefas
<a name="hp-eks-cli-list-jobs"></a>

O comando a seguir lista os trabalhos e os respectivos detalhes.

```
hyperpod list-jobs
```

Exemplo de resposta:

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

## Obter informações detalhadas de um trabalho
<a name="hp-eks-cli-get-job"></a>

O comando a seguir fornece os detalhes de um trabalho. Se nenhum namespace for especificado, HyperPod AWS CLI buscará um namespace gerenciado pela SageMaker IA ao qual você tenha acesso.

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

Exemplo de resposta:

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

## Suspender e cancelar a suspensão de trabalhos
<a name="hp-eks-cli-patch-job"></a>

Se você quiser remover algum trabalho enviado do agendador, HyperPod AWS CLI fornece o `suspend` comando para remover temporariamente o trabalho da orquestração. O trabalho suspenso não será mais agendado, a menos que ele seja cancelado manualmente pelo comando `unsuspend`.

Para suspender temporariamente um trabalho:

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

Para adicionar um trabalho de volta à fila:

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

## Depurar trabalhos
<a name="hp-eks-cli-other"></a>

O HyperPod AWS CLI também fornece outros comandos para você depurar problemas de envio de trabalhos. Por exemplo, `list-pods` e `get-logs` no repositório HyperPod AWS CLI Github.