Utiliser des instances RDMA ou GPU dans des pools Batch

Attention

Cet article fait référence à CentOS, une distribution Linux proche de l’état EOL (End Of Life). Faites le point sur votre utilisation pour vous organiser de manière appropriée.

Pour exécuter certains travaux Batch, vous pouvez tirer parti des tailles de machines virtuelles Azure conçues pour le calcul à grande échelle. Par exemple :

  • Pour exécuter des charges de travail MPI multi-instances, choisissez des tailles de série H ou autres qui ont une interface réseau pour l’accès direct à la mémoire à distance (RDMA). Ces tailles se connectent à un réseau InfiniBand pour la communication entre les nœuds, ce qui peut accélérer les applications MPI.

  • Pour les applications CUDA, choisissez des tailles de série N qui incluent des cartes d’unité de traitement graphique (GPU) NVIDIA Tesla.

Cet article fournit des conseils et des exemples pour utiliser certaines des tailles spécialisées d’Azure dans les pools Batch. Pour obtenir des informations générales et en savoir plus sur les caractéristiques techniques, consultez :

  • Tailles de machines virtuelles de calcul haute performance (Linux, Windows)

  • Tailles de machines virtuelles Linux compatibles GPU (Linux, Windows)

Notes

Certaines tailles de machines virtuelles peuvent ne pas être disponibles dans les régions où vous créez vos comptes Batch. Pour vérifier la disponibilité d’une taille, consultez Disponibilité des produits par région et Choisir une taille de machine virtuelle pour un pool Batch.

Les dépendances

Les fonctionnalités RDMA ou GPU des tailles nécessitant beaucoup de ressources système dans Batch sont prises en charge uniquement sur certains systèmes d’exploitation. (La liste des systèmes d’exploitation pris en charge est un sous-ensemble de ceux pris en charge pour les machines virtuelles créées dans ces tailles.) Selon la façon dont vous créez votre pool Batch, vous devrez peut-être installer ou configurer des pilotes supplémentaires ou d’autres logiciels sur les nœuds. Les tableaux suivants listent ces dépendances. Pour plus de détails, consultez les articles associés. Pour connaître les options de configuration des pools Batch, voir plus loin dans cet article.

Pools Linux - Configuration de machine virtuelle

Taille Fonctionnalité Systèmes d’exploitation Logiciels requis Paramètres de pool
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Ubuntu 22.04 LTS ou
HPC basé sur CentOS
(Place de marché Azure)
Intel MPI 5

Pilotes RDMA Linux
Activer la communication entre les nœuds, désactiver l’exécution simultanée des tâches
Séries NC, NCv2, NCv3, NDv2 GPU NVIDIA Tesla (varie selon la série) Ubuntu 22.04 LTS ou
CentOS 8.1
(Place de marché Azure)
Pilotes NVIDIA CUDA ou CUDA Toolkit N/A
Séries NV, NVv2, NVv4 GPU NVIDIA Tesla M60 Ubuntu 22.04 LTS ou
CentOS 8.1
(Place de marché Azure)
Pilotes NVIDIA GRID N/A

*Les tailles de série N compatibles RDMA incluent également des GPU NVIDIA Tesla.

Important

Ce document fait référence à une version de Linux qui approche ou est en fin de vie (EOL). Envisagez une mise à jour vers une version plus récente.

Pools Windows - Configuration de machine virtuelle

Taille Fonctionnalité Systèmes d’exploitation Logiciels requis Paramètres de pool
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Windows Server 2016, 2012 R2, ou
2012 (Place de Marché Azure)
Microsoft MPI 2012 R2 ou ultérieur, ou
Intel MPI 5

Pilotes RDMA Windows
Activer la communication entre les nœuds, désactiver l’exécution simultanée des tâches
Séries NC, NCv2, NCv3, ND, NDv2 GPU NVIDIA Tesla (varie selon la série) Windows Server 2016 ou
2012 R2 (Place de Marché Azure)
Pilotes NVIDIA CUDA ou CUDA Toolkit N/A
Séries NV, NVv2, NVv4 GPU NVIDIA Tesla M60 Windows Server 2016 ou
2012 R2 (Place de Marché Azure)
Pilotes NVIDIA GRID N/A

