Introduction
Les charges de travail de calcul hautes performances étroitement couplée utilisent souvent l'interface de transmission de messages (MPI, Message Passing Interface) pour communiquer entre les processus et les instances de machines virtuelles (VM). Toutefois, la création de votre propre image de VM adaptée aux performances MPI optimales nécessite une expertise système, une connaissance de Google Cloud et un temps de maintenance supplémentaire. Pour créer rapidement des instances de VM pour vos charges de travail HPC, vous pouvez utiliser l'image de VM HPC. Vous pouvez également créer des VM à l'aide de la série de machines H3.
L'image de VM HPC est une image de VM basée sur CentOS 7.9 ou Rocky Linux 8 qui est optimisée pour les charges de travail HPC à couplage fort. Elle inclut le noyau préconfiguré et les paramètres de réglages réseau nécessaires pour créer des instances de VM qui atteignent des performances MPI optimales sur Google Cloud.
Vous pouvez créer une VM compatible avec le HPC à l'aide des options suivantes :
- Google Cloud CLI
- Console Google Cloud. Dans la console, l'image est disponible via Cloud Marketplace.
- Slurm Workload Manager de SchedMD, qui utilise l'image de VM HPC par défaut.
- Omnibond CloudyCluster, qui utilise l'image de VM HPC par défaut.
Avantages
L'image de VM HPC offre les avantages suivants :
- VM compatibles avec HPC prêtes à l'emploi. Vous n'avez pas besoin de régler manuellement les performances, de gérer les redémarrages des VM ni de vous tenir informé des dernières mises à jour Google Cloud concernant les charges de travail HPC à couplage fort.
- Optimisations de la mise en réseau pour les charges de travail à couplage fort. Optimisations permettant de réduire la latence des petits messages, ce qui profite aux applications fortement dépendantes des communications de type point à point et collectives.
- Optimisations du calcul pour les charges de travail HPC. Optimisations permettant de réduire la gigue du système, ce qui rend les hautes performances plus prévisibles sur un nœud unique.
- Performances cohérentes et reproductibles. La standardisation des images de VM offre des performances cohérentes et reproductibles au niveau de l'application.
- Compatibilité des applications améliorée L'alignement avec les exigences au niveau du nœud de la spécification de la plate-forme HPC Intel permet un haut degré d'interopérabilité entre les systèmes.
Fonctionnalités
Désactiver les mises à jour automatiques
Les mises à jour automatiques peuvent avoir un impact négatif sur les performances des applications HPC. Les mises à jour automatiques peuvent être désactivées lorsque vous utilisez les images de VM HPC en définissant l'entrée de métadonnées google_disable_automatic_updates
sur TRUE
lors de la création d'une VM. La façon dont les métadonnées doivent être définies lors de la création de la VM dépend de l'outil que vous utilisez pour créer la VM.
Par exemple, lorsque vous utilisez la commande gcloud compute instances create
pour créer une VM, fournissez l'argument --metadata
. Pour en savoir plus, consultez la page À propos des métadonnées de VM.
Réglages collectifs Intel MPI
L'image de VM HPC inclut les réglages collectifs Intel MPI effectués sur les instances c2-standard-60
et c2d-standard-112
à l'aide de stratégies de concentration.
RPM préinstallés
Les packages RPM suivants sont préinstallés sur l'image de la VM HPC:
daos-client
gcc-gfortran
gcc-toolset-12
Lmod
dkms
htop
hwloc
hwloc-devel
kernel-devel
libfabric
libXt
ltrace
nfs-utils
numactl
numactl-devel
papi
pciutils
pdsh
perf
redhat-lsb-core
redhat-lsb-cxx
rsh
screen
strace
wget
zsh
- Groupe de packages "Outils pour les développeurs"
Guides de démarrage rapide
Avant de commencer
- Pour utiliser Google Cloud CLI dans le cadre de ce guide de démarrage rapide, vous devez d'abord installer et initialiser Google Cloud CLI :
- Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
Créer une instance de VM HPC
Créer la VM
Nous vous recommandons vivement de choisir un type de machine optimisé pour le calcul, tel queC2, C2D ou H3. Ces VM ont un mappage virtuel/physique principal fixe et exposent l'architecture de cellule NUMA au système d'exploitation invité. Ces deux éléments sont essentiels à la performance d'applications HPC à couplage fort.
Console
Dans la console Google Cloud, accédez à la page de Cloud Marketplace sur les VM HPC. Accéder à la page "HPC VM" (VM HPC) de Cloud Marketplace
Cliquez sur Lancer.
Sur la page de déploiement de la VM HPC, saisissez le nom du déploiement. Ce nom devient la racine du nom de la VM. Compute Engine ajoute
-vm
à ce nom lorsque vous nommez votre instance.Choisissez une zone et un type de machine. Dans ce guide de démarrage rapide, vous pouvez laisser tous les paramètres tels quels ou les modifier. Nous vous recommandons vivement de choisir un type de machine optimisé pour le calcul, tel que C2, C2D ou H3.
Laissez les valeurs par défaut dans les champs Boot disk type (Type de disque de démarrage), Boot disk size (Taille du disque de démarrage) et Network interface (Interface réseau).
Cliquez sur Déployer.
Une fois la création de l'instance de VM terminée, Cloud Deployment Manager s'ouvre afin que vous puissiez gérer votre VM HPC et vos autres déploiements.
gcloud
Créez une VM HPC à l'aide de la commande instances create
.
Nous vous recommandons vivement de créer des VM HPC à l'aide des stratégies d'emplacement compact afin d'atteindre une faible latence du réseau. Si vous avez besoin de plus de VM que ne le permet une seule stratégie d'emplacement compact, divisez vos VM en plusieurs stratégies d'emplacement. Nous vous recommandons d'utiliser le nombre minimal de règles d'emplacement adaptées à vos VM.
gcloud compute instances create VM_NAME \ --zone=ZONE \ --image-family=IMAGE_FAMILY \ --image-project=cloud-hpc-image-public \ --maintenance-policy=TERMINATE \ --machine-type=MACHINE_TYPE
Remplacez les éléments suivants :
VM_NAME
: nom de la VM HPC à créer.ZONE
: zone dans laquelle la VM sera créée.IMAGE_FAMILY
: famille d'images de l'image avec laquelle créer des instances de VM. Utilisezhpc-centos-7
pour une image basée sur CentOS ouhpc-rocky-linux-8
pour une image basée sur Rocky Linux 8.MACHINE_TYPE
: type de machine pour la nouvelle VM.
Après un certain temps, la création de l'instance de VM se termine. Pour vérifier la VM et afficher son état, exécutez la commande suivante :
gcloud compute instances describe VM_NAME
Accéder à la VM
Console
Une fois que vous avez créé votre instance de VM HPC, elle démarre automatiquement. Pour y accéder, procédez comme suit:
Dans Google Cloud Console, accédez à la page Instances de VM.
Cliquez sur le nom de votre instance de VM.
Dans la section Accès à distance, cliquez sur la première liste déroulante et choisissez le mode d'accès à l'instance souhaité.
Compute Engine propage vos clés SSH et crée votre utilisateur. Pour en savoir plus, consultez la page Se connecter à des VM Linux.
gcloud
Une fois que vous avez créé votre instance de VM HPC, elle démarre automatiquement. Pour y accéder via SSH, exécutez la commande compute ssh
:
gcloud compute ssh VM_NAME
Compute Engine propage vos clés SSH et crée votre utilisateur. Pour en savoir plus, consultez la page Se connecter à des instances.
Nettoyer
Pour éviter que les ressources utilisées dans ce guide de démarrage rapide soient facturées sur votre compte Google Cloud, supprimez l'instance de VM HPC que vous avez créée.
Console
Dans la console Google Cloud, accédez à la page Déploiements.
Cochez la case en regard du déploiement de la VM HPC.
Cliquez sur Supprimer.
gcloud
Exécutez la commande instances delete
:
gcloud compute instances delete VM_NAME
Créer des VM HPC avec des règles de concentration
Vous pouvez réduire la latence entre les VM en créant une règle de concentration. Une règle de concentration garantit que les VM situées dans la même zone de disponibilité sont proches les unes des autres.
Pour créer des VM HPC qui spécifient une règle de concentration, procédez comme suit :
Effectuez l'une des opérations suivantes :
Configurer votre VM HPC selon les bonnes pratiques
Pour optimiser les performances de votre VM HPC et les rendre plus prévisibles, nous vous recommandons de suivre les bonnes pratiques suivantes.
Désactiver le multithreading simultané
L'image de VM HPC permet d'utiliser le multithreading simultané (SMT), également appelé Hyper-Threading sur les processeurs Intel, par défaut. La désactivation du SMT peut améliorer les performances de vos tâches et réduire les temps de tâche.
Vous pouvez utiliser les méthodes suivantes pour désactiver SMT :
Pour désactiver SMT lors de la création d'une VM HPC, suivez les étapes permettant de créer une VM HPC et ajoutez l'option
--threads-per-core=1
.Pour désactiver SMT sur une VM HPC existante, connectez-vous à la VM et exécutez la commande suivante à partir de la VM :
sudo google_mpi_tuning --nosmt
Pour en savoir plus, consultez la section Définir le nombre de threads par cœur.
Utiliser gVNIC comme interface de réseau virtuel
L'image de VM HPC est compatible avec Virtio-net et la carte d'interface réseau virtuelle Google (gVNIC) en tant qu'interfaces réseau virtuel. L'utilisation de gVNIC au lieu de Virtio-net peut améliorer l'évolutivité des applications MPI en offrant de meilleures performances de communication et un débit plus élevé. De plus, gVNIC est une condition préalable à la mise en réseau avancée, qui fournit une bande passante plus élevée et permet un débit plus élevé.
Lorsque vous créez une VM, Virtio-net est utilisé par défaut comme interface de réseau virtuel. Pour utiliser gVNIC, suivez les étapes permettant de créer une VM HPC et incluez l'option --network-interface=nic-type=GVNIC
. L'image de VM HPC inclut le pilote gVNIC en tant que DKMS (Dynamic Kernel Module Support). Pour en savoir plus, consultez la section Utiliser la carte d'interface réseau virtuelle Google.
Désactiver les mesures d'atténuation pour Meltdown et de Spectre
Par défaut, l'image de VM HPC active les mesures d'atténuation des risques liés à Spectre et Meltdown. Dans certains cas, ces mesures d'atténuation peuvent entraîner une dégradation des performances spécifiques à la charge de travail. Pour désactiver ces mesures d'atténuation et limiter les risques de sécurité associés, procédez comme suit :
Exécutez la commande suivante sur votre VM HPC:
sudo google_mpi_tuning --nomitigation
Redémarrez la VM.
Améliorer les performances réseau
Pour améliorer les performances réseau de votre VM, définissez une ou plusieurs des configurations suivantes :
Configurez une bande passante plus élevée. Pour configurer les performances réseau Tier_1 par VM, exécutez la commande
gcloud compute instances create
pour créer la VM et spécifiez l'option--network-performance-configs
. Pour en savoir plus, consultez la section Créer une VM avec une configuration de bande passante élevée.Utiliser des trames géantes Pour réduire au minimum les frais de traitement des paquets réseau, nous vous recommandons d'utiliser une taille de paquet plus importante. Vous devez valider les tailles de paquets plus importantes selon les spécificités de votre application. Pour en savoir plus sur l'utilisation des trames géantes et des tailles de paquets, consultez le guide sur les unités de transmission maximales.
Augmentez les limites de mémoire TCP. Une bande passante plus élevée nécessite une mémoire TCP plus importante. Suivez la procédure permettant d'augmenter les paramètres
tcp_*mem
.Utilisez le profil de latence du réseau. Évaluez la latence de votre application et activez l'interrogation intensive afin de réduire la latence dans le chemin de réception du réseau. Ajustez les paramètres
net.core.busy_poll
etnet.core.busy_read
dans/etc/sysctl.conf
, ou utiliseztuned-adm
.
Utiliser Intel MPI 2021
Google recommande d'utiliser la bibliothèque Intel MPI 2021 pour exécuter des jobs MPI sur Google Cloud.
Les implémentations MPI comportent de nombreux paramètres de configuration internes qui peuvent affecter les performances de communication. Ces paramètres sont particulièrement pertinents pour la communication MPI collective qui vous permet de spécifier des algorithmes et des paramètres de configuration pouvant varier considérablement dans l'environnement Google Cloud.
L'image de VM HPC inclut un utilitaire, Google-hpc-compute
, pour installer facilement les bibliothèques MPI recommandées et utiliser des fournisseurs libfabric adaptés à Google Cloud via le transport TCP.
Utiliser l'utilitaire google-hpc-compute
pour la compatibilité avec Intel MPI 2021
Le script google_install_intelmpi
est l'outil associé MPI de l'utilitaire Google-hpc-compute
. Il permet d'installer et de configurer IntelMPI.
L'utilitaire Google-hpc-compute
est inclus dans l'image de VM HPC.
Installer Intel MPI 2021
Pour installer la bibliothèque IntelMPI lors de la création d'une VM HPC, suivez les étapes permettant de créer une VM HPC et incluez les éléments suivants lors de la création de l'instance de VM :
--metadata=google_install_intelmpi="--impi_2021"
Pour installer la bibliothèque sur une VM HPC existante, exécutez la commande suivante sur cette VM:
sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI
L'emplacement par défaut de install_dir
est défini sur /opt/intel
.
Image Intel MPI 2018 dans l'image HPC CentOS 7
La compatibilité Intel MPI 2018 est disponible dans l'image HPC CentOS 7 sur Google Cloud.
Pour plus d'informations, consultez le guide de l'utilisateur de l'utilitaire google_install_mpi
.
Pour les cas d'utilisation supplémentaires liés à Intel MPI 2018, tels que l'exécution d'applications MPI développées avec Intel Parallel Studio XE, utilisez l'environnement d'exécution Intel Parallel Studio XE (PSXE) complet en remplaçant intel_mpi
par intel_psxe_runtime
dans les commandes ci-dessus. L'environnement d'exécution PSXE comprend plusieurs bibliothèques importantes pour l'exécution d'applications MPI, telles que la bibliothèque Intel Math Kernel (MKL).
Créer une image personnalisée à l'aide de l'image de VM HPC
Créez une image personnalisée en utilisant le disque de démarrage de votre image de VM HPC comme disque source. Pour ce faire, utilisez la console Google Cloud ou Google Cloud CLI.
Console
Dans la console Google Cloud, accédez à la page Images.
Cliquez sur Create image (Créer une image).
Indiquez un Nom pour votre image.
Sous Disque source, sélectionnez le nom du disque de démarrage sur votre VM HPC.
Sélectionnez les autres propriétés restantes pour votre image.
Cliquez sur Créer.
gcloud
Créez l'image personnalisée à l'aide de la commande images create
.
gcloud compute images create IMAGE_NAME \ --source-disk=VM_NAME \ --source-disk-zone=VM_ZONE \ --family=IMAGE_FAMILY \ --storage-location=LOCATION
Remplacez l'élément suivant :
IMAGE_NAME
: nom de l'image personnalisée.VM_NAME
: nom de votre VM HPC.INSTANCE_ZONE
: zone où se trouve votre VM HPC.IMAGE_FAMILY
: Facultatif. famille d'images à laquelle cette nouvelle image appartient.LOCATION
: Facultatif. Région dans laquelle l'image personnalisée est stockée. L'emplacement par défaut est l'emplacement multirégional le plus proche de l'emplacement du disque source.
Tarifs
L'image de VM HPC est disponible sans frais supplémentaires. Étant donné que l'image de VM HPC s'exécute sur Compute Engine, des frais peuvent vous être facturés pour les ressources Compute Engine, telles que les processeurs virtuels et la mémoire C2. Pour en savoir plus, consultez la page Tarifs de Compute Engine.
Limites
Les avantages du réglage varient d'une application à l'autre. Dans certains cas, un réglage particulier peut avoir un impact négatif sur les performances. Pensez à analyser vos applications pour trouver la configuration la plus efficace ou la plus rentable.
Étape suivante
- En savoir plus sur le calcul hautes performances dans Google Cloud
- Obtenez plus d'informations sur la série de machines H3.
- Apprenez à utiliser l'API d'instance groupée.
- Si vous avez des commentaires ou avez besoin d'aide, envoyez un e-mail à hpc-image-feedback@google.com.