Personalización de los clústeres de SageMaker HyperPod con scripts de ciclo de vida
SageMaker HyperPod ofrece clústeres de computación siempre en funcionamiento, que son altamente personalizables, ya que puede escribir scripts de ciclo de vida para indicar a SageMaker HyperPod cómo configurar los recursos del clúster. Los siguientes temas son prácticas recomendadas para preparar scripts de ciclo de vida para configurar clústeres de SageMaker HyperPod con herramientas de administración de cargas de trabajo de código abierto.
En los siguientes temas, se analizan en profundidad prácticas recomendadas para preparar scripts de ciclo de vida para realizar configuraciones de Slurm en SageMaker HyperPod.
Descripción general
El siguiente procedimiento es el flujo principal de aprovisionamiento de un clúster de HyperPod y configuración con Slurm. Los pasos se ordenan siguiendo un enfoque ascendente.
-
Planifique el modo en que quiere crear los nodos de Slurm en un clúster de HyperPod. Por ejemplo, si quiere configurar dos nodos de Slurm, tendrá que configurar dos grupos de instancias en un clúster de HyperPod.
-
Prepare un archivo
provisioning_parameters.json, que es un Formulario de configuración para el aprovisionamiento de nodos de Slurm en HyperPod.provisioning_parameters.jsondebe contener la información de configuración del nodo de Slurm para aprovisionarla en el clúster de HyperPod. Esto debería reflejar el diseño de los nodos de Slurm del paso 1. -
Prepare un conjunto de scripts de ciclo de vida para configurar Slurm en HyperPod para instalar paquetes de software y configurar un entorno en el clúster para su caso de uso. Debe estructurar los scripts de ciclo de vida para que se ejecuten de forma colectiva y en orden en un script de Python central (
lifecycle_script.py) y escribir un script de intérprete de comandos de punto de entrada (on_create.sh) para ejecutar el script de Python. El script de intérprete de comandos de punto de entrada es lo que tendrá que proporcionar en una solicitud de creación de clúster de HyperPod más adelante en el paso 5.Además, tenga en cuenta que debe escribir los scripts para que esperen el archivo
resource_config.json, que será generado por HyperPod durante la creación del clúster.resource_config.jsoncontiene información sobre los recursos del clúster de HyperPod, como direcciones IP, tipos de instancia y ARN, y es lo que debe usar para configurar Slurm. -
Reúna todos los archivos de los pasos anteriores en una carpeta.
└── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py -
Cargue todos los archivos en un bucket de S3. Copie y conserve la ruta del bucket de S3. Tenga en cuenta que debe crear una ruta de bucket de S3 que empiece por
sagemaker-, ya que tiene que elegir un Rol de IAM para SageMaker HyperPod asociado a AmazonSageMakerClusterInstanceRolePolicy, que solo permite las rutas de bucket de S3 que comienzan con el prefijosagemaker-. El siguiente comando es un ejemplo de comando para cargar todos los archivos en un bucket de S3.aws s3 cp --recursive./lifecycle_filess3://sagemaker-hyperpod-lifecycle/src -
Prepare una solicitud de creación de un clúster de HyperPod.
-
Opción 1: si utiliza la AWS CLI, escriba una solicitud de creación de clústeres en formato JSON (
create_cluster.json) siguiendo las instrucciones que aparecen en Creación de un nuevo clúster. -
Opción 2: si utiliza la interfaz de usuario de la consola de SageMaker AI, rellene el formulario de solicitud Crear un clúster en la interfaz de usuario de la consola de HyperPod siguiendo las instrucciones que se indican en Creación de un clúster de SageMaker HyperPod.
En esta fase, asegúrese de crear grupos de instancias en la misma estructura que planeó en los pasos 1 y 2. Además, asegúrese de especificar el bucket de S3 del paso 5 en los formularios de solicitud.
-
-
Envíe la solicitud de creación del clúster. HyperPod aprovisiona un clúster basado en la solicitud y, a continuación, crea un archivo
resource_config.jsonen las instancias del clúster de HyperPod y configura Slurm en el clúster ejecutando los scripts de ciclo de vida.
En los siguientes temas, se explica de forma detallada cómo organizar los archivos de configuración y los scripts de ciclo de vida para que funcionen correctamente durante la creación del clúster de HyperPod.
Temas
Qué configuraciones concretas administra HyperPod en los archivos de configuración de Slurm
Validación de los archivos de configuración JSON antes de crear un clúster de Slurm en HyperPod
Desarrollo de scripts de ciclo de vida de forma interactiva en un nodo de clúster de HyperPod
Actualización de un clúster con scripts de ciclo de vida nuevos o actualizados