Partager via


Calcul haute performance (HPC) sur Azure

Introduction à HPC

Le calcul haute performance (HPC, High Performance Computing), également appelé Big Compute, utilise un grand nombre d’ordinateurs basés sur processeur ou GPU pour résoudre des tâches mathématiques complexes.

De nombreux secteurs d’activité utilisent HPC pour résoudre certains de leurs problèmes les plus complexes. Ces problèmes incluent notamment des charges de travail telles que les suivantes :

  • Genomics
  • Simulations relatives aux hydrocarbures
  • Finances
  • Conception de semiconducteurs
  • Ingénierie
  • Modélisation de phénomènes météorologiques

En quoi HPC est différent sur le cloud ?

L’une des principales différences entre un système HPC local et un système HPC dans le cloud est la possibilité d’ajouter et de supprimer de façon dynamique des ressources en fonction des besoins. La mise à l’échelle dynamique supprime la capacité de calcul comme goulot d’étranglement et, à la place, permet aux clients de trouver la taille adaptée pour leur infrastructure pour satisfaire les exigences de leurs travaux.

Les articles suivants fournissent davantage de détails sur cette fonctionnalité de mise à l’échelle dynamique.

Liste de vérification de l’implémentation

Comme vous cherchez à implémenter votre propre solution HPC sur Azure, vérifiez que vous avez consulté les rubriques suivantes :

  • Choisir l’architecture appropriée en fonction de vos exigences
  • Déterminer quelles options de calcul conviennent pour votre charge de travail
  • Identifier la solution de stockage appropriée qui répond à vos besoins
  • Décider comment vous allez gérer toutes vos ressources
  • Optimiser votre application pour le cloud
  • Sécuriser votre infrastructure

Infrastructure

De nombreux composants d’infrastructure sont nécessaires à la génération d’un système HPC. Calcul, stockage et réseau fournissent les composants sous-jacents, quelle que soit la façon dont vous choisissez de gérer vos charges de travail HPC.

Exemples d’architectures HPC

Il existe de nombreuses façons de concevoir et d’implémenter votre architecture HPC sur Azure. Les applications HPC peuvent être mises à l’échelle pour plusieurs milliers de cœurs de calcul, étendre des clusters locaux ou s’exécuter en tant que solutions natives entièrement dans le cloud.

Les scénarios suivants décrivent quelques-unes des façons courantes de générer des solutions HPC.

  • Diagramme montrant un exemple d’architecture HPC pour les services d’ingénierie assistée par ordinateur sur Azure.

    Services d’ingénierie assistée par ordinateur sur Azure

    Offrez une plateforme de software as a service (SaaS) pour l’ingénierie assistée par ordinateur (IAO) sur Azure.

  • Diagramme montrant un exemple d’architecture HPC pour le rendu de vidéos 3D sur Azure.

    Rendu vidéo 3D sur Azure

    Exécutez des charges de travail HPC natives dans Azure à l’aide du service Azure Batch.

Compute

Azure propose une gamme de tailles qui sont optimisées pour les charges de travail intensives processeur et GPU.

Machines virtuelles basées sur le processeur

Machines virtuelles compatibles GPU

Les machines virtuelles de série N comportent des processeurs graphiques NVIDIA conçus pour des applications graphiques ou de calcul nécessitant beaucoup de ressources système, y compris la visualisation et l’apprentissage de l’intelligence artificielle (AI).

Stockage

Les charges de travail HPC et Batch à grande échelle nécessitent un stockage des données et un accès à ces dernières dépassant les capacités des systèmes de fichiers cloud classiques. De nombreuses solutions permettent de gérer les besoins de vitesse et de capacité des applications HPC sur Azure.

Pour plus d’informations sur la comparaison de Lustre, de GlusterFS et de BeeGFS sur Azure, consultez le livre électronique Systèmes de fichiers parallèles sur Azure et le blog Lustre on Azure.

Mise en réseau

Les machines virtuelles H16r, H16mr, A8 et A9 peuvent se connecter à un réseau RDMA back-end à débit élevé. Ce réseau peut améliorer les performances d’applications parallèles étroitement liées s’exécutant sous l’interface de passage de messages Microsoft, plus connue sous le nom de MPI ou Intel MPI.

