Bonnes pratiques pour exécuter des charges de travail HPC sur GKE

Google Kubernetes Engine (GKE) fournit une plate-forme évolutive et hautes performances pour les charges de travail de calcul hautes performances (HPC). Pour atteindre des performances élevées et une efficacité opérationnelle, vous pouvez utiliser l'infrastructure optimisée pour les charges de travail, telle que les familles de VM spécifiques au HPC, fournies par GKE. Ce document décrit les bonnes pratiques pour gérer votre infrastructure et vos charges de travail afin d'optimiser l'exécution de vos applications HPC sur GKE.

Pour obtenir un aperçu complet de toutes les bonnes pratiques GKE, consultez Bonnes pratiques pour GKE.

Configuration de l'infrastructure et des nœuds

Cette section décrit les bonnes pratiques à suivre pour configurer votre infrastructure sous-jacente et vos nœuds GKE pour les charges de travail HPC.

Choisir des VM H4D pour les charges de travail nécessitant beaucoup de ressources de calcul

Sélectionnez le matériel approprié pour votre application. Les VM H4D sont conçues pour maximiser le débit des applications HPC gourmandes en ressources de calcul. Les VM H4D offrent des performances élevées, un faible coût et une évolutivité pour les charges de travail multinœuds. La famille H4D fait partie de la famille de machines optimisées pour le calcul, qui propose des instances optimisées pour le calcul, idéales pour les charges de travail exigeantes en calcul et le HPC.

Pour en savoir plus sur la série de machines H4D, consultez Famille de machines optimisées pour le calcul : série de machines H4D.

Pour savoir comment créer des clusters GKE optimisés pour le HPC, consultez Exécuter des charges de travail de calcul hautes performances avec H4D.

Prendre en compte les ressources pouvant être allouées aux nœuds

Comprendre la différence entre la capacité totale des ressources d'un nœud et les ressources pouvant être allouées à vos charges de travail. Les nœuds GKE exécutent des composants système, tels que kubelet et l'environnement d'exécution de conteneur, qui nécessitent des ressources pour fonctionner. GKE réserve une quantité prédéfinie de ressources pour les fonctionnalités système et la fiabilité des nœuds. Comprendre la quantité de ressources allouées à votre charge de travail (la taille de la VM moins la capacité réservée par GKE) peut vous aider à dimensionner correctement les requêtes de ressources pour vos charges de travail HPC.

Pour en savoir plus, consultez les ressources suivantes :

Réserver des cœurs pour limiter les préemptions

Si une charge de travail utilise tous les cœurs physiques disponibles sur un nœud, elle peut entrer en concurrence avec les daemons système sensibles à la latence. Cette contention peut entraîner des préemptions fréquentes, où le planificateur de l'OS interrompt la charge de travail HPC pour effectuer des tâches système, ce qui peut dégrader les performances.

Pour maintenir les performances, évitez d'allouer tous les processeurs disponibles à votre charge de travail. Les processus système essentiels nécessitent une petite quantité de ressources de processeur pour fonctionner correctement. L'allocation de 100% de la capacité de calcul à votre charge de travail crée un conflit de ressources avec ces composants système, ce qui peut dégrader les performances. Par exemple, pour les types de machines H4D, afin de maintenir les performances, configurez votre charge de travail pour qu'elle utilise moins de 192 processeurs.

Configuration du cluster et de la charge de travail

Cette section décrit les bonnes pratiques à suivre pour configurer vos clusters GKE et déployer vos charges de travail HPC.

Utiliser Cluster Toolkit pour créer des clusters

Utilisez Cluster Toolkit pour simplifier le déploiement et la gestion des charges de travail HPC sur GKE. Le kit fournit des plans de conception de référence qui intègrent les bonnes pratiques de configuration des ressources de calcul, de stockage et de mise en réseau dans un environnement hautes performances.

Pour savoir comment utiliser Cluster Toolkit afin de créer un cluster H4D, consultez Exécuter des charges de travail de calcul hautes performances avec H4D.

Utiliser le démarrage flexible pour la gestion de la capacité

