Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejemplos de comandos de gobierno AWS CLI de HyperPod tareas
Puede usarlo HyperPod con EKS a través de Kubectl o mediante una CLI personalizada HyperPod. Puede utilizar estos comandos a través de Studio o. AWS CLI A continuación, se proporcionan ejemplos de gobierno de SageMaker HyperPod tareas sobre cómo ver los detalles del clúster mediante los HyperPod AWS CLI comandos. Para obtener más información, incluida la forma de instalación, consulte el repositorio HyperPod CLI de Github
Temas
Obtención de información sobre la cuota de dispositivos aceleradores de clústeres
El siguiente comando de ejemplo obtiene la información sobre la cuota de dispositivos aceleradores de clústeres.
hyperpod get-clusters -n hyperpod-ns-test-team
El espacio de nombres de este ejemplo, hyperpod-ns-test-team, se crea en Kubernetes en función del nombre del equipo proporcionado al crear la asignación de recursos de computación test-team. Para obtener más información, consulte Edición de políticas.
Ejemplo de respuesta:
[ { "Cluster": "hyperpod-eks-test-cluster-id", "InstanceType": "ml.g5.xlarge", "TotalNodes": 2, "AcceleratorDevicesAvailable": 1, "NodeHealthStatus=Schedulable": 2, "DeepHealthCheckStatus=Passed": "N/A", "Namespaces": { "hyperpod-ns-test-team": { "TotalAcceleratorDevices": 1, "AvailableAcceleratorDevices": 1 } } } ]
Envíe un trabajo a una cola y un espacio de nombres SageMaker gestionados por la IA
El siguiente comando de ejemplo envía un trabajo a tu clúster. HyperPod Si solo tienes acceso a un equipo, en ese caso te HyperPod AWS CLI asignarán automáticamente la cola. De lo contrario, si se descubren varias colas, le mostraremos todas las opciones posibles para que las seleccione.
hyperpod start-job --job-name hyperpod-cli-test --job-kind kubeflow/PyTorchJob --image docker.io/kubeflowkatib/pytorch-mnist-cpu:v1beta1-bc09cfd --entry-script /opt/pytorch-mnist/mnist.py --pull-policy IfNotPresent --instance-type ml.g5.xlarge --node-count 1 --tasks-per-node 1 --results-dir ./result --priority training-priority
Las clases de prioridad se definen en la Política de clústeres, que indica cómo se priorizan las tareas y cómo se asignan los recursos computacionales inactivos. Cuando un científico de datos envía un trabajo, utiliza uno de los nombres de las clases de prioridad con el formato . En este ejemplo, priority-class-name-prioritytraining-priority hace referencia a la clase de prioridad denominada “training”. Para obtener más información sobre los conceptos de las políticas, consulte Políticas.
Si no se especifica ninguna clase de prioridad, el trabajo se trata como un trabajo de prioridad baja con un valor de clasificación de tareas de 0.
Si se especifica una clase de prioridad, pero no se corresponde con ninguna de las clases de prioridad definidas en la Política de clústeres, el envío no se realizará correctamente y aparecerá un mensaje de error con el conjunto definido de clases de prioridad.
También puede enviar el trabajo con un archivo de configuración YAML con el siguiente comando:
hyperpod start-job --config-file ./yaml-configuration-file-name.yaml
El siguiente es un ejemplo de un archivo de configuración YAML que equivale a enviar un trabajo, tal y como se ha descrito anteriormente.
defaults: - override hydra/job_logging: stdout hydra: run: dir: . output_subdir: null training_cfg: entry_script: /opt/pytorch-mnist/mnist.py script_args: [] run: name: hyperpod-cli-test nodes: 1 ntasks_per_node: 1 cluster: cluster_type: k8s instance_type: ml.g5.xlarge custom_labels: kueue.x-k8s.io/priority-class: training-priority cluster_config: label_selector: required: sagemaker.amazonaws.com/node-health-status: - Schedulable preferred: sagemaker.amazonaws.com/deep-health-check-status: - Passed weights: - 100 pullPolicy: IfNotPresent base_results_dir: ./result container: docker.io/kubeflowkatib/pytorch-mnist-cpu:v1beta1-bc09cfd env_vars: NCCL_DEBUG: INFO
Como alternativa, puede enviar un trabajo utilizando kubectl para asegurarse de que la tarea aparezca en la pestaña Panel. A continuación se muestra un comando kubectl de ejemplo.
kubectl apply -f ./yaml-configuration-file-name.yaml
Al enviar el trabajo, incluya el nombre de la cola y las etiquetas de clase de prioridad. Por ejemplo, con el nombre de la cola hyperpod-ns- y la clase de prioridad team-name-localqueue, debe incluir las siguientes etiquetas:priority-class-name-priority
-
kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue -
kueue.x-k8s.io/priority-class:priority-class-name-priority
En el siguiente fragmento de configuración de YAML, se muestra cómo añadir etiquetas al archivo de configuración original para garantizar que la tarea aparezca en la pestaña Panel:
metadata: name:job-namenamespace: hyperpod-ns-team-namelabels: kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue kueue.x-k8s.io/priority-class:priority-class-name-priority
Enumeración de trabajos
El siguiente comando enumera los trabajos y sus detalles.
hyperpod list-jobs
Ejemplo de respuesta:
{ "jobs": [ { "Name": "hyperpod-cli-test", "Namespace": "hyperpod-ns-test-team", "CreationTime": "2024-11-18T21:21:15Z", "Priority": "training", "State": "Succeeded" } ] }
Obtención de información detallada sobre un trabajo
El siguiente comando proporciona los detalles de un trabajo. Si no se especifica ningún espacio de nombres, HyperPod AWS CLI buscará un espacio de nombres gestionado por la SageMaker IA al que tengas acceso.
hyperpod get-job --job-name hyperpod-cli-test
Ejemplo de respuesta:
{ "Name": "hyperpod-cli-test", "Namespace": "hyperpod-ns-test-team", "Label": { "app": "hyperpod-cli-test", "app.kubernetes.io/managed-by": "Helm", "kueue.x-k8s.io/priority-class": "training" }, "CreationTimestamp": "2024-11-18T21:21:15Z", "Status": { "completionTime": "2024-11-18T21:25:24Z", "conditions": [ { "lastTransitionTime": "2024-11-18T21:21:15Z", "lastUpdateTime": "2024-11-18T21:21:15Z", "message": "PyTorchJob hyperpod-cli-test is created.", "reason": "PyTorchJobCreated", "status": "True", "type": "Created" }, { "lastTransitionTime": "2024-11-18T21:21:17Z", "lastUpdateTime": "2024-11-18T21:21:17Z", "message": "PyTorchJob hyperpod-ns-test-team/hyperpod-cli-test is running.", "reason": "PyTorchJobRunning", "status": "False", "type": "Running" }, { "lastTransitionTime": "2024-11-18T21:25:24Z", "lastUpdateTime": "2024-11-18T21:25:24Z", "message": "PyTorchJob hyperpod-ns-test-team/hyperpod-cli-test successfully completed.", "reason": "PyTorchJobSucceeded", "status": "True", "type": "Succeeded" } ], "replicaStatuses": { "Worker": { "selector": "training.kubeflow.org/job-name=hyperpod-cli-test,training.kubeflow.org/operator-name=pytorchjob-controller,training.kubeflow.org/replica-type=worker", "succeeded": 1 } }, "startTime": "2024-11-18T21:21:15Z" }, "ConsoleURL": "https://us-west-2.console.aws.amazon.com/sagemaker/home?region=us-west-2#/cluster-management/hyperpod-eks-test-cluster-id“ }
Suspensión y anulación de la suspensión de trabajos
Si quieres eliminar algún trabajo enviado del planificador, HyperPod AWS CLI proporciona un suspend comando para eliminar temporalmente el trabajo de la organización. El trabajo suspendido ya no se programará a menos que el comando anule la suspensión del trabajo manualmente con el comando de la unsuspend.
Para suspender temporalmente un trabajo:
hyperpod patch-job suspend --job-name hyperpod-cli-test
Para volver a añadir un trabajo a la cola:
hyperpod patch-job unsuspend --job-name hyperpod-cli-test
Trabajos de depuración
HyperPod AWS CLI También proporciona otros comandos para depurar los problemas de envío de trabajos. Por ejemplo, list-pods y get-logs en el repositorio de HyperPod AWS CLI Github.