*Les tailles de série N compatibles RDMA incluent également des GPU NVIDIA Tesla.

Pools Windows - Configuration des services cloud

Avertissement

Les pools de configuration des services Cloud sont déconseillés. Utilisez à la place des pools de configuration de machines virtuelles.

Taille Fonctionnalité Systèmes d’exploitation Logiciels requis Paramètres de pool
H16r, H16mr RDMA Windows Server 2016, 2012 R2, 2012, ou
2008 R2 (Famille de système d’exploitation invité)
Microsoft MPI 2012 R2 ou ultérieur, ou
Intel MPI 5

Pilotes RDMA Windows
Activer la communication entre les nœuds,
désactiver l’exécution simultanée des tâches

Notes

Les tailles de la série N ne sont pas prises en charge dans les pools de configuration de Cloud Services.

Options de configuration de pool

Pour configurer une taille de machine virtuelle spécialisée pour votre pool Batch, plusieurs options s’offrent à vous pour installer les logiciels ou pilotes nécessaires :

  • Pour les pools inclus dans la configuration de machine virtuelle, choisissez une image de machine virtuelle Place de marché Azure préconfigurée dotée de pilotes et logiciels préinstallés. Exemples :

  • Créez une image de machine virtuelle Windows ou Linux personnalisée sur laquelle vous avez installé des pilotes, des logiciels ou d’autres paramètres nécessaires à la taille de machine virtuelle.

  • Créez un package d’application Batch à partir d’un pilote compressé ou d’un programme d’installation d’application, puis configurez Batch pour déployer le package sur les nœuds du pool et l’installer une fois au moment de la création de chaque nœud. Par exemple, si le package d’application est un programme d’installation, créez une ligne de commande de tâche de démarrage pour effectuer une installation de l’application en mode silencieux sur tous les nœuds du pool. Envisagez d’utiliser un package d’application et une tâche de démarrage de pool si votre charge de travail dépend d’une version de pilote particulière.

    Notes

    La tâche de démarrage doit s’exécuter avec des autorisations élevées (d’administrateur) et doit attendre de réussir. Les tâches à exécution longue augmentent le temps de provisionnement d’un pool Batch.

Exemple : pilotes NVIDIA GPU sur un pool de machines virtuelles de contrôleur de réseau Windows

Pour exécuter des applications CUDA sur un pool de nœuds de contrôleur de réseau Windows, vous devez installer des pilotes NVDIA GPU. Les exemples d’étapes suivants utilisent un package d’application pour installer les pilotes NVIDIA GPU. Vous pouvez choisir cette option si votre charge de travail dépend d’une version de pilote GPU spécifique.

  1. Téléchargez un package d’installation pour les pilotes GPU sur Windows Server 2016 à partir du site web NVIDIA, par exemple, la version 411.82. Enregistrez le fichier localement en utilisant un nom court, comme GPUDriverSetup.exe.
  2. Créez un fichier zip du package.
  3. Chargez le package sur votre compte Batch. Pour connaître les étapes nécessaires, consultez les instructions relatives aux packages d’applications. Spécifiez un ID d’application (par exemple, GPUDriver) et une version (par exemple, 411.82).
  4. À l’aide des API Batch ou du portail Azure, créez un pool dans la configuration de machine virtuelle avec le nombre de nœuds et l’échelle souhaités. Le tableau suivant présente des exemples de paramètres pour installer les pilotes NVIDIA GPU en mode silencieux à l’aide d’une tâche de démarrage :
Paramètre Value
Type d’image Place de marché (Linux/Windows)
Publisher MicrosoftWindowsServer
Offer WindowsServer
Sku 2016-centre-de-données
Taille du nœud NC6 Standard
Références du package d’application GPUDriver, version 411.82
Tâche de démarrage activée Vrai
Ligne de commande - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s"
Identité de l’utilisateur - Pool autouser, admin
Attente de la réussite - True

Exemple : pilotes NVIDIA GPU sur un pool de machines virtuelles de contrôleur de réseau Linux