Pour les charges de travail HPC intensives (dynamiques) ou non sensibles au temps, utilisez le démarrage flexible pour améliorer la gestion de la capacité lorsque la capacité H4D à la demande ou réservée n'est pas disponible. Le démarrage flexible gère le cycle de vie des nœuds H4D et permet de répondre aux besoins en ressources ponctuels ou urgents.

Pour en savoir plus, consultez Créer un cluster H4D avec démarrage flexible.

Utiliser une stratégie d'emplacement compact pour les charges de travail à couplage fort

Mettez en œuvre une stratégie d'emplacement compact pour les charges de travail HPC à couplage fort et sensibles à la latence. Cette règle permet de s'assurer que tous les pods sont provisionnés à proximité les uns des autres sur les machines hôtes. Cette configuration minimise la latence réseau entre les nœuds, ce qui est essentiel pour les applications qui s'appuient sur la communication entre les nœuds.

Si vous créez un cluster H4D à l'aide de gcloud CLI, comme décrit dans Exécuter des charges de travail de calcul hautes performances avec H4D, GKE configure automatiquement une stratégie de placement compact. Si vous utilisez Cluster Toolkit, cette règle est également configurée automatiquement. Si vous souhaitez configurer manuellement un emplacement compact pour d'autres types de nœuds, consultez Définir un emplacement compact pour les nœuds GKE.

Définir des demandes de ressources appropriées

Inspectez le processeur allouable réel sur vos nœuds avant de dimensionner vos jobs HPC. Utilisez la commande kubectl get node pour afficher les ressources pouvant être allouées. Assurez-vous que les exigences de processeur de votre job ne dépassent pas ce dont GKE dispose après les réservations du système GKE.

GKE propose plusieurs fonctionnalités pour vous aider à analyser et à ajuster automatiquement vos requêtes de ressources. Pour en savoir plus, commencez par Identifier les charges de travail sous-provisionnées et surprovisionnées.

Dédier des nœuds entiers à des charges de travail uniques

Configurez vos jobs MPI pour qu'ils occupent un nœud H4D entier. Les instances H4D sont provisionnées en tant que VM hôtes entières. Cette stratégie réserve la grande majorité de la capacité du nœud, ce qui garantit l'isolation de votre charge de travail. Utilisez des requêtes de ressources de conteneur ou l'anti-affinité de pod pour vous assurer que les instances répliquées ne se retrouvent pas sur le même nœud physique.

Activer Cloud RDMA pour une mise en réseau à haut débit avec des VM H4D

Si vous utilisez des VM H4D, configurez votre fichier manifeste de déploiement pour activer Cloud RDMA pour vos pods. Cette configuration permet de s'assurer que les interfaces réseau RDMA haut débit sont correctement exposées à votre charge de travail conteneurisée. Pour obtenir des instructions, consultez Configurer les fichiers manifestes pour RDMA.

Récapitulatif des bonnes pratiques

Le tableau suivant récapitule les bonnes pratiques recommandées dans ce document :

Sujet Tâche
Configuration de l'infrastructure et des nœuds Choisir des VM H4D pour les charges de travail nécessitant beaucoup de ressources de calcul
Configuration de l'infrastructure et des nœuds Tenir compte des ressources pouvant être allouées aux nœuds
Configuration de l'infrastructure et des nœuds Réserver des cœurs pour limiter les préemptions
Configuration du cluster et de la charge de travail Utiliser Cluster Toolkit pour créer des clusters
Configuration du cluster et de la charge de travail Utiliser le démarrage flexible pour la gestion de la capacité
Configuration du cluster et de la charge de travail Utiliser une stratégie d'emplacement compact pour les charges de travail à couplage fort
Configuration du cluster et de la charge de travail Définir des demandes de ressources appropriées
Configuration du cluster et de la charge de travail Dédier des nœuds entiers à des charges de travail uniques
Configuration du cluster et de la charge de travail Activer Cloud RDMA pour une mise en réseau à haut débit avec des VM H4D

Étapes suivantes