

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á.

# SageMaker HyperPod governança de tarefas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance"></a>

SageMaker HyperPod a governança de tarefas é um sistema de gerenciamento robusto projetado para simplificar a alocação de recursos e garantir a utilização eficiente dos recursos computacionais entre equipes e projetos para seus clusters do Amazon EKS. Isso permite que os administradores definam:
+ Níveis de prioridade para diferentes tarefas
+ Alocação de recursos computacionais para cada equipe
+ Como as equipes compartilham e utilizam recursos ociosos
+ Se uma equipe pode interromper suas próprias tarefas

HyperPod a governança de tarefas também fornece a observabilidade do cluster Amazon EKS, oferecendo visibilidade em tempo real da capacidade do cluster. Isso inclui a disponibilidade e o uso de computação, a alocação e a utilização por equipe, além de informações sobre o tempo de execução e de espera das tarefas, permitindo uma tomada de decisão informada e um gerenciamento proativo dos recursos. 

As seções a seguir abordam como configurar, entender os principais conceitos e usar a governança de HyperPod tarefas para seus clusters do Amazon EKS.

**Topics**
+ [Configuração para governança de SageMaker HyperPod tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md)
+ [Painel](sagemaker-hyperpod-eks-operate-console-ui-governance-metrics.md)
+ [Tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-tasks.md)
+ [Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md)
+ [Exemplos de AWS CLI comandos de governança de HyperPod tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md)
+ [Solução de problemas](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md)
+ [Documento de atribuição para a governança de tarefas da Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-governance-attributions.md)

# Configuração para governança de SageMaker HyperPod tarefas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup"></a>

A seção a seguir fornece informações sobre como configurar o Amazon CloudWatch Observability EKS e os complementos de governança de SageMaker HyperPod tarefas.