Pour exécuter des applications CUDA sur un pool de nœuds de contrôleur de réseau Linux, vous devez installer les pilotes NVIDIA Tesla GPU nécessaires à partir de CUDA Toolkit. Les exemples d’étapes suivants créent et déploient une image Ubuntu 22.04 LTS personnalisée avec les pilotes GPU :

  1. Déployez une machine virtuelle de série NC Azure exécutant Ubuntu 22.04 LTS. Par exemple, créez la machine virtuelle dans la région USA Centre Sud.
  2. Ajoutez l’extension NVIDIA GPU Drivers à la machine virtuelle à l’aide du portail Azure, d’un ordinateur client qui se connecte à l’abonnement Azure ou d’Azure Cloud Shell. Vous pouvez également suivre les étapes permettant de se connecter à la machine virtuelle et d’installer les pilotes CUDA manuellement.
  3. Suivez les étapes pour créer une image Azure Compute Gallery pour Batch.
  4. Créez un compte Batch dans une région qui prend en charge des machines virtuelles NC.
  5. En utilisant les API Batch ou le portail Azure, créez un pool avec l’image personnalisée, et le nombre de nœuds et l’échelle souhaités. Le tableau suivant contient des exemples de paramètres de pool pour l’image :
Paramètre Value
Type d’image Image personnalisée
Image personnalisée Nom de l’image
Référence de l’agent de nœud batch.node.ubuntu 22.04
Taille du nœud NC6 Standard

Exemple : Microsoft MPI sur un pool de machines virtuelles H16r Windows

Pour exécuter des applications Windows MPI sur un pool de nœuds de machine virtuelle H16r Azure, vous devez configurer l’extension HpcVmDrivers et installer Microsoft MPI. Voici des exemples d’étapes permettant de déployer une image Windows Server 2016 personnalisée avec les pilotes et logiciels nécessaires :

  1. Déployez une machine virtuelle H16r Azure exécutant Windows Server 2016. Par exemple, créez la machine virtuelle dans la région USA Ouest.
  2. Ajoutez l’extension HpcVmDrivers à la machine virtuelle en exécutant une commande Azure PowerShell à partir d’un ordinateur client qui se connecte à votre abonnement Azure, ou bien à l’aide d’Azure Cloud Shell.
  3. Établissez une connexion Bureau à distance à la machine virtuelle.
  4. Téléchargez le package d’installation (MSMpiSetup.exe) pour obtenir la dernière version de Microsoft MPI, puis installez Microsoft MPI.
  5. Suivez les étapes pour créer une image Azure Compute Gallery pour Batch.
  6. À l’aide des API Batch ou via le portail Azure, créez un pool utilisant Azure Compute Gallery et offrant le nombre de nœuds ainsi que l’échelle souhaités. Le tableau suivant contient des exemples de paramètres de pool pour l’image :
Paramètre Value
Type d’image Image personnalisée
Image personnalisée Nom de l’image
Référence de l’agent de nœud batch.node.windows amd64
Taille du nœud H16r Standard
Communication entre les nœuds activée Vrai
Nombre maximal de tâches par nœud 1

Exemple : Intel MPI sur un pool de machines virtuelles H16r Linux

Pour exécuter des applications MPI sur un pool de nœuds de série HB Linux, une option consiste à utiliser l’image HPC basée sur CentOS 8.1 depuis la Place de marché Azure. Les pilotes RDMA et Intel MPI Linux sont préinstallés. Cette image prend également en charge les charges de travail de conteneur Docker.

En utilisant les API Batch ou le portail Azure, créez un pool à l’aide de cette image avec le nombre de nœuds et l’échelle souhaités. Le tableau suivant contient des exemples de paramètres de pool :

Paramètre Value
Type d’image Place de marché (Linux/Windows)
Publisher OpenLogic
Offer CentOS-HPC
Sku 8.1
Taille du nœud H16r Standard
Communication entre les nœuds activée Vrai
Nombre maximal de tâches par nœud 1

Étapes suivantes

  • Pour exécuter des travaux MPI sur un pool Azure Batch, consultez les exemples Windows ou Linux.