Gestion

À faire soi-même

La génération d’un système HPC à partir de zéro sur Azure offre une grande flexibilité, mais elle nécessite souvent beaucoup de maintenance.

  1. Configurez votre environnement de cluster dans des machines virtuelles Azure ou des Virtual Machine Scale Sets.
  2. Utilisez les modèles Azure Resource Manager pour déployer des gestionnaires de charge de travail principaux, des infrastructures et des applications.
  3. Choisissez des tailles de machine virtuelle HPC et GPU qui comprennent du matériel spécialisé et des connexions réseau pour les charges de travail MPI ou GPU.
  4. Ajoutez du stockage de haute performance aux charges de travail intensives d’E/S.

Éclatement hybride et cloud bursting

Si vous avez un système HPC local existant que vous voulez connecter à Azure, il existe plusieurs ressources pour vous aider à commencer.

Tout d’abord, consultez l’article Options pour la connexion d’un réseau local à Azure de la documentation. Vous y trouverez des informations supplémentaires sur ces options de connectivité :

Une fois la connectivité réseau établie de manière sécurisée, vous pouvez commencer à utiliser des ressources de calcul cloud à la demande avec les fonctionnalités d’éclatement de votre gestionnaire de charges de travail existant.

Solutions de la Place de marché

De nombreux gestionnaires de charges de travail sont proposés dans la Place de marché Azure.

Azure Batch

Azure Batch est un service de plateforme qui permet d’exécuter efficacement des applications HPC en parallèle et à grande échelle dans le cloud. Azure Batch planifie les travaux nécessitant une grande quantité de ressources système à exécuter sur un pool géré de machines virtuelles. Il peut mettre automatiquement à l’échelle les ressources de calcul pour répondre aux besoins de vos travaux.

Les fournisseurs et développeurs SaaS peuvent utiliser les outils et kits de développement logiciel (SDK) pour intégrer des applications HPC ou des charges de travail de conteneur dans Azure, stocker des données dans Azure et générer des pipelines d’exécution du travail.

Dans Azure Batch, tous les services s’exécutent dans le cloud, l’image ci-dessous montre à quoi ressemble l’architecture avec Azure Batch, dont la scalabilité et les configurations de planification des travaux s’exécutent dans le cloud, tandis que les résultats et les rapports peuvent être envoyés dans votre environnement local.

Diagramme montrant un exemple d’architecture HPC pour Azure Batch.

Azure CycleCloud

Azure CycleCloud La manière la plus simple de gérer les charges de travail HPC à l’aide d’un planificateur (tel que Slurm, Grid Engine, HPC Pack, HTCondor, LSF, PBS Pro ou Symphony), sur Azure

CycleCloud vous permet d’effectuer les opérations suivantes :

  • Déployer des clusters complets et d’autres ressources, notamment le planificateur, les machines virtuelles de calcul, le stockage, la mise en réseau et le cache
  • Orchestrer des workflows liés aux travaux, aux données et au cloud
  • Donner aux administrateurs un contrôle total sur les utilisateurs qui peuvent exécuter des travaux, l’emplacement de ces travaux et leur coût
  • Personnaliser et optimiser les clusters par le biais des fonctionnalités de stratégie et de gouvernance avancées, notamment le contrôle des coûts, l’intégration d’Active Directory, la supervision et la création de rapports
  • Utiliser votre planificateur de travaux et vos applications actuels sans modification
  • Tirer parti de la mise à l’échelle automatique intégrée et des architectures de référence testées sur le terrain pour un large éventail de secteurs et de charges de travail HPC
Modèle de bursting hybride/cloud

Dans cet exemple de diagramme hybride, nous pouvons clairement voir comment ces services sont distribués entre le cloud et l’environnement local. Possibilité d’exécuter des travaux dans les deux charges de travail. Diagramme montrant un exemple d’architecture HPC pour CycleCloud sur Azure dans un modèle hybride.

Modèle natif cloud

