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.
SageMaker HyperPod meilleures pratiques de configuration du cycle de vie
SageMaker HyperPod propose toujours des clusters de up-and-running calcul, 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.
Préparez des scripts de cycle de vie pour configurer Slurm sur SageMaker HyperPod
Les rubriques suivantes expliquent comment préparer des scripts de cycle de vie sur lesquels installer Slurm
Rubriques
- Aperçu de haut niveau
- Commencez par les scripts de cycle de vie de base fournis par HyperPod
- Quelles configurations particulières sont HyperPod gérées dans les fichiers de configuration de Slurm
- Montez Amazon FSx for Lustre sur votre HyperPod cluster
- Validez les fichiers JSON de configuration avant de créer un cluster Slurm sur HyperPod
- Validez le temps d'exécution avant d'exécuter des charges de travail de production sur un cluster Slurm sur HyperPod
- Développez des scripts de cycle de vie de manière interactive sur un nœud de cluster
- Mettre à jour un cluster avec des scripts de cycle de vie nouveaux ou mis à jour
- Considérations
Aperçu de haut niveau
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 un
provisioning_parameters.json
fichier, qui est unFormulaire de configuration pour le provisionnement des nœuds Slurm sur HyperPod.provisioning_parameters.json
doit contenir les informations de configuration du nœud Slurm à provisionner sur le cluster. HyperPod Cela doit refléter la conception des nœuds Slurm 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 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.json
qu'ils soient générés HyperPod lors de la création du cluster.resource_config.json
contient des informations sur les ressources du HyperPod cluster telles que les adresses IP, les types d'instances etARNs, et c'est ce que vous devez utiliser pour configurer Slurm. -
Rassemblez tous les fichiers des étapes précédentes dans un dossier.
└── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py
-
Téléchargez tous les fichiers dans un compartiment S3. Copiez et conservez le chemin du compartiment S3. Notez que vous devez créer un chemin de compartiment S3 en commençant par,
sagemaker-
car vous devez choisir un chemin IAMrôle pour SageMaker HyperPod attaché avecAWS politique gérée : AmazonSageMakerClusterInstanceRolePolicy, qui n'autorise que les chemins de compartiment Amazon S3 commençant par le préfixesagemaker-
. La commande suivante est un exemple de commande permettant de télécharger tous les fichiers dans un compartiment Amazon S3.aws s3 cp --recursive
./lifecycle_files
s3://sagemaker-hyperpod-lifecycle/src
-
Préparez une demande HyperPod de création de cluster.
-
Option 1 : Si vous utilisez AWS CLI, rédigez une demande de création de cluster au JSON format (
create_cluster.json
) en suivant les instructions surCréation d'un nouveau cluster. -
Option 2 : Si vous utilisez l'interface utilisateur de la SageMaker console, remplissez le formulaire de demande de cluster dans l'interface utilisateur de la HyperPod console en suivant les instructions indiquées à l'adresseCré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.json
fichier dans les instances du HyperPod cluster et configure Slurm sur le cluster exécutant les scripts de cycle de vie.
La section suivante explique en détail comment organiser les fichiers de configuration et les scripts de cycle de vie de manière à ce qu'ils fonctionnent correctement lors de la création de HyperPod clusters.
Commencez par les scripts de cycle de vie de base fournis par HyperPod
Cette section vous présente tous les composants du processus de base de la configuration de Slurm selon HyperPod une approche descendante. Il commence par la préparation d'une demande de création de HyperPod cluster pour exécuter le CreateCluster
API, puis explore en profondeur la structure hiérarchique jusqu'aux scripts de cycle de vie. Utilisez les exemples de scripts de cycle de vie fournis dans le GitHub référentiel Awsome Distributed Training
git clone https://github.com/aws-samples/awsome-distributed-training/
Les scripts de cycle de vie de base pour la configuration d'un cluster Slurm SageMaker HyperPod sont disponibles sur. 1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
L'organigramme suivant présente un aperçu détaillé de la manière dont vous devez concevoir les scripts de cycle de vie de base. Les descriptions ci-dessous, le schéma et le guide de procédure expliquent comment ils fonctionnent pendant l' HyperPod CreateCluster
APIappel.
Figure : organigramme détaillé de la création de HyperPod clusters et de la structure des scripts de cycle de vie. (1) Les flèches en pointillés sont dirigées vers l'endroit où les cases sont « appelées » et indiquent le flux de préparation des fichiers de configuration et des scripts de cycle de vie. Cela commence par la préparation provisioning_parameters.json
et le cycle de vie des scripts. Ils sont ensuite codés lifecycle_script.py
pour une exécution collective dans l'ordre. Et l'exécution du lifecycle_script.py
script est effectuée par le script on_create.sh
shell, qui doit être exécuté dans le terminal de l' HyperPod instance. (2) Les flèches continues indiquent le flux principal de création du HyperPod cluster et la manière dont les cases sont « appelées » ou « soumises à ». on_create.sh
est obligatoire pour la demande de création de cluster, que ce soit dans le formulaire de demande de cluster create_cluster.json
ou dans le formulaire Créer une demande de cluster dans l'interface utilisateur de la console. Après avoir soumis la demande, HyperPod exécute le en CreateCluster
API fonction des informations de configuration fournies par la demande et des scripts de cycle de vie. (3) La flèche en pointillés indique que la HyperPod plateforme crée des instances resource_config.json
dans le cluster lors du provisionnement des ressources du cluster. resource_config.json
contient des informations sur les ressources du HyperPod cluster, telles que le clusterARN, les types d'instances et les adresses IP. Il est important de noter que vous devez préparer les scripts de cycle de vie pour attendre le resource_config.json
fichier lors de la création du cluster. Pour plus d'informations, consultez le guide de procédure ci-dessous.
Le guide de procédure suivant explique ce qui se passe lors de la création d'un HyperPod cluster et explique comment les scripts de cycle de vie de base sont conçus.
-
create_cluster.json
— Pour soumettre une demande de création de HyperPod cluster, vous devez préparer un fichier deCreateCluster
demande au JSON format. Dans cet exemple de bonnes pratiques, nous partons du principe que le fichier de demande est nommécreate_cluster.json
. Écrivezcreate_cluster.json
pour approvisionner un HyperPod cluster avec des groupes d'instances. La meilleure pratique consiste à ajouter le même nombre de groupes d'instances que le nombre de nœuds Slurm que vous prévoyez de configurer sur le HyperPod cluster. Assurez-vous de donner des noms distinctifs aux groupes d'instances que vous allez attribuer aux nœuds Slurm que vous prévoyez de configurer.Vous devez également spécifier un chemin de compartiment S3 pour stocker l'ensemble de vos fichiers de configuration et de scripts de cycle de vie
InstanceGroups.LifeCycleConfig.SourceS3Uri
dans le nom du champ du formulaire deCreateCluster
demande, et spécifier le nom de fichier d'un script shell de point d'entrée (supposons qu'il est nomméon_create.sh
) pour.InstanceGroups.LifeCycleConfig.OnCreate
Note
Si vous utilisez le formulaire de soumission de cluster dans l'interface utilisateur de la HyperPod console, la console gère le remplissage et l'envoi de la
CreateCluster
demande en votre nom, et l'exécuteCreateCluster
API dans le backend. Dans ce cas, vous n'avez pas besoin de créercreate_cluster.json
; assurez-vous plutôt de spécifier les informations de configuration de cluster correctes dans le formulaire de soumission de créer un cluster. -
on_create.sh
— Pour chaque groupe d'instances, vous devez fournir un script shell point d'entrée, pour exécuter des commandeson_create.sh
, exécuter des scripts pour installer des packages logiciels et configurer l'environnement du HyperPod cluster avec Slurm. Les deux éléments que vous devez préparer sont un élémentprovisioning_parameters.json
requis HyperPod pour configurer Slurm et un ensemble de scripts de cycle de vie pour l'installation de progiciels. Ce script doit être écrit pour rechercher et exécuter les fichiers suivants, comme indiqué dans l'exemple de script à l'adresseon_create.sh
. Note
Assurez-vous de télécharger l'ensemble complet des scripts de cycle de vie vers l'emplacement S3 que vous spécifiez
create_cluster.json
. Vous devez également le placerprovisioning_parameters.json
au même endroit.-
provisioning_parameters.json
— C'est unFormulaire de configuration pour le provisionnement des nœuds Slurm sur HyperPod. Leon_create.sh
script trouve ce JSON fichier et définit une variable d'environnement pour identifier le chemin d'accès à celui-ci. Grâce à ce JSON fichier, vous pouvez configurer les nœuds Slurm et les options de stockage telles qu'Amazon FSx pour que Lustre for Slurm communique avec. Dansprovisioning_parameters.json
, assurez-vous d'attribuer les groupes d'instances de HyperPod cluster en utilisant les noms que vous avez spécifiéscreate_cluster.json
aux nœuds Slurm de manière appropriée en fonction de la façon dont vous prévoyez de les configurer.Le schéma suivant montre un exemple de la façon dont les deux fichiers JSON
create_cluster.json
de configurationprovisioning_parameters.json
doivent être écrits pour attribuer des groupes d' HyperPod instances aux nœuds Slurm. Dans cet exemple, nous supposons la configuration de trois nœuds Slurm : le nœud contrôleur (gestion), le nœud de connexion (facultatif) et le nœud de calcul (travailleur).Astuce
Pour vous aider à valider ces deux JSON fichiers, l'équipe du HyperPod service fournit un script de validation,
validate-config.py
. Pour en savoir plus, consultez Validez les fichiers JSON de configuration avant de créer un cluster Slurm sur HyperPod. Figure : Comparaison directe entre la création
create_cluster.json
de HyperPod clusters et la configurationprovisiong_params.json
de Slurm. Le nombre de groupes d'instancescreate_cluster.json
doit correspondre au nombre de nœuds que vous souhaitez configurer en tant que nœuds Slurm. Dans le cas de l'exemple de la figure, trois nœuds Slurm seront configurés sur un HyperPod cluster de trois groupes d'instances. Vous devez attribuer les groupes d'instances du HyperPod cluster aux nœuds Slurm en spécifiant les noms des groupes d'instances en conséquence. -
resource_config.json
— Lors de la création du cluster, lelifecycle_script.py
script est écrit pour s'attendre à ce qu'unresource_config.json
fichier soit fourni HyperPod. Ce fichier contient des informations sur le cluster, telles que les types d'instances et les adresses IP.Lorsque vous exécutez le
CreateCluster
API, HyperPod crée un fichier de configuration des ressources sur la/opt/ml/config/resource_config.json
base ducreate_cluster.json
fichier. Le chemin du fichier est enregistré dans la variable d'environnement nomméeSAGEMAKER_RESOURCE_CONFIG_PATH
.Important
Le
resource_config.json
fichier est généré automatiquement par la HyperPod plateforme, et vous NOT devez le créer. Le code suivant montre un exemple deresource_config.json
ce qui serait créé à partir de la création du cluster surcreate_cluster.json
la base de l'étape précédente, et pour vous aider à comprendre ce qui se passe dans le backend et à quoiresource_config.json
ressemblerait une génération automatique.{ "ClusterConfig": { "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/abcde01234yz", "ClusterName": "your-hyperpod-cluster" }, "InstanceGroups": [ { "Name": "controller-machine", "InstanceType": "ml.c5.xlarge", "Instances": [ { "InstanceName": "controller-machine-1", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" } ] }, { "Name": "login-group", "InstanceType": "ml.m5.xlarge", "Instances": [ { "InstanceName": "login-group-1", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" } ] }, { "Name": "compute-nodes", "InstanceType": "ml.trn1.32xlarge", "Instances": [ { "InstanceName": "compute-nodes-1", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" }, { "InstanceName": "compute-nodes-2", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" }, { "InstanceName": "compute-nodes-3", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" }, { "InstanceName": "compute-nodes-4", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" } ] } ] }
-
lifecycle_script.py
— Il s'agit du script Python principal qui exécute collectivement les scripts de cycle de vie configurant Slurm sur le HyperPod cluster pendant le provisionnement. Ce script litprovisioning_parameters.json
etresource_config.json
extrait les chemins spécifiés ou identifiés danson_create.sh
, transmet les informations pertinentes à chaque script de cycle de vie, puis exécute les scripts de cycle de vie dans l'ordre.Les scripts Lifecycle sont un ensemble de scripts que vous pouvez personnaliser en toute flexibilité pour installer des packages logiciels et configurer les configurations nécessaires ou personnalisées lors de la création du cluster, telles que la configuration de Slurm, la création d'utilisateurs, l'installation de Conda ou Docker. L'exemple de
lifecycle_script.py
script est préparé pour exécuter d'autres scripts de cycle de vie de base dans le référentiel, tels que le lancement de Slurm deamons () start_slurm.sh
, le montage d'Amazon FSx pour Lustre ( mount_fsx.sh
) et la configuration de la comptabilité () et de la comptabilité () de MariaDB. setup_mariadb_accounting.sh
RDSsetup_rds_accounting.sh
Vous pouvez également ajouter d'autres scripts, les regrouper dans le même répertoire et ajouter des lignes de code pour lifecycle_script.py
permettre l' HyperPod exécution des scripts. Pour plus d'informations sur les scripts de cycle de vie de base, voir également 3.1 Scripts de cyclede vie dans le GitHub référentiel Awsome Distributed Training. Outre les configurations par défaut, d'autres scripts permettant d'installer les logiciels suivants sont disponibles dans le
utils
dossier. Le lifecycle_script.py
fichier est déjà prêt à inclure des lignes de code pour exécuter les scripts d'installation. Consultez les éléments suivants pour rechercher ces lignes et décommenter pour les activer.-
Les lignes de code suivantes concernent l'installation de Docker
, Enroot et Pyxis. Ces packages sont nécessaires pour exécuter des conteneurs Docker sur un cluster Slurm. Pour activer cette étape d'installation, définissez le
enable_docker_enroot_pyxis
paramètre surTrue
dans leconfig.py
fichier. # Install Docker/Enroot/Pyxis if Config.enable_docker_enroot_pyxis: ExecuteBashScript("./utils/install_docker.sh").run() ExecuteBashScript("./utils/install_enroot_pyxis.sh").run(node_type)
-
Vous pouvez intégrer votre HyperPod cluster à Amazon Managed Service for Prometheus et à Amazon Managed Grafana pour exporter les mesures relatives au cluster et aux nœuds du cluster vers les tableaux de HyperPod bord Amazon Managed Grafana. Pour exporter des métriques et utiliser le tableau de bord Slurm
, le tableau de bord NVIDIA DCGM Exporter et le tableau de bord EFA Metrics sur Amazon Managed Grafana, vous devez installer l'exportateur Slurm pour Prometheus, l'exportateur et l'exportateur de nœuds. NVIDIA DCGM EFA Pour plus d'informations sur l'installation des packages d'exportation et l'utilisation des tableaux de bord Grafana dans un espace de travail Grafana géré par Amazon, consultez. Surveiller les ressources SageMaker HyperPod du cluster Pour activer cette étape d'installation, définissez le
enable_observability
paramètre surTrue
dans leconfig.py
fichier. # Install metric exporting software and Prometheus for observability if Config.enable_observability: if node_type == SlurmNodeType.COMPUTE_NODE: ExecuteBashScript("./utils/install_docker.sh").run() ExecuteBashScript("./utils/install_dcgm_exporter.sh").run() ExecuteBashScript("./utils/install_efa_node_exporter.sh").run() if node_type == SlurmNodeType.HEAD_NODE: wait_for_scontrol() ExecuteBashScript("./utils/install_docker.sh").run() ExecuteBashScript("./utils/install_slurm_exporter.sh").run() ExecuteBashScript("./utils/install_prometheus.sh").run()
-
-
-
Assurez-vous de télécharger tous les fichiers de configuration et tous les scripts de configuration de l'étape 2 vers le compartiment S3 que vous avez fourni dans la
CreateCluster
demande de l'étape 1. Supposons, par exemple, que vous disposiezcreate_cluster.json
des éléments suivants."LifeCycleConfig": { "SourceS3URI": "
s3://sagemaker-hyperpod-lifecycle/src
", "OnCreate": "on_create.sh
" }Ensuite, vous
"s3://sagemaker-hyperpod-lifecycle/src"
devez conteniron_create.sh
,lifecycle_script.py
provisioning_parameters.json
, et tous les autres scripts de configuration. Supposons que vous ayez préparé les fichiers dans un dossier local comme suit.└── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py
Pour télécharger les fichiers, utilisez la commande S3 comme suit.
aws s3 cp --recursive
./lifecycle_scripts
s3://sagemaker-hyperpod-lifecycle/src
Quelles configurations particulières sont HyperPod gérées dans les fichiers de configuration de Slurm
Lorsque vous créez un cluster Slurm sur HyperPod, l' HyperPod agent configure les gres.conf
slurm.conf
/opt/slurm/etc/
pour gérer le cluster Slurm en fonction de votre demande de création de cluster et de vos scripts de HyperPod cycle de vie. La liste suivante indique les paramètres spécifiques que l' HyperPod agent gère et remplace.
Important
Nous vous recommandons vivement de ne pas modifier ces paramètres gérés par HyperPod.
-
Dans
slurm.conf
, HyperPod définit les paramètres de base suivants : ClusterName
SlurmctldHost
,PartitionName
, etNodeName
.En outre, pour activer la Reprise automatique fonctionnalité, HyperPod les
SchedulerParameters
paramètresTaskPlugin
et doivent être définis comme suit. L' HyperPod agent définit ces deux paramètres avec les valeurs requises par défaut.TaskPlugin=task/none SchedulerParameters=permit_job_expansion
-
Dans
gres.conf
, HyperPod gère NodeName
les GPU nœuds.
Montez Amazon FSx for Lustre sur votre HyperPod cluster
Pour monter un système de fichiers partagé Amazon FSx for Lustre sur votre HyperPod cluster, configurez ce qui suit.
-
Utilisez votre AmazonVPC.
-
Pour que les instances de HyperPod cluster puissent communiquer au sein de votre entrepriseVPC, assurez-vous d'associer des autorisations supplémentaires, conformément IAMrôle pour SageMaker HyperPod aux instructions du IAM rôle pour SageMaker HyperPod.
-
Dans
create_cluster.json
, incluez les VPC informations suivantes."VpcConfig": { "SecurityGroupIds": [ "
string
" ], "Subnets": [ "string
" ] }Pour plus de conseils sur la configuration d'AmazonVPC, consultezConfiguration SageMaker HyperPod avec Amazon VPC.
-
-
Pour terminer la configuration de Slurm avec Amazon FSx for Lustre, spécifiez le FSx DNS nom Amazon et le nom du FSx montage Amazon
provisioning_parameters.json
comme indiqué dans la figure de la Commencez par les scripts de cycle de vie de base fournis par HyperPod section. Vous pouvez trouver les FSx informations Amazon depuis la console Amazon FSx for Lustre de votre compte ou en exécutant la commande suivante AWS CLI commande,aws fsx describe-file-systems
."fsx_dns_name": "
fs-12345678a90b01cde
.fsx.us-west-2
.amazonaws.com", "fsx_mountname": "1abcdefg
"
Validez les fichiers JSON de configuration avant de créer un cluster Slurm sur HyperPod
Pour valider les fichiers JSON de configuration avant de soumettre une demande de création de cluster, utilisez le script de validation de configuration validate-config.py
provisioning_parameters.json
fichiers create_cluster.json
et de la Commencez par les scripts de cycle de vie de base fournis par HyperPod section, exécutez le script de validation comme suit.
python3 validate-config.py --cluster-config
create_cluster.json
--provisioning-parametersprovisioning_parameters.json
Voici un exemple de résultat d'une validation réussie.
✔️ Validated instance group name worker-group-1 is correct ... ✔️ Validated subnet subnet-012345abcdef67890 ... ✔️ Validated security group sg-012345abcdef67890 ingress rules ... ✔️ Validated security group sg-012345abcdef67890 egress rules ... ✔️ Validated FSx Lustre DNS name fs-012345abcdef67890.fsx.us-east-1.amazonaws.com ✔️ Validated FSx Lustre mount name abcdefgh ✅ Cluster Validation succeeded
Validez le temps d'exécution avant d'exécuter des charges de travail de production sur un cluster Slurm sur HyperPod
Pour vérifier le temps d'exécution avant d'exécuter des charges de travail de production sur un cluster Slurm HyperPod, utilisez le script de validation de l'exécution. hyperpod-precheck.py
Pour exécuter le script sur plusieurs nœuds à la fois, utilisez srun
comme indiqué dans l'exemple de commande suivant pour exécuter le script sur un cluster Slurm de 8 nœuds.
# The following command runs on 8 nodes srun -N
8
python3 hyperpod-precheck.py
Note
Pour en savoir plus sur le script de validation, notamment les fonctions de validation d'exécution qu'il fournit et les instructions pour résoudre les problèmes qui ne passent pas les validations, consultez la section Validation de l'exécution avant d'exécuter des charges de travail
Développez des scripts de cycle de vie de manière interactive sur un nœud de cluster
Cette section explique comment développer des scripts de cycle de vie de manière interactive sans créer et supprimer un HyperPod cluster à plusieurs reprises.
-
Créez un HyperPod cluster avec les scripts de cycle de vie de base.
-
Connectez-vous à un nœud de cluster.
-
Développez un script (
configure_xyz.sh
) en le modifiant et en l'exécutant à plusieurs reprises sur le nœud.-
HyperPod exécute les scripts de cycle de vie en tant qu'utilisateur root. Nous vous recommandons donc de les exécuter en
configure_xyz.sh
tant qu'utilisateur root pendant le développement afin de vous assurer que le script est testé dans les mêmes conditions lorsqu'il est exécuté par HyperPod.
-
-
Intégrez le script en
lifecycle_script.py
ajoutant une ligne de code similaire à la suivante.ExecuteBashScript("./utils/
configure_xyz.sh
").run() -
Téléchargez les scripts de cycle de vie mis à jour dans le compartiment S3 que vous avez initialement utilisé pour télécharger les scripts de cycle de vie de base.
-
Testez la version intégrée de
lifecycle_script.py
en créant un nouveau HyperPod cluster.
Mettre à jour un cluster avec des scripts de cycle de vie nouveaux ou mis à jour
Il existe trois méthodes pour mettre à jour le HyperPod logiciel.
-
UpdateClusterSoftware
APIPour appliquer des correctifs au HyperPod logiciel, les scripts de cycle de vie sont réexécutés sur l'ensemble du groupe d'instances. -
Il exécute
UpdateCluster
API uniquement les scripts de cycle de vie pour les nouveaux groupes d'instances. -
Vous pouvez également exécuter des scripts de cycle de vie directement dans les HyperPod instances.
Considérations
Tenez compte des points suivants lors de l'utilisation SageMaker HyperPod.
-
HyperPod s'exécute SageMaker HyperPod DLAMI sur chaque instance d'un cluster, et AMI possède des progiciels préinstallés conformes aux compatibilités entre eux et HyperPod aux fonctionnalités. Notez que si vous réinstallez l'un des packages préinstallés, vous êtes responsable de l'installation des packages compatibles et notez que certaines HyperPod fonctionnalités risquent de ne pas fonctionner comme prévu.