Certifique-se de ter a política de permissão mínima para administradores de HyperPod cluster com o Amazon EKS, em[Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Isso inclui permissões para executar o SageMaker HyperPod núcleo APIs e gerenciar SageMaker HyperPod clusters dentro do seu Conta da AWS, executando as tarefas em[Gerenciamento de SageMaker HyperPod clusters orquestrados pelo Amazon EKS](sagemaker-hyperpod-eks-operate.md). 

**Topics**
+ [Configuração do painel](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md)
+ [Configuração da governança de tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance.md)

# Configuração do painel
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard"></a>

Use as informações a seguir para configurar o complemento Amazon SageMaker HyperPod Amazon CloudWatch Observability EKS. Com isso, você tem acesso a um painel visual detalhado que oferece uma visão das métricas de hardware, alocação de equipe e tarefas do cluster do EKS.

Se estiver encontrando problemas na configuração, consulte [Solução de problemas](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md) para ver soluções de problemas conhecidas.

**Topics**
+ [HyperPod Pré-requisitos do complemento Amazon CloudWatch Observability EKS](#hp-eks-dashboard-prerequisites)
+ [HyperPod Configuração do complemento Amazon CloudWatch Observability EKS](#hp-eks-dashboard-setup)

## HyperPod Pré-requisitos do complemento Amazon CloudWatch Observability EKS
<a name="hp-eks-dashboard-prerequisites"></a>

A seção a seguir apresenta os pré-requisitos que devem ser atendidos antes de instalar o complemento de observabilidade do Amazon EKS.
+ Certifique-se de ter a política de permissão mínima para administradores de HyperPod cluster, em[Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin).
+ Anexe a política do IAM `CloudWatchAgentServerPolicy` aos nós de processamento. Para fazer isso, insira o comando a seguir. Substitua `my-worker-node-role` pelo perfil do IAM usado pelos nós de processamento do Kubernetes.

  ```
  aws iam attach-role-policy \
  --role-name my-worker-node-role \
  --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
  ```

## HyperPod Configuração do complemento Amazon CloudWatch Observability EKS
<a name="hp-eks-dashboard-setup"></a>

Use as seguintes opções para configurar o complemento Amazon SageMaker HyperPod Amazon CloudWatch Observability EKS.

------
#### [ Setup using the SageMaker AI console ]

As permissões a seguir são necessárias para configurar e visualizar o painel de controle de HyperPod tarefas. Esta seção expande as permissões listadas em [Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). 

Para gerenciar a governança de tarefas, use o exemplo de política:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListClusters",
                "sagemaker:DescribeCluster",
                "sagemaker:ListComputeQuotas",
                "sagemaker:CreateComputeQuota",
                "sagemaker:UpdateComputeQuota",
                "sagemaker:DescribeComputeQuota",
                "sagemaker:DeleteComputeQuota",
                "sagemaker:ListClusterSchedulerConfigs",
                "sagemaker:DescribeClusterSchedulerConfig",
                "sagemaker:CreateClusterSchedulerConfig",
                "sagemaker:UpdateClusterSchedulerConfig",
                "sagemaker:DeleteClusterSchedulerConfig",
                "eks:ListAddons",
                "eks:CreateAddon",
                "eks:DescribeAddon",
                "eks:DescribeCluster",
                "eks:DescribeAccessEntry",
                "eks:ListAssociatedAccessPolicies",
                "eks:AssociateAccessPolicy",
                "eks:DisassociateAccessPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Para conceder permissões para gerenciar o Amazon CloudWatch Observability (Amazon EKS) e visualizar o painel do HyperPod cluster por meio do console de SageMaker IA, use o exemplo de política abaixo:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:ListAddons",
                "eks:CreateAddon",
                "eks:UpdateAddon",
                "eks:DescribeAddon",
                "eks:DescribeAddonVersions",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListClusters",
                "sagemaker:ListComputeQuotas",
                "sagemaker:DescribeComputeQuota",
                "sagemaker:ListClusterSchedulerConfigs",
                "sagemaker:DescribeClusterSchedulerConfig",
                "eks:DescribeCluster",
                "cloudwatch:GetMetricData",
                "eks:AccessKubernetesApi"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Navegue até a guia **Painel** no SageMaker HyperPod console para instalar o Amazon CloudWatch Observability EKS. Para garantir que as métricas relacionadas à governança de tarefas sejam incluídas no **Painel**, marque a caixa de seleção de métricas do Kueue. Ativar as métricas do Kueue ativa os custos CloudWatch **das métricas**, após o limite do nível gratuito ser atingido. Para obter mais informações, consulte **Métricas** nos [ CloudWatchpreços da Amazon](https://aws.amazon.com/cloudwatch/pricing/).

------
#### [ Setup using the EKS AWS CLI ]

Use o seguinte AWS CLI comando EKS para instalar o complemento:

```
aws eks create-addon --cluster-name cluster-name 
--addon-name amazon-cloudwatch-observability 
--configuration-values "configuration json"
```

Abaixo é apresentado um exemplo de JSON dos valores de configuração:

```
{
    "agent": {
        "config": {
            "logs": {
                "metrics_collected": {
                    "kubernetes": {
                        "kueue_container_insights": true,
                        "enhanced_container_insights": true
                    },
                    "application_signals": { }
                }
            },
            "traces": {
                "traces_collected": {
                    "application_signals": { }
                }
            }
        },
    },
}
```

------
#### [ Setup using the EKS Console UI ]

1. Navegue até o [console do EKS](https://console.aws.amazon.com/eks/home#/clusters).

1. Escolha seu cluster.

1. Escolha **Complementos**.

1. Encontre o complemento **Amazon CloudWatch Observability** e instale. Instale a versão >= 2.4.0 do complemento. 

1. Inclua os seguintes valores de configuração JSON:

   ```
   {
       "agent": {
           "config": {
               "logs": {
                   "metrics_collected": {
                       "kubernetes": {
                           "kueue_container_insights": true,
                           "enhanced_container_insights": true
                       },
                       "application_signals": { }
                   },
               },
               "traces": {
                   "traces_collected": {
                       "application_signals": { }
                   }
               }
           },
       },
   }
   ```

------

Depois que o complemento EKS Observability for instalado com sucesso, você poderá visualizar as métricas do cluster EKS na guia **Painel** do HyperPod console.

# Configuração da governança de tarefas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance"></a>

Esta seção inclui informações sobre como configurar o complemento EKS de governança de SageMaker HyperPod tarefas da Amazon. Isso inclui a concessão de permissões que possibilitam definir a priorização de tarefas, a alocação de computação a equipes, como a computação ociosa é compartilhada e a preempção de tarefas para equipes.

Se estiver encontrando problemas na configuração, consulte [Solução de problemas](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md) para ver soluções de problemas conhecidas.

**Topics**
+ [Configurações do Kueue](#hp-eks-task-governance-kueue-settings)
+ [HyperPod Pré-requisitos de governança de tarefas](#hp-eks-task-governance-prerequisites)
+ [HyperPod configuração de governança de tarefas](#hp-eks-task-governance-setup)

## Configurações do Kueue
<a name="hp-eks-task-governance-kueue-settings"></a>

HyperPod O complemento EKS de governança de tarefas instala o [Kueue para seus clusters EKS](https://github.com/kubernetes-sigs/kueue/tree/main/apis/kueue). HyperPod O Kueue é um sistema nativo do Kubernetes que gerencia cotas e de que forma os trabalhos as consomem. 


| Versão complementar de governança de HyperPod tarefas do EKS | Versão do Kueue que é instalada como parte do complemento | 
| --- | --- | 
|  v1.1.3  |  v0.12.0  | 

**nota**  
O Kueue v.012.0 e superior não são incluídos kueue-rbac-proxy como parte da instalação. Versões anteriores podem ter sido kueue-rbac-proxy instaladas. Por exemplo, se você estiver usando o Kueue v0.8.1, talvez tenha o v0.18.1. kueue-rbac-proxy

HyperPod a governança de tarefas aproveita o Kueue para enfileiramento, agendamento e gerenciamento de cotas de trabalhos nativos do Kubernetes e é instalada com o complemento EKS de governança de tarefas. HyperPod Quando instalado, HyperPod cria e modifica recursos Kubernetes SageMaker gerenciados por IA`KueueManagerConfig`, como,,, e. `ClusterQueues` `LocalQueues` `WorkloadPriorityClasses` `ResourceFlavors` `ValidatingAdmissionPolicies` Embora os administradores do Kubernetes tenham a flexibilidade de modificar o estado desses recursos, é possível que qualquer alteração feita em um recurso SageMaker gerenciado por IA seja atualizada e substituída pelo serviço.

As informações a seguir descrevem as configurações utilizadas pelo complemento de governança de HyperPod tarefas para configurar o Kueue.

```
  apiVersion: config.kueue.x-k8s.io/v1beta1
    kind: Configuration
    health:
      healthProbeBindAddress: :8081
    metrics:
      bindAddress: :8443
      enableClusterQueueResources: true
    webhook:
      port: 9443
    manageJobsWithoutQueueName: false
    leaderElection:
      leaderElect: true
      resourceName: c1f6bfd2.kueue.x-k8s.io
    controller:
      groupKindConcurrency:
        Job.batch: 5
        Pod: 5
        Workload.kueue.x-k8s.io: 5
        LocalQueue.kueue.x-k8s.io: 1
        ClusterQueue.kueue.x-k8s.io: 1
        ResourceFlavor.kueue.x-k8s.io: 1
    clientConnection:
      qps: 50
      burst: 100
    integrations:
      frameworks:
      - "batch/job"
      - "kubeflow.org/mpijob"
      - "ray.io/rayjob"
      - "ray.io/raycluster"
      - "jobset.x-k8s.io/jobset"
      - "kubeflow.org/mxjob"
      - "kubeflow.org/paddlejob"
      - "kubeflow.org/pytorchjob"
      - "kubeflow.org/tfjob"
      - "kubeflow.org/xgboostjob"
      - "pod"
      - "deployment"
      - "statefulset"
      - "leaderworkerset.x-k8s.io/leaderworkerset"
      podOptions:
        namespaceSelector:
          matchExpressions:
            - key: kubernetes.io/metadata.name
              operator: NotIn
              values: [ kube-system, kueue-system ]
    fairSharing:
      enable: true
      preemptionStrategies: [LessThanOrEqualToFinalShare, LessThanInitialShare]
    resources:
      excludeResourcePrefixes: []
```

Para ter mais informações sobre cada entrada da configuração, consulte [Configuration](https://kueue.sigs.k8s.io/docs/reference/kueue-config.v1beta1/#Configuration) na documentação do Kueue.

## HyperPod Pré-requisitos de governança de tarefas
<a name="hp-eks-task-governance-prerequisites"></a>
+ Certifique-se de ter a política de permissão mínima para administradores de HyperPod cluster, em[Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Isso inclui permissões para executar o SageMaker HyperPod núcleo APIs, gerenciar SageMaker HyperPod clusters dentro do seu Conta da AWS e realizar as tarefas em[Gerenciamento de SageMaker HyperPod clusters orquestrados pelo Amazon EKS](sagemaker-hyperpod-eks-operate.md). 
+ Você precisará ter uma versão do Kubernetes >= 1.30. Para obter instruções, consulte [Atualizar um cluster existente para a nova versão do Kubernetes](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html).
+ Se você já tem o Kueue instalado em seus clusters, desinstale-o antes de instalar o complemento do EKS.
+ Um HyperPod nó já deve existir no cluster EKS antes de instalar o complemento de governança de HyperPod tarefas. 

## HyperPod configuração de governança de tarefas
<a name="hp-eks-task-governance-setup"></a>

A seguir, são apresentadas informações sobre como configurar a governança de HyperPod tarefas.

------
#### [ Setup using the SageMaker AI console ]

Veja a seguir informações sobre como configurar a governança de HyperPod tarefas usando o SageMaker HyperPod console.

Você já tem todas as permissões a seguir anexadas se já tiver concedido permissões para gerenciar o Amazon CloudWatch Observability EKS e visualizar o painel do HyperPod cluster por meio do console de SageMaker IA no[HyperPod Configuração do complemento Amazon CloudWatch Observability EKS](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md#hp-eks-dashboard-setup). Se você não configurou isso, use o exemplo de política abaixo para conceder permissões para gerenciar o complemento de governança de HyperPod tarefas e visualizar o painel do HyperPod cluster por meio do console de SageMaker IA.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:ListAddons",
                "eks:CreateAddon",
                "eks:UpdateAddon",
                "eks:DescribeAddon",
                "eks:DescribeAddonVersions",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListClusters",
                "eks:DescribeCluster",
                "eks:AccessKubernetesApi"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Navegue até a guia **Painel** no SageMaker HyperPod console para instalar o complemento de governança de SageMaker HyperPod tarefas da Amazon. 

------
#### [ Setup using the Amazon EKS AWS CLI ]

Use o AWS CLI comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/create-addon.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/create-addon.html)EKS de exemplo para configurar a governança de HyperPod tarefas, a API Amazon EKS e a interface do console do Amazon EKS usando AWS CLI:

```
aws eks create-addon --region region --cluster-name cluster-name --addon-name amazon-sagemaker-hyperpod-taskgovernance
```

------

Você pode ver a guia **Políticas** no console de HyperPod SageMaker IA se a instalação for bem-sucedida. Você também pode usar o seguinte exemplo de AWS CLI comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/describe-addon.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/describe-addon.html)EKS para verificar o status. 

```
aws eks describe-addon --region region --cluster-name cluster-name --addon-name amazon-sagemaker-hyperpod-taskgovernance
```

# Painel
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-metrics"></a>

A governança de SageMaker HyperPod tarefas da Amazon fornece uma visão abrangente do painel das métricas de utilização do cluster Amazon EKS, incluindo métricas de hardware, equipe e tarefas. O seguinte fornece informações sobre o painel do seu cluster HyperPod EKS.

O painel oferece uma visualização abrangente das métricas de utilização de clusters, como métricas de hardware, equipe e tarefas. Você precisará instalar o complemento do EKS para visualizar o painel. Para obter mais informações, consulte [Configuração do painel](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md).

No [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/), em **HyperPod Clusters**, você pode navegar até o HyperPod console e visualizar sua lista de HyperPod clusters na sua região. Escolha seu cluster e navegue até a guia **Painel**. O painel contém as métricas a seguir. Você pode baixar os dados de uma seção escolhendo a **exportação** correspondente.

**Utilização**

Fornece a integridade do cluster EKS point-in-time e métricas baseadas em tendências para recursos computacionais essenciais. Por padrão, **todos os grupos de instâncias** são exibidos. Use o menu suspenso para adicionar grupos de instâncias. As métricas incluídas nesta seção são:
+ Número de instâncias de recuperação totais, em execução e pendentes. O número de instâncias de recuperação pendentes refere-se ao número de instâncias que precisam de atenção para recuperação.
+ GPUs, memória GPU, CPUs memória v e v. CPUs
+ Utilização da GPU, da memória da GPU, da vCPU e da memória da vCPU.
+ Um grafo interativo da utilização da GPU e da vCPU. 

**Equipes**

Fornece informações sobre o gerenciamento de recursos específicos da equipe. Isso inclui:
+ alocação de instâncias e GPU;
+ taxas de utilização da GPU;
+ estatísticas de GPU emprestada;
+ status da tarefa (em execução ou pendente).
+ Uma visualização em gráfico de barras da utilização da GPU em comparação com a alocação de computação entre as equipes.
+ Informações detalhadas da equipe relacionadas à GPU e a vCPUs. Por padrão, as informações exibidas incluem **todas as equipes**. Você pode filtrar por equipe e instância escolhendo os menus suspensos. No gráfico interativo, você pode filtrar por horário.

**Tarefas**

**nota**  
Para visualizar suas tarefas do cluster HyperPod EKS no painel:  
Configure o Kubernetes Role-Based Access Control (RBAC) para usuários de cientistas de dados no HyperPod namespace designado para autorizar a execução de tarefas em clusters orquestrados pelo Amazon EKS. Os namespaces seguem o formato `hyperpod-ns-team-name`. Para estabelecer permissões de RBAC, consulte as [instruções sobre a criação de perfis de equipe](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
Seu trabalho deve ser enviado com o namespace apropriado e os rótulos de classe prioritária. Para ver um exemplo abrangente, consulte [Envie um trabalho para uma fila e um SageMaker namespace gerenciados por IA](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).

Fornece informações sobre métricas relacionadas a tarefas. Isso inclui o número de tarefas em execução, pendentes e antecipadas, além de estatísticas de tempo de execução e espera. Por padrão, as informações exibidas incluem **todas as equipes**. Você pode filtrar por equipe escolhendo o menu suspenso. No gráfico interativo, você pode filtrar por horário.

# Tarefas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks"></a>

Veja a seguir informações sobre as tarefas de cluster do Amazon SageMaker HyperPod EKS. Tarefas são operações ou trabalhos enviados ao cluster. Podem ser operações de machine learning, como treinamento, execução de experimentos ou inferência. A lista visível de detalhes da tarefa inclui status, tempo de execução e a quantidade de computação que está sendo usada por tarefa. 

No [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/), em **HyperPod Clusters**, você pode navegar até o HyperPod console e visualizar sua lista de HyperPod clusters na sua região. Escolha seu cluster e navegue até a guia **Tarefas**.

Para que a guia **Tarefas** possa ser visualizada por qualquer pessoa além do administrador, o administrador precisa [adicionar uma entrada de acesso ao cluster do EKS para o perfil do IAM](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html). 

**nota**  
Para visualizar suas tarefas do cluster HyperPod EKS no painel:  
Configure o Kubernetes Role-Based Access Control (RBAC) para usuários de cientistas de dados no HyperPod namespace designado para autorizar a execução de tarefas em clusters orquestrados pelo Amazon EKS. Os namespaces seguem o formato `hyperpod-ns-team-name`. Para estabelecer permissões de RBAC, consulte as [instruções sobre a criação de perfis de equipe](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
Seu trabalho deve ser enviado com o namespace apropriado e os rótulos de classe prioritária. Para ver um exemplo abrangente, consulte [Envie um trabalho para uma fila e um SageMaker namespace gerenciados por IA](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).

Para clusters EKS, as tarefas kubeflow (PyTorch, MPI, TensorFlow) são mostradas. Por padrão, PyTorch as tarefas são mostradas. Você pode filtrar por PyTorch TensorFlow tarefas MPI escolhendo o menu suspenso ou usando o campo de pesquisa. As informações mostradas para cada tarefa incluem nome, status, namespace, classe prioritária e horário de criação da tarefa. 

# Usando o agendamento com reconhecimento de topologia na governança de tarefas da Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-scheduling"></a>

O agendamento com reconhecimento de topologia na governança de tarefas SageMaker HyperPod da Amazon otimiza a eficiência do treinamento de cargas de trabalho distribuídas de aprendizado de máquina ao colocar pods com base na topologia de rede física de suas instâncias do Amazon EC2. Ao considerar a estrutura hierárquica da AWS infraestrutura, incluindo zonas de disponibilidade, blocos de rede e racks físicos, o agendamento com reconhecimento de topologia garante que os pods que exigem comunicação frequente sejam programados em estreita proximidade para minimizar a latência da rede. Esse posicionamento inteligente é particularmente benéfico para trabalhos de treinamento de aprendizado de máquina em grande escala que envolvem pod-to-pod comunicação intensiva, resultando em tempos de treinamento reduzidos e utilização mais eficiente de recursos em todo o cluster.

**nota**  
Para usar o agendamento com reconhecimento de topologia, certifique-se de que sua versão da governança de HyperPod tarefas seja v1.2.2-eksbuild.1 ou superior.

O agendamento com reconhecimento de topologia pode ser usado nos seguintes tipos de instância:
+ ml.p3dn.24xlarge
+ ml.p4d.24xlarge
+ ml.p4de.24xlarge
+ ml.p5.48xlarge
+ ml.p5e.48xlarge
+ ml.p5en.48xlarge
+ ml.p6e-gb200.36xlarge
+ ml.trn1.2xlarge
+ ml.trn1.32xlarge
+ ml.trn1n.32xlarge
+ ml.trn2.48xlarge
+ ml.trn2u.48xlarge

O agendamento com reconhecimento de topologia se integra aos seus HyperPod fluxos de trabalho existentes, ao mesmo tempo em que fornece preferências de topologia flexíveis por meio dos arquivos kubectl YAML e da CLI. HyperPod HyperPod a governança de tarefas configura automaticamente os nós do cluster com rótulos de topologia e trabalha com políticas de governança de HyperPod tarefas e mecanismos de empréstimo de recursos, garantindo que o agendamento com reconhecimento de topologia não interrompa seus processos operacionais atuais. Com suporte integrado para especificações de topologia preferenciais e obrigatórias, você pode ajustar o posicionamento da workload para atender aos seus requisitos específicos de desempenho, mantendo a flexibilidade de voltar a utilizar o agendamento padrão quando as restrições de topologia não puderem ser satisfeitas.

Ao aproveitar os rótulos com reconhecimento de topologia HyperPod, você pode aprimorar suas cargas de trabalho de aprendizado de máquina por meio do posicionamento inteligente de pods que considera a infraestrutura física da rede. HyperPod a governança de tarefas otimiza automaticamente o agendamento de pods com base na topologia hierárquica do data center, o que se traduz diretamente em latência de rede reduzida e melhor desempenho de treinamento para tarefas de ML distribuídas. Esse reconhecimento de topologia é particularmente valioso para workloads de machine learning em grande escala, pois minimiza os custos indiretos de comunicação ao posicionar estrategicamente os pods relacionados mais próximos na hierarquia da rede. O resultado é latência otimizada da rede de comunicação entre pods, utilização mais eficiente de recursos e melhor desempenho geral para AI/ML aplicativos de computação intensiva, tudo isso obtido sem a necessidade de gerenciar manualmente configurações complexas de topologia de rede.

A seguir estão os rótulos das camadas de rede de topologia disponíveis nas quais a governança de HyperPod tarefas pode programar pods:
+ network-node-layertopology.k8s.aws/ -1
+ network-node-layertopology.k8s.aws/ -2
+ network-node-layertopology.k8s.aws/ -3
+ topology.k8s.aws/ultraserver-id

Para usar o agendamento com reconhecimento de topologia, inclua os seguintes rótulos em seu arquivo YAML:
+ kueue.x-k8s.io/ podset-required-topology - indica que esse trabalho deve ter os pods necessários e que todos os pods nos nós devem ser programados na mesma camada de topologia.
+ kueue.x-k8s.io/ podset-preferred-topology - indica que esse trabalho deve ter os pods, mas que o agendamento de pods na mesma camada de topologia é preferível, mas não obrigatório. HyperPod a governança de tarefas tentará programar os pods em uma camada antes de tentar a próxima camada de topologia.

Se os recursos não compartilharem o mesmo rótulo de topologia, o trabalho será suspenso. O trabalho estará na lista de espera. Quando o Kueue perceber que há recursos suficientes, ela admitirá e executará o trabalho.

O exemplo a seguir demonstra como usar os rótulos em arquivos YAML:

```
apiVersion: batch/v1
kind: Job
metadata:
  name: test-tas-job
  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-priority
spec:
  parallelism: 10
  completions: 10
  suspend: true
  template:
    metadata:
      labels:
        kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
      annotations:
        kueue.x-k8s.io/podset-required-topology: "topology.k8s.aws/network-node-layer-3"
        or
        kueue.x-k8s.io/podset-preferred-topology: "topology.k8s.aws/network-node-layer-3"
    spec:
      nodeSelector:
        topology.k8s.aws/network-node-layer-3: TOPOLOGY_LABEL_VALUE
      containers:
        - name: dummy-job
          image: gcr.io/k8s-staging-perf-tests/sleep:v0.1.0
          args: ["3600s"]
          resources:
            requests:
              cpu: "100"
      restartPolicy: Never
```

A tabela a seguir explica os novos parâmetros que você pode usar no arquivo kubectl YAML.


| Parâmetro | Description | 
| --- | --- | 
| kueue.x-k8s.io/queue-name | O nome da fila a ser usada para executar o trabalho. O formato desse nome de fila deve ser hyperpod-ns-team-name-localqueue. | 
| kueue.x-k8s.io/priority-class | Permite que você especifique uma prioridade para o agendamento de pods. Essa especificação é opcional. | 
| anotações | Contém a anotação de topologia que você anexa ao trabalho. As topologias disponíveis são kueue.x-k8s.io/ e podset-required-topology kueue.x-k8s.io/. podset-preferred-topology Você pode usar uma anotação ou um nodeSelector, mas não ambos ao mesmo tempo. | 
| nodeSelector | Especifica a camada de rede que representa a camada de posicionamento da instância do Amazon EC2. Use esse campo ou uma anotação, mas não ambos ao mesmo tempo. No seu arquivo YAML, também é possível usar o parâmetro nodeSelector para escolher a camada exata para os pods. Para obter o valor do seu rótulo, use a operação [ DescribeInstanceTopology](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTopology.html)da API. | 

Você também pode usar a HyperPod CLI para executar seu trabalho e usar o agendamento com reconhecimento de topologia. Para obter mais informações sobre a HyperPod CLI, consulte. [SageMaker HyperPod Comandos CLI](sagemaker-hyperpod-eks-hyperpod-cli-reference.md)

```
hyp create hyp-pytorch-job \                                            
  --version 1.1 \
  --job-name sample-pytorch-job \
  --image 123456789012.dkr.ecr.us-west-2.amazonaws.com/ptjob:latest \
  --pull-policy "Always" \
  --tasks-per-node 1 \
  --max-retry 1 \
  --priority high-priority \
  --namespace hyperpod-ns-team-name \
  --queue-name hyperpod-ns-team-name-localqueue \
  --preferred-topology-label topology.k8s.aws/network-node-layer-1
```

A seguir está um exemplo de arquivo de configuração que você pode usar para executar um PytorchJob com rótulos de topologia. O arquivo é muito semelhante se você quiser executar trabalhos do MPI e TensorFlow. Se você quiser executar esses trabalhos em vez disso, lembre-se de alterar o arquivo de configuração adequadamente, como usar a imagem correta em vez de PyTorchJob. Se você estiver executando um PyTorchJob, poderá atribuir topologias diferentes aos nós mestre e de trabalho. PyTorchJob sempre tem um nó principal, então recomendamos que você use a topologia para dar suporte aos grupos de trabalho.

```
apiVersion: kubeflow.org/v1
kind: PyTorchJob
metadata:
  annotations: {}
  labels:
    kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
  name: tas-test-pytorch-job
  namespace: hyperpod-ns-team-name
spec:
  pytorchReplicaSpecs:
    Master:
      replicas: 1
      restartPolicy: OnFailure
      template:
        metadata:
          labels:
            kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
        spec:
          containers:
          - command:
            - python3
            - /opt/pytorch-mnist/mnist.py
            - --epochs=1
            image: docker.io/kubeflowkatib/pytorch-mnist:v1beta1-45c5727
            imagePullPolicy: Always
            name: pytorch
    Worker:
      replicas: 10
      restartPolicy: OnFailure
      template:
        metadata:
          # annotations:
            # kueue.x-k8s.io/podset-required-topology: "topology.k8s.aws/network-node-layer-3"
          labels:
            kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
        spec:
          containers:
          - command:
            - python3
            - /opt/pytorch-mnist/mnist.py
            - --epochs=1
            image: docker.io/kubeflowkatib/pytorch-mnist:v1beta1-45c5727
            imagePullPolicy: Always
            name: pytorch
            resources:
              limits:
                cpu: 1
              requests:
                memory: 200Mi
                cpu: 1
          #nodeSelector:
          #  topology.k8s.aws/network-node-layer-3: xxxxxxxxxxx
```

Para ver as topologias do seu cluster, use a operação da [ DescribeInstanceTopology](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTopology.html)API. Por padrão, as topologias estão ocultas no Console de gerenciamento da AWS e no Amazon SageMaker Studio. Siga estas etapas para vê-las na interface que você está usando.

**SageMaker Studio**

1. No SageMaker Studio, navegue até seu cluster.

1. Na visualização “Tarefas”, escolha o menu de opções na coluna “Nome” e selecione **Gerenciar colunas**.

1. Selecione **Topologia solicitada** e **Restrição de topologia** para adicionar as colunas e ver as informações de topologia na lista de pods do Kubernetes.

**Console de gerenciamento da AWS**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Em **HyperPod clusters**, escolha **Gerenciamento de clusters**.

1. Escolha a guia **Tarefas** e, em seguida, escolha o ícone de engrenagem.

1. Em “Atributos da instância”, ative **Topologia solicitada** e **Restrição de topologia**.

1. Escolha **Confirmar** para ver as informações de topologia na tabela.

# Políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies"></a>

A governança de SageMaker HyperPod tarefas da Amazon simplifica a forma como os recursos do cluster Amazon EKS são alocados e como as tarefas são priorizadas. Veja a seguir informações sobre as políticas de cluster do HyperPod EKS. Para ter informações sobre como configurar a governança de tarefas, consulte [Configuração da governança de tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance.md).

As políticas são divididas em **priorização da computação** e **alocação da computação**. Os conceitos de política abaixo serão organizados no contexto dessas políticas.

A **priorização da computação**, ou política de cluster, determina como a computação inativa é tomada emprestada e como as tarefas são priorizadas pelas equipes.
+ A **alocação de computação inativa** define como a computação ociosa é alocada entre as equipes. Ou seja, como a computação não utilizada pode ser tomada emprestada das equipes. Ao escolher uma **alocação de computação inativa**, você pode escolher entre:
  + **Primeiro a chegar, primeiro a ser atendido**: quando esta opção é aplicada, as equipes não são priorizadas umas em relação às outras e cada tarefa recebida tem a mesma probabilidade de obter recursos acima da cota. As tarefas são priorizadas com base na ordem de envio. Isso significa que um usuário poderá usar 100% da computação ociosa se a solicitar primeiro.
  + **Compartilhamento justo**: quando esta opção é aplicada, as equipes tomam emprestada a computação ociosa com base no peso atribuído ao **compartilhamento justo**. Esses pesos são definidos em **Alocação de computação.** Para ter mais informações sobre como isso pode ser usado, consulte [Exemplos de compartilhamento de recursos de computação ociosos](#hp-eks-task-governance-policies-examples).
+ A **Priorização de tarefas** define como as tarefas são colocadas em fila à medida que a computação se torna disponível. Ao selecionar uma **Priorização de tarefas**, você pode escolher entre:
  + **Primeiro a chegar, primeiro a ser atendido**: quando esta opção é aplicada, as tarefas são enfileiradas na ordem em que são solicitadas.
  + **Classificação de tarefas**: quando esta opção é aplicada, as tarefas são enfileiradas na ordem definida pela respectiva priorização. Se essa opção for escolhida, você deverá adicionar classes prioritárias com os pesos de acordo com os quais elas devem ser priorizadas. Tarefas da mesma classe prioritária serão executadas por ordem de chegada. Quando habilitada em “Alocação de computação”, as tarefas de maior prioridade dentro da equipe são antecipadas em relação às de menor prioridade.

    Quando cientistas de dados enviam trabalhos ao cluster, eles usam o nome da classe prioritária no arquivo YAML. A classe prioritária está no formato `priority-class-name-priority`. Para ver um exemplo, consulte [Envie um trabalho para uma fila e um SageMaker namespace gerenciados por IA](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).
  + **Classes prioritárias**: essas classes estabelecem uma prioridade relativa para tarefas ao tomar capacidade emprestada. Quando uma tarefa está sendo executada usando uma cota tomada emprestada, outra tarefa de maior prioridade pode ter precedência sobre ela, se não houver mais capacidade disponível para a tarefa de entrada. Se a opção **Preempção** estiver habilitada em **Alocação de computação**, uma tarefa de maior prioridade também poderá ter precedência sobre as tarefas dentro da própria equipe.
+ O **compartilhamento de recursos não alocados** permite que as equipes emprestem recursos computacionais que não estão alocados a nenhuma equipe por meio da cota de computação. Quando ativada, a capacidade não alocada do cluster fica disponível para que as equipes emprestem automaticamente. Para obter mais informações, consulte [Como funciona o compartilhamento de recursos não alocados](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works).

A **alocação de computação**, ou cota de computação, define a alocação de computação de uma equipe e qual peso (ou nível de prioridade) é atribuído a uma equipe para a alocação justa de computação ociosa. 
+ **Nome da equipe**: o nome da equipe. Um **namespace** correspondente será criado, do tipo `hyperpod-ns-team-name`. 
+ **Membros**: membros do namespace da equipe. Você precisará configurar um controle de acesso baseado em funções (RBAC) do Kubernetes para usuários de cientistas de dados que desejam fazer parte dessa equipe, para executar tarefas em clusters orquestrados com o Amazon EKS. HyperPod Para configurar um RBAC do Kubernetes, use as instruções em [Create team role](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
+ **Peso com compartilhamento justo**: esse é o nível de priorização atribuído à equipe quando o **compartilhamento justo** é aplicado para **alocação de computação ociosa**. A prioridade mais alta tem peso 100 e a mais baixa tem peso 0. Um peso maior permite que uma equipe acesse mais cedo recursos não utilizados dentro da capacidade compartilhada. Um peso 0 significa a menor prioridade, o que implica que essa equipe sempre estará em desvantagem em comparação com outras equipes. 

  O peso do compartilhamento justo oferece uma vantagem comparativa a essa equipe ao competir com outras pelos recursos disponíveis. A admissão prioriza tarefas de agendamento de equipes com os pesos mais altos e menos tomadas de empréstimo. Por exemplo, se a Equipe A tivesse um peso de 10 e a Equipe B tivesse um peso de 5, a Equipe A teria prioridade no acesso a recursos não utilizados, pois teria trabalhos agendados para uma data anterior aos da Equipe B.
+ **Preempção de tarefas**: a computação é assumida por uma tarefa com base na prioridade. Por padrão, a equipe que empresta computação ociosa antecipará as tarefas de outras equipes. 
+ **Empréstimos e tomadas de empréstimo**: como a computação ociosa está sendo emprestada pela equipe e se a equipe pode tomar emprestado de outras equipes.
  + **Limite de empréstimo baseado em porcentagem**: o limite de computação ociosa que uma equipe pode emprestar, expresso como uma porcentagem de sua cota garantida. Uma equipe pode emprestar até 10.000% da computação alocada. O valor que você fornece aqui é interpretado como uma porcentagem. Por exemplo, um valor de 500 será interpretado como 500%. Essa porcentagem se aplica uniformemente a todos os tipos de recursos (CPU, GPU, memória) e tipos de instância na cota da equipe.
  + **Limite absoluto de empréstimo**: o limite de computação ociosa que uma equipe pode emprestar, definido como valores absolutos de recursos por tipo de instância. Isso fornece controle granular sobre o comportamento de empréstimo para tipos específicos de instância. Você precisa especificar limites absolutos usando o mesmo esquema da **cota de computação**, incluindo contagem de instâncias, aceleradores, vCPU, memória ou partições do acelerador. Você pode especificar limites absolutos para um ou mais tipos de instância na cota da sua equipe.

Para ter informações sobre como esses conceitos são usados, como classes prioritárias e espaços de nome, consulte [Exemplos de AWS CLI comandos de governança de HyperPod tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md).

## Exemplos de compartilhamento de recursos de computação ociosos
<a name="hp-eks-task-governance-policies-examples"></a>

A cota total reservada não deve ultrapassar a capacidade disponível do cluster para esse recurso a fim de garantir o gerenciamento adequado da cota. Por exemplo, se um cluster inclui vinte instâncias `ml.c5.2xlarge`, a cota cumulativa atribuída às equipes deve permanecer abaixo de vinte. 

Se as políticas de **alocação de computação** para as equipes permitirem **emprestar e tomar emprestado** ou **emprestar**, a capacidade ociosa será compartilhada entre essas equipes. Por exemplo, a Equipe A e a Equipe B têm a opção **Emprestar e tomar emprestado** habilitada. A Equipe A tem uma cota de seis, mas está usando apenas duas para seus trabalhos, e a Equipe B tem uma cota de cinco e está usando quatro para seus trabalhos. Um trabalho enviado à Equipe B exigindo quatro recursos. Três serão tomados emprestados da Equipe A. 

Se a política de **alocação de computação** de qualquer equipe estiver definida como **Não emprestar**, a equipe não poderá tomar emprestada nenhuma capacidade adicional além de suas próprias alocações.

## Como funciona o compartilhamento de recursos não alocados
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works"></a>

O compartilhamento de recursos não alocados gerencia automaticamente o pool de recursos que não estão alocados em nenhuma cota de computação em seu cluster. Isso significa monitorar HyperPod continuamente o estado do seu cluster e atualizar automaticamente a configuração correta ao longo do tempo.

**Configuração inicial**
+ Quando você configura como `IdleResourceSharing` `Enabled` no seu ClusterSchedulerConfig (por padrão, é`Disabled`), a governança de HyperPod tarefas começa a monitorar seu cluster e calcula os recursos ociosos disponíveis subtraindo as cotas da equipe da capacidade total do nó.
+ O compartilhamento de recursos não ClusterQueues alocados é criado para representar o pool de recursos emprestáveis.
+ Quando você ativa pela primeira vez o compartilhamento de recursos não alocados, a configuração da infraestrutura leva vários minutos. Você pode monitorar o progresso por meio de políticas `Status` e `DetailedStatus` de entrada ClusterSchedulerConfig.

**Reconciliação contínua**
+ HyperPod a governança de tarefas monitora continuamente alterações, como adições ou remoções de nós e atualizações de cotas de filas de clusters.
+  Quando ocorrem alterações, o compartilhamento de recursos não alocados recalcula a cota e as atualizações. ClusterQueues A reconciliação normalmente é concluída em segundos. 

**Monitoramento**

 Você pode verificar se o compartilhamento de recursos não alocados está totalmente configurado verificando o compartilhamento de recursos não alocados: ClusterQueues 

```
kubectl get clusterqueue | grep hyperpod-ns-idle-resource-sharing
```

Quando você vê ClusterQueues com nomes como`hyperpod-ns-idle-resource-sharing-cq-1`, o compartilhamento de recursos não alocados está ativo. Observe que ClusterQueues podem existir vários compartilhamentos de recursos não alocados, dependendo do número de variações de recursos em seu cluster. 

## Elegibilidade do Node para compartilhamento de recursos não alocados
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-node-eligibility"></a>

O compartilhamento de recursos não alocados inclui somente nós que atendem aos seguintes requisitos:

1. **Status Node Ready**
   + Os nós devem estar em `Ready` status para contribuir com o pool de recursos não alocados.
   + Os nós em `NotReady` ou outros estados não prontos são excluídos dos cálculos de capacidade.
   + Quando um nó se torna`Ready`, ele é automaticamente incluído no próximo ciclo de reconciliação.

1. **Status programável do nó**
   + Os nós com `spec.unschedulable: true` são excluídos do compartilhamento de recursos não alocados.
   + Quando um nó se torna programável novamente, ele é automaticamente incluído no próximo ciclo de reconciliação.

1. **Configuração MIG (somente nós de GPU)**
   + Para nós de GPU com particionamento MIG (Multi-Instance GPU), o `nvidia.com/mig.config.state` rótulo deve ser exibido `success` para que o nó contribua com perfis MIG para o compartilhamento de recursos não alocados.
   + Esses nós serão repetidos automaticamente quando a configuração do MIG for concluída com êxito.

1. **Tipos de instância compatíveis**
   + A instância precisa ser um tipo de SageMaker HyperPod instância compatível.
   + Veja a lista de tipos de instância compatíveis no SageMaker HyperPod cluster.

**Topics**
+ [Exemplos de compartilhamento de recursos de computação ociosos](#hp-eks-task-governance-policies-examples)
+ [Como funciona o compartilhamento de recursos não alocados](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works)
+ [Elegibilidade do Node para compartilhamento de recursos não alocados](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-node-eligibility)
+ [Criar políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-create.md)
+ [Editar políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md)
+ [Excluir políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md)
+ [Alocação de cota computacional na governança de tarefas da Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation.md)

# Criar políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-create"></a>

Você pode criar suas configurações de **política de cluster** e **alocação de computação** na guia **Políticas**. Veja abaixo instruções sobre como criar as configurações a seguir.
+ Crie sua **política de cluster** para atualizar a forma como as tarefas são priorizadas e a computação ociosa é alocada.
+ Crie uma **alocação de computação** para criar uma política de alocação de computação para uma equipe.
**nota**  
Ao criar uma **alocação de computação**, você precisará configurar um controle de acesso baseado em funções (RBAC) do Kubernetes para usuários de cientistas de dados no namespace correspondente para executar tarefas em clusters orquestrados com o Amazon EKS. HyperPod Os namespaces têm o formato `hyperpod-ns-team-name`. Para configurar um RBAC do Kubernetes, use as instruções em [Create team role](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).

Para obter informações sobre os conceitos da política de cluster EKS de governança de HyperPod tarefas, consulte[Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

**Crie políticas de governança de HyperPod tarefas**

Esse procedimento pressupõe que você já tenha criado um cluster Amazon EKS configurado com HyperPod. Se ainda não fez feito isso, consulte [Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

1. Navegue até o [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação esquerdo, em **HyperPodClusters, escolha **Gerenciamento de clusters****.

1. Escolha seu cluster Amazon EKS listado em **SageMaker HyperPodclusters**.

1. Escolha a guia **Políticas**.

1. Para criar uma **política de cluster**:

   1. Escolha o campo **Editar** correspondente para atualizar como as tarefas são priorizadas e a computação ociosa é alocada.

   1. Depois de fazer as alterações, escolha **Enviar**.

1. Para criar uma **alocação de computação**:

1. 

   1. Escolha a opção **Criar** correspondente. Isso leva você para a página de criação de alocação de computação.

   1. Depois de fazer as alterações, escolha **Enviar**.

# Editar políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit"></a>

Você pode editar suas configurações de **política de cluster** e **alocação de computação** na guia **Políticas**. Veja abaixo instruções sobre como editar as configurações a seguir.
+ Edite sua **política de cluster** para atualizar a forma como as tarefas são priorizadas e a computação ociosa é alocada.
+ Edite uma **alocação de computação** para criar uma política de alocação de computação para uma equipe.
**nota**  
Ao criar uma **alocação de computação**, você precisará configurar um controle de acesso baseado em funções (RBAC) do Kubernetes para usuários de cientistas de dados no namespace correspondente para executar tarefas em clusters orquestrados com o Amazon EKS. HyperPod Os namespaces têm o formato `hyperpod-ns-team-name`. Para configurar um RBAC do Kubernetes, use as instruções em [Create team role](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).

Para obter mais informações sobre os conceitos da política de cluster EKS de governança de HyperPod tarefas, consulte[Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

**Editar políticas de governança de HyperPod tarefas**

Esse procedimento pressupõe que você já tenha criado um cluster Amazon EKS configurado com HyperPod. Se ainda não fez feito isso, consulte [Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

1. Navegue até o [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação esquerdo, em **HyperPodClusters, escolha **Gerenciamento de clusters****.

1. Escolha seu cluster Amazon EKS listado em **SageMaker HyperPodclusters**.

1. Escolha a guia **Políticas**.

1. Para editar sua **política de cluster**:

   1. Escolha o campo **Editar** correspondente para atualizar como as tarefas são priorizadas e a computação ociosa é alocada.

   1. Depois de fazer as alterações, escolha **Enviar**.

1. Para editar a **alocação de computação**:

1. 

   1. Escolha a configuração que você deseja editar em **Alocação de computação**. Isso leva você para a página de detalhes da configuração.

   1. Se você quiser editar essas configurações, escolha **Editar**.

   1. Depois de fazer as alterações, escolha **Enviar**.

# Excluir políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete"></a>

Você pode excluir sua **política de cluster** e configurações de **alocação de computação** usando o console de SageMaker IA ou. AWS CLI A página a seguir fornece instruções sobre como excluir suas políticas e configurações de governança de SageMaker HyperPod tarefas.

Para obter mais informações sobre os conceitos da política de cluster EKS de governança de HyperPod tarefas, consulte[Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

**nota**  
Se você estiver tendo problemas para listar ou excluir políticas de governança de tarefas, talvez seja necessário atualizar o conjunto mínimo de permissões de administrador do cluster. Consulte a guia **Amazon EKS** na seção [Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Para obter informações adicionais, consulte [Excluir clusters](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md#hp-eks-troubleshoot-delete-policies).

## Excluir políticas de governança de HyperPod tarefas (console)
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-console"></a>

O seguinte usa o console de SageMaker IA para excluir suas políticas de governança de HyperPod tarefas.

**nota**  
Você não pode excluir sua **política de cluster** (`ClusterSchedulerConfig`) usando o console de SageMaker IA. Para saber como fazer isso usando o AWS CLI, consulte[Excluir políticas de governança de HyperPod tarefas (AWS CLI)](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-cli).

**Para excluir políticas de governança de tarefas (console)**

1. Navegue até o [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação esquerdo, em **HyperPodClusters, escolha **Gerenciamento de clusters****.

1. Escolha seu cluster Amazon EKS listado em **SageMaker HyperPodclusters**.

1. Escolha a guia **Políticas**.

1. Para excluir sua **alocação de computação** (`ComputeQuota`):

   1. Na seção **Alocação de computação**, selecione a configuração que você deseja excluir.

   1. No menu suspenso **Ações**, escolha **Excluir**.

   1. Siga as instruções na interface de usuário para concluir a tarefa.

## Excluir políticas de governança de HyperPod tarefas (AWS CLI)
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-cli"></a>

O seguinte usa o AWS CLI para excluir suas políticas de governança de HyperPod tarefas.

**nota**  
Se você estiver tendo problemas ao usar os comandos a seguir, talvez seja necessário atualizar seu AWS CLI. Para saber mais, consulte [Instalar ou atualizar para a versão mais recente da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

**Como excluir políticas de governança de tarefas (AWS CLI)**

Primeiro, defina suas variáveis para os AWS CLI comandos a seguir.

```
REGION=aws-region
```

1. Obtenha o *cluster-arn* associado às políticas que você deseja excluir. Você pode usar o AWS CLI comando a seguir para listar os clusters em seu Região da AWS.

   ```
   aws sagemaker list-clusters \
       --region ${REGION}
   ```

1. Para excluir alocações de computação (`ComputeQuota`):

   1. Liste todas as cotas de computação associadas ao HyperPod cluster.

      ```
      aws sagemaker list-compute-quotas \
          --cluster-arn cluster-arn \
          --region ${REGION}
      ```

   1. Para cada `compute-quota-id` que desejar excluir, execute o comando a seguir para excluir a cota de computação.

      ```
      aws sagemaker delete-compute-quota \
          --compute-quota-id compute-quota-id \
          --region ${REGION}
      ```

1. Para excluir políticas de cluster (`ClusterSchedulerConfig`):

   1. Liste todas as políticas de cluster associadas ao HyperPod cluster.

      ```
      aws sagemaker list-cluster-scheduler-configs \
          --cluster-arn cluster-arn \
          --region ${REGION}
      ```

   1. Para cada `cluster-scheduler-config-id` que desejar excluir, execute o comando a seguir para excluir a cota de computação.

      ```
      aws sagemaker delete-cluster-scheduler-config 
          --cluster-scheduler-config-id scheduler-config-id \
          --region ${REGION}
      ```

# Alocação de cota computacional na governança de tarefas da Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation"></a>

Os administradores de cluster podem decidir como a organização usa a computação adquirida. Isso reduz o desperdício e os recursos ociosos. Você pode alocar uma cota de computação para que as equipes possam tomar emprestados recursos não utilizados entre si. A alocação de cotas de computação na governança de HyperPod tarefas permite que os administradores aloquem recursos no nível da instância e em um nível de recurso mais granular. Esse recurso oferece gerenciamento de recursos flexível e eficiente para as equipes, permitindo o controle granular de recursos de computação individuais em vez de exigir alocações de instâncias inteiras. A alocação em nível granular elimina a ineficiência da alocação tradicional em nível de instância. Por meio dessa abordagem, você pode otimizar a utilização de recursos e reduzir a computação ociosa.

A alocação de cotas de computação permite três tipos de alocação de recursos: aceleradores, vCPU e memória. Aceleradores são componentes em instâncias com computação acelerada que executam funções, como cálculos de número de ponto flutuante, processamento gráfico ou correspondência de padrões de dados. Os aceleradores incluem GPUs aceleradores Trainium e núcleos de neurônios. Para o compartilhamento de GPU com várias equipes, equipes diferentes podem receber alocações específicas de GPU do mesmo tipo de instância, maximizando a utilização do hardware do acelerador. Para cargas de trabalho com uso intenso de memória que exigem RAM adicional para cenários de pré-processamento de dados ou armazenamento em cache de modelos, você pode alocar a cota de memória além da taxa padrão. GPU-to-memory Para tarefas pesadas de pré-processamento de CPU que precisam de recursos substanciais de CPU e treinamento da GPU, você pode fazer uma alocação de recursos de CPU independente.

Depois de fornecer um valor, a governança de HyperPod tarefas calcula a proporção usando a fórmula de **recurso alocado dividido pela quantidade total de recursos disponíveis na instância**. HyperPod A governança de tarefas então usa essa proporção para aplicar alocações padrão a outros recursos, mas você pode substituir esses padrões e personalizá-los com base no seu caso de uso. Veja a seguir exemplos de cenários de como a governança de HyperPod tarefas aloca recursos com base em seus valores:
+ **Somente acelerador especificado** - a governança de HyperPod tarefas aplica a proporção padrão à vCPU e à memória com base nos valores do acelerador.
+ **Somente vCPU especificada** - a governança de HyperPod tarefas calcula a proporção e a aplica à memória. Os aceleradores são definidos como 0.
+ **Somente memória especificada** - a governança de HyperPod tarefas calcula a proporção e a aplica à vCPU porque a computação é necessária para executar cargas de trabalho especificadas na memória. Os aceleradores são definidos como 0.

Para controlar programaticamente a alocação de cotas, você pode usar o [ ComputeQuotaResourceConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ComputeQuotaResourceConfig.html)objeto e especificar suas alocações em números inteiros.

```
{
    "ComputeQuotaConfig": {
        "ComputeQuotaResources": [{
            "InstanceType": "ml.g5.24xlarge",
            "Accelerators": "16",
            "vCpu": "200.0",
            "MemoryInGiB": "2.0"
        }]
    }
}
```

Para ver todas as alocações alocadas, incluindo os padrões, use a operação. [ DescribeComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeComputeQuota.html) Para atualizar suas alocações, use a [ UpdateComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateComputeQuota.html)operação.

Você também pode usar a HyperPod CLI para alocar cotas de computação. Para obter mais informações sobre a HyperPod CLI, consulte. [Execução de trabalhos em SageMaker HyperPod clusters orquestrados pelo Amazon EKS](sagemaker-hyperpod-eks-run-jobs.md) O exemplo a seguir demonstra como definir cotas de computação usando a CLI. HyperPod 

```
hyp create hyp-pytorch-job --version 1.1 --job-name sample-job \
--image 123456789012.dkr.ecr.us-west-2.amazonaws.com/ptjob:latest \
--pull-policy "Always" \
--tasks-per-node 1 \
--max-retry 1 \
--priority high-priority \
--namespace hyperpod-ns-team-name \
--queue-name hyperpod-ns-team-name-localqueue \
--instance-type sample-instance-type \
--accelerators 1 \
--vcpu 3 \
--memory 1 \
--accelerators-limit 1 \
--vcpu-limit 4 \
--memory-limit 2
```

Para alocar cotas usando o AWS console, siga estas etapas.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Em HyperPod clusters, escolha **Gerenciamento de clusters**.

1. Em **Alocações de computação**, escolha **Criar**.

1. Se você ainda não tiver instâncias, escolha **Adicionar alocação** para adicionar uma instância.

1. Em **Alocações**, escolha alocar por instâncias ou recursos individuais. Se você alocar por recursos individuais, a SageMaker IA atribuirá automaticamente alocações a outros recursos de acordo com a proporção que você escolheu. Para substituir essa alocação baseada em proporção, use a alternância correspondente para substituir essa computação.

1. Repita as Etapas 4 e 5 para configurar instâncias adicionais.

Depois de alocar a cota de computação, você pode enviar trabalhos por meio da CLI ou. HyperPod `kubectl` HyperPodprograma com eficiência as cargas de trabalho com base na cota disponível. 

# Alocação da cota de partição da GPU
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions"></a>

Você pode estender a alocação da cota de computação para suportar o particionamento da GPU, permitindo o compartilhamento refinado de recursos no nível da partição da GPU. Quando o particionamento de GPU está habilitado com suporte GPUs no cluster, cada GPU física pode ser particionada em várias isoladas GPUs com alocações definidas de computação, memória e multiprocessador de streaming. Para obter mais informações sobre particionamento de GPU, consulte. [Usando partições de GPU na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md) Você pode alocar partições de GPU específicas para equipes, permitindo que várias equipes compartilhem uma única GPU, mantendo o isolamento em nível de hardware e o desempenho previsível.

Por exemplo, uma instância ml.p5.48xlarge com 8 H100 GPUs pode ser particionada em partições de GPU, e você pode alocar partições individuais para equipes diferentes com base nos requisitos de suas tarefas. Quando você especifica as alocações de partição da GPU, a governança de HyperPod tarefas calcula as cotas proporcionais de vCPU e memória com base na partição da GPU, semelhante à alocação no nível da GPU. Essa abordagem maximiza a utilização da GPU eliminando a capacidade ociosa e permitindo o compartilhamento econômico de recursos em várias tarefas simultâneas na mesma GPU física.

## Criação de cotas de computação
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions-creating"></a>

```
aws sagemaker create-compute-quota \
  --name "fractional-gpu-quota" \
  --compute-quota-config '{
    "ComputeQuotaResources": [
      {
        "InstanceType": "ml.p4d.24xlarge",
        "AcceleratorPartition": {
            "Count": 4,
            "Type": "mig-1g.5gb"
        }
      }
    ],
    "ResourceSharingConfig": { 
      "Strategy": "LendAndBorrow", 
      "BorrowLimit": 100 
    }
  }'
```

## Verificando recursos de cota
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions-verifying"></a>

```
# Check ClusterQueue
kubectl get clusterqueues
kubectl describe clusterqueue QUEUE_NAME

# Check ResourceFlavors
kubectl get resourceflavor
kubectl describe resourceflavor FLAVOR_NAME
```

# 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.

# Solução de problemas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot"></a>

A página a seguir contém soluções conhecidas para solucionar problemas em seus clusters HyperPod EKS.

**Topics**
+ [Guia do Painel](#hp-eks-troubleshoot-dashboard)
+ [Guia Tarefas](#hp-eks-troubleshoot-tasks)
+ [Políticas](#hp-eks-troubleshoot-policies)
+ [Excluir clusters](#hp-eks-troubleshoot-delete-policies)
+ [Compartilhamento de recursos não alocados](#hp-eks-troubleshoot-unallocated-resource-sharing)

## Guia do Painel
<a name="hp-eks-troubleshoot-dashboard"></a>

**Não é possível instalar o complemento do EKS**

Para que a instalação do complemento do EKS tenha êxito, você precisará ter uma versão do Kubernetes >= 1.30. Para atualizar, consulte [Atualizar um cluster existente para a nova versão do Kubernetes](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html).

Para que a instalação do complemento do EKS tenha êxito, todos os nós precisam estar no status **Pronto** e todos os pods precisam estar no status **Executando**. 

Para verificar o status dos seus nós, use o [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html) AWS CLI comando ou navegue até seu cluster EKS no [console EKS](https://console.aws.amazon.com/eks/home#/clusters) e visualize o status dos seus nós. Resolva o problema de cada nó ou entre em contato com seu administrador. Se o status do nó for **Desconhecido**, exclua o nó. Quando todos os status dos nós estiverem **prontos**, tente instalar novamente o complemento EKS a partir HyperPod do console [Amazon SageMaker ](https://console.aws.amazon.com/sagemaker/) AI.

Para verificar o status dos pods, use o comando `kubectl get pods -n cloudwatch-agent` da [CLI do Kubernetes](https://kubernetes.io/docs/reference/kubectl/) ou navegue até o cluster dos EKS no [console do EKS](https://console.aws.amazon.com/eks/home#/clusters) e visualize o status dos pods com o namespace `cloudwatch-agent`. Resolva o problema dos pods ou entre em contato com seu administrador para resolvê-lo. Quando todos os status do pod estiverem **em execução**, tente instalar novamente o complemento EKS HyperPod no console [Amazon SageMaker ](https://console.aws.amazon.com/sagemaker/) AI.

Para obter mais informações sobre a solução de problemas, consulte [Solução de problemas do complemento Amazon CloudWatch Observability EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html#Container-Insights-setup-EKS-addon-troubleshoot).

## Guia Tarefas
<a name="hp-eks-troubleshoot-tasks"></a>

Se você vir a mensagem de erro sobre como a **definição de recursos personalizados (CRD) não está configurada no cluster**, conceda as políticas `EKSAdminViewPolicy` e `ClusterAccessRole` ao perfil de execução do domínio. 
+ Para obter informações sobre como obter sua função de execução, consulte[Obtenha um perfil de execução](sagemaker-roles.md#sagemaker-roles-get-execution-role).
+ Para saber como anexar políticas a um grupo ou usuário do IAM, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

## Políticas
<a name="hp-eks-troubleshoot-policies"></a>

A seguir, listamos as soluções para erros relacionados às políticas usando o console HyperPod APIs ou.
+ Se a política estiver no status `CreateFailed` ou `CreateRollbackFailed`, você precisará excluir a política com falha e criar outra.
+ Se a política estiver no status `UpdateFailed`, tente atualizar novamente usando o mesmo ARN da política.
+ Se a política estiver no status `UpdateRollbackFailed`, você precisará excluir a política com falha e criar outra.
+ Se a política estiver no status `DeleteFailed` ou `DeleteRollbackFailed`, tente excluir novamente usando o mesmo ARN da política.
  + Se você encontrou um erro ao tentar excluir a **priorização de computação** ou a política de cluster usando o HyperPod console, tente excluí-la `cluster-scheduler-config` usando a API. Para verificar o status do recurso, acesse a página de detalhes de uma alocação de computação.

Para ver mais detalhes sobre a falha, use a API describe.

## Excluir clusters
<a name="hp-eks-troubleshoot-delete-policies"></a>

A seguir, listamos soluções conhecidas para erros relacionados à exclusão de clusters.
+ Quando a exclusão do cluster falhar devido às políticas de governança de SageMaker HyperPod tarefas anexadas, você precisará[Excluir políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md).
+ Quando a exclusão de um cluster falhar devido à falta das permissões a seguir, você precisará atualizar o conjunto mínimo de permissões do administrador do cluster. Consulte a guia **Amazon EKS** na seção [Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin).
  + `sagemaker:ListComputeQuotas`
  + `sagemaker:ListClusterSchedulerConfig`
  + `sagemaker:DeleteComputeQuota`
  + `sagemaker:DeleteClusterSchedulerConfig`

## Compartilhamento de recursos não alocados
<a name="hp-eks-troubleshoot-unallocated-resource-sharing"></a>

Se a capacidade não alocada do pool de recursos for menor do que a esperada:

1. **Verifique o status do nó pronto**

   ```
   kubectl get nodes
   ```

   Verifique se todos os nós mostram o `Ready` status na coluna STATUS.

1. **Verifique o status agendável do nó**

   ```
   kubectl get nodes -o custom-columns=NAME:.metadata.name,UNSCHEDULABLE:.spec.unschedulable
   ```

   Verifique se os nós são exibidos `<none>` ou `false` não`true`.

1. **Listar o compartilhamento de recursos não alocados: ClusterQueues**

   ```
   kubectl get clusterqueue | grep hyperpod-ns-idle-resource-sharing
   ```

   Isso mostra todos os compartilhamentos de recursos não alocados. ClusterQueues Se ClusterQueues eles não estiverem aparecendo, verifique a ClusterSchedulerConfig política `FailureReason` abaixo para ver se há alguma mensagem de falha para continuar a depuração.

1. **Verifique a cota de compartilhamento de recursos não alocada:**

   ```
   kubectl describe clusterqueue hyperpod-ns-idle-resource-sharing-<index>
   ```

   Consulte a `spec.resourceGroups[].flavors[].resources` seção para ver a cota alocada para cada tipo de recurso.

    ClusterQueues Podem existir vários compartilhamentos de recursos não alocados, dependendo do número de variações de recursos em seu cluster. 

1. **Verifique o status da configuração do MIG (nós da GPU):**

   ```
   kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.nvidia\.com/mig\.config\.state}{"\n"}{end}'
   ```

   Verifique se os nós habilitados para MIG mostram `success` o estado.

# Documento de atribuição para a governança de tarefas da Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-attributions"></a>

A seguir, você pode aprender sobre atribuições e licenças de terceiros para material usado na governança de tarefas da Amazon SageMaker HyperPod .

**Topics**
+ [[base-files](https://packages.debian.org/bookworm/base-files)](#hp-eks-task-governance-attributions-base-files)
+ [[netbase](https://packages.debian.org/source/stable/netbase)](#hp-eks-task-governance-attributions-netbase)
+ [[golang-lru](https://github.com/hashicorp/golang-lru)](#hp-eks-task-governance-attributions-golang-lru)

## [base-files](https://packages.debian.org/bookworm/base-files)
<a name="hp-eks-task-governance-attributions-base-files"></a>

```
This is the Debian prepackaged version of the Debian Base System
Miscellaneous files. These files were written by Ian Murdock
<imurdock@debian.org> and Bruce Perens <bruce@pixar.com>.

This package was first put together by Bruce Perens <Bruce@Pixar.com>,
from his own sources.

The GNU Public Licenses in /usr/share/common-licenses were taken from
ftp.gnu.org and are copyrighted by the Free Software Foundation, Inc.

The Artistic License in /usr/share/common-licenses is the one coming
from Perl and its SPDX name is "Artistic License 1.0 (Perl)".


Copyright © 1995-2011 Software in the Public Interest.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
```

## [netbase](https://packages.debian.org/source/stable/netbase)
<a name="hp-eks-task-governance-attributions-netbase"></a>

```
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Comment:
 This package was created by Peter Tobias tobias@et-inf.fho-emden.de on
 Wed, 24 Aug 1994 21:33:28 +0200 and maintained by Anthony Towns
 <ajt@debian.org> until 2001.
 It is currently maintained by Marco d'Itri <md@linux.it>.

Files: *
Copyright:
 Copyright © 1994-1998 Peter Tobias
 Copyright © 1998-2001 Anthony Towns
 Copyright © 2002-2022 Marco d'Itri
License: GPL-2
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License, version 2, as
 published by the Free Software Foundation.
 .
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 .
 You should have received a copy of the GNU General Public License along
 with this program; if not, write to the Free Software Foundation,
 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 .
 On Debian systems, the complete text of the GNU General Public License
 version 2 can be found in '/usr/share/common-licenses/GPL-2'.
```

## [golang-lru](https://github.com/hashicorp/golang-lru)
<a name="hp-eks-task-governance-attributions-golang-lru"></a>

```
Copyright © 2014 HashiCorp, Inc.

Mozilla Public License, version 2.0

1. Definitions

1.1. "Contributor"

     means each individual or legal entity that creates, contributes to the
     creation of, or owns Covered Software.

1.2. "Contributor Version"

     means the combination of the Contributions of others (if any) used by a
     Contributor and that particular Contributor's Contribution.

1.3. "Contribution"

     means Covered Software of a particular Contributor.

1.4. "Covered Software"

     means Source Code Form to which the initial Contributor has attached the
     notice in Exhibit A, the Executable Form of such Source Code Form, and
     Modifications of such Source Code Form, in each case including portions
     thereof.

1.5. "Incompatible With Secondary Licenses"
     means

     a. that the initial Contributor has attached the notice described in
        Exhibit B to the Covered Software; or

     b. that the Covered Software was made available under the terms of
        version 1.1 or earlier of the License, but not also under the terms of
        a Secondary License.

1.6. "Executable Form"

     means any form of the work other than Source Code Form.

1.7. "Larger Work"

     means a work that combines Covered Software with other material, in a
     separate file or files, that is not Covered Software.

1.8. "License"

     means this document.

1.9. "Licensable"

     means having the right to grant, to the maximum extent possible, whether
     at the time of the initial grant or subsequently, any and all of the
     rights conveyed by this License.

1.10. "Modifications"

     means any of the following:

     a. any file in Source Code Form that results from an addition to,
        deletion from, or modification of the contents of Covered Software; or

     b. any new file in Source Code Form that contains any Covered Software.

1.11. "Patent Claims" of a Contributor

      means any patent claim(s), including without limitation, method,
      process, and apparatus claims, in any patent Licensable by such
      Contributor that would be infringed, but for the grant of the License,
      by the making, using, selling, offering for sale, having made, import,
      or transfer of either its Contributions or its Contributor Version.

1.12. "Secondary License"

      means either the GNU General Public License, Version 2.0, the GNU Lesser
      General Public License, Version 2.1, the GNU Affero General Public
      License, Version 3.0, or any later versions of those licenses.

1.13. "Source Code Form"

      means the form of the work preferred for making modifications.

1.14. "You" (or "Your")

      means an individual or a legal entity exercising rights under this
      License. For legal entities, "You" includes any entity that controls, is
      controlled by, or is under common control with You. For purposes of this
      definition, "control" means (a) the power, direct or indirect, to cause
      the direction or management of such entity, whether by contract or
      otherwise, or (b) ownership of more than fifty percent (50%) of the
      outstanding shares or beneficial ownership of such entity.


2. License Grants and Conditions

2.1. Grants

     Each Contributor hereby grants You a world-wide, royalty-free,
     non-exclusive license:

     a. under intellectual property rights (other than patent or trademark)
        Licensable by such Contributor to use, reproduce, make available,
        modify, display, perform, distribute, and otherwise exploit its
        Contributions, either on an unmodified basis, with Modifications, or
        as part of a Larger Work; and

     b. under Patent Claims of such Contributor to make, use, sell, offer for
        sale, have made, import, and otherwise transfer either its
        Contributions or its Contributor Version.

2.2. Effective Date

     The licenses granted in Section 2.1 with respect to any Contribution
     become effective for each Contribution on the date the Contributor first
     distributes such Contribution.

2.3. Limitations on Grant Scope

     The licenses granted in this Section 2 are the only rights granted under
     this License. No additional rights or licenses will be implied from the
     distribution or licensing of Covered Software under this License.
     Notwithstanding Section 2.1(b) above, no patent license is granted by a
     Contributor:

     a. for any code that a Contributor has removed from Covered Software; or

     b. for infringements caused by: (i) Your and any other third party's
        modifications of Covered Software, or (ii) the combination of its
        Contributions with other software (except as part of its Contributor
        Version); or

     c. under Patent Claims infringed by Covered Software in the absence of
        its Contributions.

     This License does not grant any rights in the trademarks, service marks,
     or logos of any Contributor (except as may be necessary to comply with
     the notice requirements in Section 3.4).

2.4. Subsequent Licenses

     No Contributor makes additional grants as a result of Your choice to
     distribute the Covered Software under a subsequent version of this
     License (see Section 10.2) or under the terms of a Secondary License (if
     permitted under the terms of Section 3.3).

2.5. Representation

     Each Contributor represents that the Contributor believes its
     Contributions are its original creation(s) or it has sufficient rights to
     grant the rights to its Contributions conveyed by this License.

2.6. Fair Use

     This License is not intended to limit any rights You have under
     applicable copyright doctrines of fair use, fair dealing, or other
     equivalents.

2.7. Conditions

     Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
     Section 2.1.


3. Responsibilities

3.1. Distribution of Source Form

     All distribution of Covered Software in Source Code Form, including any
     Modifications that You create or to which You contribute, must be under
     the terms of this License. You must inform recipients that the Source
     Code Form of the Covered Software is governed by the terms of this
     License, and how they can obtain a copy of this License. You may not
     attempt to alter or restrict the recipients' rights in the Source Code
     Form.

3.2. Distribution of Executable Form

     If You distribute Covered Software in Executable Form then:

     a. such Covered Software must also be made available in Source Code Form,
        as described in Section 3.1, and You must inform recipients of the
        Executable Form how they can obtain a copy of such Source Code Form by
        reasonable means in a timely manner, at a charge no more than the cost
        of distribution to the recipient; and

     b. You may distribute such Executable Form under the terms of this
        License, or sublicense it under different terms, provided that the
        license for the Executable Form does not attempt to limit or alter the
        recipients' rights in the Source Code Form under this License.

3.3. Distribution of a Larger Work

     You may create and distribute a Larger Work under terms of Your choice,
     provided that You also comply with the requirements of this License for
     the Covered Software. If the Larger Work is a combination of Covered
     Software with a work governed by one or more Secondary Licenses, and the
     Covered Software is not Incompatible With Secondary Licenses, this
     License permits You to additionally distribute such Covered Software
     under the terms of such Secondary License(s), so that the recipient of
     the Larger Work may, at their option, further distribute the Covered
     Software under the terms of either this License or such Secondary
     License(s).

3.4. Notices

     You may not remove or alter the substance of any license notices
     (including copyright notices, patent notices, disclaimers of warranty, or
     limitations of liability) contained within the Source Code Form of the
     Covered Software, except that You may alter any license notices to the
     extent required to remedy known factual inaccuracies.

3.5. Application of Additional Terms

     You may choose to offer, and to charge a fee for, warranty, support,
     indemnity or liability obligations to one or more recipients of Covered
     Software. However, You may do so only on Your own behalf, and not on
     behalf of any Contributor. You must make it absolutely clear that any
     such warranty, support, indemnity, or liability obligation is offered by
     You alone, and You hereby agree to indemnify every Contributor for any
     liability incurred by such Contributor as a result of warranty, support,
     indemnity or liability terms You offer. You may include additional
     disclaimers of warranty and limitations of liability specific to any
     jurisdiction.

4. Inability to Comply Due to Statute or Regulation

   If it is impossible for You to comply with any of the terms of this License
   with respect to some or all of the Covered Software due to statute,
   judicial order, or regulation then You must: (a) comply with the terms of
   this License to the maximum extent possible; and (b) describe the
   limitations and the code they affect. Such description must be placed in a
   text file included with all distributions of the Covered Software under
   this License. Except to the extent prohibited by statute or regulation,
   such description must be sufficiently detailed for a recipient of ordinary
   skill to be able to understand it.

5. Termination

5.1. The rights granted under this License will terminate automatically if You
     fail to comply with any of its terms. However, if You become compliant,
     then the rights granted under this License from a particular Contributor
     are reinstated (a) provisionally, unless and until such Contributor
     explicitly and finally terminates Your grants, and (b) on an ongoing
     basis, if such Contributor fails to notify You of the non-compliance by
     some reasonable means prior to 60 days after You have come back into
     compliance. Moreover, Your grants from a particular Contributor are
     reinstated on an ongoing basis if such Contributor notifies You of the
     non-compliance by some reasonable means, this is the first time You have
     received notice of non-compliance with this License from such
     Contributor, and You become compliant prior to 30 days after Your receipt
     of the notice.

5.2. If You initiate litigation against any entity by asserting a patent
     infringement claim (excluding declaratory judgment actions,
     counter-claims, and cross-claims) alleging that a Contributor Version
     directly or indirectly infringes any patent, then the rights granted to
     You by any and all Contributors for the Covered Software under Section
     2.1 of this License shall terminate.

5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
     license agreements (excluding distributors and resellers) which have been
     validly granted by You or Your distributors under this License prior to
     termination shall survive termination.

6. Disclaimer of Warranty

   Covered Software is provided under this License on an "as is" basis,
   without warranty of any kind, either expressed, implied, or statutory,
   including, without limitation, warranties that the Covered Software is free
   of defects, merchantable, fit for a particular purpose or non-infringing.
   The entire risk as to the quality and performance of the Covered Software
   is with You. Should any Covered Software prove defective in any respect,
   You (not any Contributor) assume the cost of any necessary servicing,
   repair, or correction. This disclaimer of warranty constitutes an essential
   part of this License. No use of  any Covered Software is authorized under
   this License except under this disclaimer.

7. Limitation of Liability

   Under no circumstances and under no legal theory, whether tort (including
   negligence), contract, or otherwise, shall any Contributor, or anyone who
   distributes Covered Software as permitted above, be liable to You for any
   direct, indirect, special, incidental, or consequential damages of any
   character including, without limitation, damages for lost profits, loss of
   goodwill, work stoppage, computer failure or malfunction, or any and all
   other commercial damages or losses, even if such party shall have been
   informed of the possibility of such damages. This limitation of liability
   shall not apply to liability for death or personal injury resulting from
   such party's negligence to the extent applicable law prohibits such
   limitation. Some jurisdictions do not allow the exclusion or limitation of
   incidental or consequential damages, so this exclusion and limitation may
   not apply to You.

8. Litigation

   Any litigation relating to this License may be brought only in the courts
   of a jurisdiction where the defendant maintains its principal place of
   business and such litigation shall be governed by laws of that
   jurisdiction, without reference to its conflict-of-law provisions. Nothing
   in this Section shall prevent a party's ability to bring cross-claims or
   counter-claims.

9. Miscellaneous

   This License represents the complete agreement concerning the subject
   matter hereof. If any provision of this License is held to be
   unenforceable, such provision shall be reformed only to the extent
   necessary to make it enforceable. Any law or regulation which provides that
   the language of a contract shall be construed against the drafter shall not
   be used to construe this License against a Contributor.


10. Versions of the License

10.1. New Versions

      Mozilla Foundation is the license steward. Except as provided in Section
      10.3, no one other than the license steward has the right to modify or
      publish new versions of this License. Each version will be given a
      distinguishing version number.

10.2. Effect of New Versions

      You may distribute the Covered Software under the terms of the version
      of the License under which You originally received the Covered Software,
      or under the terms of any subsequent version published by the license
      steward.

10.3. Modified Versions

      If you create software not governed by this License, and you want to
      create a new license for such software, you may create and use a
      modified version of this License if you rename the license and remove
      any references to the name of the license steward (except to note that
      such modified license differs from this License).

10.4. Distributing Source Code Form that is Incompatible With Secondary
      Licenses If You choose to distribute Source Code Form that is
      Incompatible With Secondary Licenses under the terms of this version of
      the License, the notice described in Exhibit B of this License must be
      attached.

Exhibit A - Source Code Form License Notice

      This Source Code Form is subject to the
      terms of the Mozilla Public License, v.
      2.0. If a copy of the MPL was not
      distributed with this file, You can
      obtain one at
      http://mozilla.org/MPL/2.0/.

If it is not possible or desirable to put the notice in a particular file,
then You may include the notice in a location (such as a LICENSE file in a
relevant directory) where a recipient would be likely to look for such a
notice.

You may add additional accurate notices of copyright ownership.

Exhibit B - "Incompatible With Secondary Licenses" Notice

      This Source Code Form is "Incompatible
      With Secondary Licenses", as defined by
      the Mozilla Public License, v. 2.0.
```