L’exemple de diagramme d’un modèle natif cloud ci-dessous montre comment la charge de travail gère tout dans le cloud tout en conservant la connexion à l’environnement local.

Diagramme montrant un exemple d’architecture HPC pour CycleCloud sur Azure dans un modèle natif cloud.

Graphique comparatif

Fonctionnalité Azure Batch Azure CycleCloud
Scheduler API et outils batch et scripts de ligne de commande dans le portail Azure (natif cloud). Utilisez des planificateurs HPC standard tels que Slurm, PBS Pro, LSF, Grid Engine et HTCondor, ou étendez les plug-ins de mise à l’échelle automatique CycleCloud pour travailler avec votre propre planificateur.
Ressources de calcul Nœuds Software as a service – Platform as a service Logiciel Platform as a service – Platform as a service
Outils d’analyse Azure Monitor Azure Monitor, Grafana
Personnalisation Pools d’images personnalisés, images de tiers, accès à l’API Batch. Utiliser l’API complète RESTful pour personnaliser et étendre des fonctionnalités, déployer votre propre planificateur et prendre en charge les gestionnaires de charges de travail existants
Intégration Synapse Pipelines, Azure Data Factory, Azure CLI CLI intégré pour Windows et Linux
Type d’utilisateur Développeurs Administrateurs et utilisateurs HPC classiques
Type de travail Batch, Workflows Fortement couplé (interface de passage de messages/MPI).
Prise en charge de Windows Oui Varie, selon le choix du planificateur

Gestionnaires de charges de travail

Voici quelques exemples de cluster et de gestionnaires de charges de travail qui peuvent s’exécuter dans une architecture Azure. Créer des clusters autonomes dans des machines virtuelles Azure ou effectuez un burst dans les machines virtuelles Azure depuis un cluster local.

Containers

Les conteneurs peuvent également être utilisés pour gérer certaines charges de travail HPC. Des services comme Azure Kubernetes Service (AKS) simplifie le déploiement d’un cluster Kubernetes managé dans Azure.

la gestion des coûts ;

Il existe différentes manières de gérer vos coûts HPC sur Azure. Vérifiez que vous avez consulté les options d’achat Azure afin de trouver la méthode qui convient le mieux à votre organisation.

Sécurité

Pour obtenir une vue d’ensemble des bonnes pratiques de sécurité sur Azure, consultez la documentation sur la sécurité Azure.

Outre les configurations réseau disponibles dans la section Cloud bursting, vous pouvez implémenter une configuration hub/spoke pour isoler vos ressources de calcul :

Applications HPC

Exécuter des applications HPC commerciales ou personnalisées dans Azure. Plusieurs exemples dans cette section ont été testés et se montrent efficaces pour la mise à l’échelle avec des machines virtuelles ou des cœurs de calcul supplémentaires. Visitez la Place de marché Azure pour obtenir des solutions prêtes au déploiement.

Notes

Vérifiez auprès du fournisseur de toute application commerciale les questions de licence ou toute autre restriction relative à l’exécution dans le cloud. Tous les fournisseurs ne proposent pas le paiement à l'utilisation pour les licences. Vous aurez peut-être besoin d’un serveur de licences dans le cloud pour votre solution ou de vous connecter à un serveur de licences sur site.

Applications d’ingénierie

Graphiques et rendu

Intelligence artificielle et apprentissage approfondi

Fournisseurs MPI

Visualisation à distance

Exécutez des machines virtuelles alimentées par GPU dans Azure dans la même région que la sortie HPC pour bénéficier de la plus faible latence, d'un accès et pour visualiser à distance via Azure Virtual Desktop.

Test d’évaluation des performances

Témoignages client

Un grand nombre de clients ont connu beaucoup de succès grâce à l’utilisation d’Azure pour leurs charges de travail HPC. Voici quelques-unes de ces études de cas clients :

Autres informations importantes

Étapes suivantes

Pour obtenir les dernières annonces, consultez les ressources suivantes :

Exemples Microsoft Batch

Les tutoriels suivants vous fourniront des informations détaillées sur l’exécution d’applications sur Microsoft Batch :