Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Personnalisation des SageMaker HyperPod clusters à l'aide de scripts de cycle de vie
SageMaker HyperPod propose toujours des clusters de up-and-running calcul, qui sont hautement personnalisables car vous pouvez écrire des scripts de cycle de vie pour indiquer SageMaker HyperPod comment configurer les ressources du cluster. Les rubriques suivantes présentent les meilleures pratiques pour préparer des scripts de cycle de vie afin de configurer des SageMaker HyperPod clusters avec des outils de gestion de charge de travail open source.
Les rubriques suivantes présentent en détail les meilleures pratiques pour préparer des scripts de cycle de vie sur lesquels configurer les configurations Slurm. SageMaker HyperPod
Présentation générale
La procédure suivante est le flux principal du provisionnement d'un HyperPod cluster et de sa configuration avec Slurm. Les étapes sont classées selon une approche ascendante.
-
Planifiez la manière dont vous souhaitez créer des nœuds Slurm sur un HyperPod cluster. Par exemple, si vous souhaitez configurer deux nœuds Slurm, vous devez configurer deux groupes d'instances dans un HyperPod cluster.
-
Préparez la configuration de Slurm. Choisissez l'une des approches suivantes :
-
Option A : Configuration pilotée par API (recommandée) — Définissez les types de nœuds et les partitions Slurm directement dans la charge utile de l'
CreateClusterAPI au sein de chaque groupe d'SlurmConfiginstances. Avec cette approche :-
Aucun
provisioning_parameters.jsonfichier n'est nécessaire -
La topologie Slurm est définie dans la charge utile de l'API avec les définitions des groupes d'instances
-
FSx les systèmes de fichiers sont configurés via per-instance-group
InstanceStorageConfigs -
La stratégie de configuration est contrôlée via
Orchestrator.Slurm.SlurmConfigStrategy
Exemple
SlurmConfigdans un groupe d'instances :{ "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 8, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] } } -
-
Option B : Configuration héritée — Préparez un
provisioning_parameters.jsonfichier, qui est unFormulaire de configuration pour provisioning_parameters.json.provisioning_parameters.jsondoit contenir les informations de configuration du nœud Slurm à provisionner sur le cluster. HyperPod Cela doit refléter la conception des nœuds Slurm à partir de l’étape 1.
-
-
Préparez un ensemble de scripts de cycle de vie pour configurer Slurm HyperPod afin d'installer des packages logiciels et de configurer un environnement dans le cluster adapté à votre cas d'utilisation. Vous devez structurer les scripts de cycle de vie de manière à ce qu’ils s’exécutent collectivement dans un script Python central (
lifecycle_script.py), et écrire un script shell de point d’entrée (on_create.sh) pour exécuter le script Python. Le script shell entrypoint est ce que vous devez fournir à une demande de création de HyperPod cluster plus tard à l'étape 5.Notez également que vous devez écrire les scripts dans lesquels vous vous attendez à ce
resource_config.jsonqu'ils soient générés HyperPod lors de la création du cluster.resource_config.jsoncontient des informations sur les ressources du HyperPod cluster telles que les adresses IP, les types d'instances et ARNs, et c'est ce que vous devez utiliser pour configurer Slurm. -
Rassemblez tous les fichiers des étapes précédentes dans un dossier. La structure des dossiers dépend de l'approche de configuration que vous avez sélectionnée à l'étape 2.
Si vous avez sélectionné l'option A (configuration pilotée par API) :
Votre dossier a uniquement besoin de scripts de cycle de vie pour les tâches de configuration personnalisées. La configuration et le FSx montage du Slurm sont gérés automatiquement en HyperPod fonction de la charge utile de l'API.
└── lifecycle_files // your local folder ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scripts to be fed into lifecycle_script.pyNote
Le
provisioning_parameters.jsonfichier n'est pas obligatoire lors de l'utilisation d'une configuration pilotée par API.Si vous avez sélectionné l'option B (ancienne configuration) :
Votre dossier doit inclure
provisioning_parameters.jsonl'ensemble complet des scripts de cycle de vie.└── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py -
Chargez tous les fichiers dans un compartiment S3. Copiez et conservez le chemin de ce compartiment S3. Notez que vous devez créer un chemin de compartiment S3 commençant par
sagemaker-, car vous devez choisir un Rôle IAM pour SageMaker HyperPod attaché avec AmazonSageMakerClusterInstanceRolePolicy, qui autorise uniquement les chemins de compartiment S3 commençant par le préfixesagemaker-. La commande suivante est un exemple de commande pour charger tous les fichiers dans un compartiment S3.aws s3 cp --recursive./lifecycle_filess3://sagemaker-hyperpod-lifecycle/src -
Préparez une demande HyperPod de création de cluster.
-
Option 1 : Si vous utilisez le AWS CLI, rédigez une demande de création de cluster au format JSON (
create_cluster.json) en suivant les instructions surCréation d’un nouveau cluster. -
Option 2 : Si vous utilisez l'interface utilisateur de la console SageMaker AI, remplissez le formulaire de demande de création d'un cluster dans l'interface utilisateur de la HyperPod console en suivant les instructions surCréation d'un SageMaker HyperPod cluster.
À ce stade, assurez-vous de créer des groupes d’instances dans la même structure que celle que vous avez planifiée aux étapes 1 et 2. Assurez-vous également de spécifier le compartiment S3 à l’étape 5 dans les formulaires de demande.
-
-
Soumettez la demande de création de cluster. HyperPod approvisionne un cluster en fonction de la demande, puis crée un
resource_config.jsonfichier dans les instances du HyperPod cluster et configure Slurm sur le cluster exécutant les scripts de cycle de vie.
Les rubriques suivantes vous expliquent en détail comment organiser les fichiers de configuration et les scripts de cycle de vie pour qu'ils fonctionnent correctement lors de la création de HyperPod clusters.