Azure Batch

Effectué

Le calcul haute performance (HPC) consiste à utiliser une puissance de calcul conséquente qui fournit des performances élevées en comparaison de ce que peut offrir un ordinateur portable ou une station de travail. Il permet de résoudre des problèmes extrêmement complexes qui nécessitent des traitements sur plusieurs cœurs simultanément.

Il opère en fractionnant un problème en unités calculables plus petites et en répartissant celles-ci dans un système distribué. Il orchestre une communication permanente entre les cœurs afin de trouver la solution finale plus rapidement que si le même calcul était exécuté sur moins de cœurs.

Plusieurs solutions HPC et de traitement par lots sont disponibles sur Azure. Vous vous entretenez avec un expert Azure qui vous conseille de vous concentrer sur trois options : Azure Batch, Azure CycleCloud et Microsoft HPC Pack. Les unités suivantes de ce module se concentrent sur chaque option. Il est important de noter que ces choix ne s’excluent pas mutuellement. Elles s’appuient les unes sur les autres et peuvent être considérées comme différents outils dans une même boîte à outils.

Vous allez découvrir ici le calcul haute performance en général, ainsi qu’Azure HPC.

Qu’est-ce que le HPC sur Azure ?

De nombreux secteurs requièrent des ressources de calcul puissantes pour des tâches spécialisées. Par exemple :

  • Dans les sciences génétiques, le séquençage des gènes.
  • Dans l’exploration des hydrocarbures et du gaz, les simulations de gisements.
  • Dans la finance, la modélisation des marchés.
  • Dans l’ingénierie, la modélisation des systèmes physiques.
  • En météorologie, la modélisation de phénomènes météorologiques.

Ces tâches nécessitent des processeurs capables d’exécuter des instructions rapidement. Les applications HPC sur Azure peuvent augmenter leur échelle à plusieurs milliers de cœurs de calcul, étendre des calculs complexes locaux, ou s’exécuter en tant que solution 100 % native Cloud. Cette solution HPC, y compris le nœud principal, les nœuds de calcul et les nœuds de stockage, s’exécute dans Azure sans aucune infrastructure matérielle à gérer. Cette solution est basée sur les services gérés Azure : Groupes de machines virtuelles identiques, Réseau virtuel et Comptes de stockage.

Ces services fonctionnent dans un environnement à haute disponibilité, avec des correctifs et un support, ce qui vous permet de vous concentrer sur votre solution plutôt que sur l’environnement dans lequel elles opèrent. De plus, un système HPC Azure offre la possibilité d’ajouter de façon dynamique des ressources en fonction des besoins, et d’en supprimer quand la demande chute.

Diagram of the High Performance Computing.

Qu’est-ce que le calcul parallèle sur des systèmes distribués

La calcul parallèle consiste en l’utilisation simultanée de plusieurs ressources de pour résoudre un problème de calcul :

  • Un problème est divisé en parties distinctes qui peuvent être résolues simultanément.
  • Chaque partie est fractionnée en une série d’instructions.
  • Les instructions de chaque partie s’exécutent simultanément sur différents processeurs.
  • Un mécanisme global de contrôle/coordination est utilisé.

Diagram of the Parallel Computing on Distributed Systems.

Différents niveaux de parallélisme

Il existe différentes manières de classifier les ordinateurs parallèles et la taxonomie de Flynn est l’une des façons les plus courantes de le faire. Elle distingue les architectures informatiques multiprocesseur en fonction de la façon dont elles peuvent être classifiées selon les deux dimensions indépendantes que sont le flux d’instructions et le flux de données. Chacune de ces dimensions ne peut avoir qu’un de deux états possibles : Unique ou Multiple.

Ce diagramme illustre une application cliente ou un service hébergé qui interagit avec Batch pour charger l’entrée, créer des travaux, superviser des tâches et télécharger la sortie.

Diagram of the stages of parallelism.

Nous pouvons examiner plus en détail les quatre classifications.

SISD SIMD MISD MIMD
- Ordinateur série (non parallèle)
- Instruction unique : Un seul flux d’instructions est traité par le processeur pendant un seul cycle d’horloge
- Données uniques : un seul flux de données est utilisé en entrée pendant un cycle d’horloge
- Type d’ordinateur le plus ancien.
Exemples :
1. Mainframes de première génération
2. Mini-ordinateurs, stations de travail
3. PC à un seul cœur de processeur










- Calcul parallèle
- Instruction unique : toutes les unités de traitement exécutent la même instruction au cours d’un cycle d’horloge donné
- Données multiples : chaque unité de traitement peut opérer sur un élément de données distinct
- Mieux adapté à des problèmes spécialisés caractérisés par un degré élevé de régularité, comme le traitement de graphiques et d’images
- La plupart des ordinateurs modernes équipés de processeurs graphiques (GPU) utilisent des instructions SIMD et des unités d’exécution
Exemples :
1. Tableaux de processeurs : Thinking Machines CM-2, MasPar MP-1 et MP-2, ILLIAC IV
2. Pipelines vectoriels : IBM 9000, Cray X-MP, Y-MP et C90, Fujitsu VP, NEC SX-2, Hitachi S820, ETA10

- Calcul parallèle
- Instructions multiples : chaque unité de traitement opère sur les données de façon indépendante via des flux d’instructions distincts
- Données uniques : un flux de données unique alimente plusieurs unités de traitement
- Les exemples réels (le cas échéant) de cette classe d’ordinateur parallèle sont rares
Exemples :
1. Plusieurs filtres de fréquence fonctionnant sur un seul flux de signal
2. Plusieurs algorithmes de chiffrement tentant de déchiffrer un seul message codé







- Calcul parallèle
- Instructions multiples : chaque processeur peut exécuter un flux d’instructions différent
- Données multiples : chaque processeur peut travailler avec un flux de données différent
- Actuellement, le type d’ordinateur parallèle le plus courant, la plupart des supercalculateurs modernes appartenant à cette catégorie.
Exemples :
1. La plupart des supercalculateurs actuels
2. Clusters d’ordinateurs parallèles en réseau et « grilles »
3. Ordinateurs SMP multiprocesseurs
4. PC multicœurs







Diagram of the multiple instruction multiple data.

Différents types de travaux HPC : massivement parallèles et étroitement couplés

Les travaux parallèles divisent les problèmes de calcul en tâches petites, simples et indépendantes qui peuvent être exécutées simultanément, souvent avec peu ou pas de communication entre les processus.

  • Les cas d’usage courants pour les travaux parallèles sont les simulations de risques, la modélisation moléculaire, la recherche contextuelle et les simulations logistiques.

    Les travaux étroitement couplés ont une charge de travail partagée conséquente fractionnée en tâches plus petites qui communiquent en permanence. Les différents nœuds du cluster communiquent entre eux à mesure qu’ils effectuent leur traitement.

  • Les cas d’usage courants pour les travaux étroitement couplés sont les suivants :

    • dynamique des fluides numérique
    • modélisation de prévisions météorologiques
    • simulations matérielles
    • émulations de collisions automobiles
    • simulations géospatiales
    • gestion du trafic

Qu’est-ce que l’interface de passage de messages (MPI, Message Passing Interface)

  • La MPI est un système qui vise à fournir une norme portable et efficace pour la transmission de messages. Hautement performante, portable et évolutive, elle a été développée pour travailler sur des réseaux composés de différents ordinateurs parallèles.

  • L’interface de passage de messages (MPI) a permis la mise en réseau et le calcul parallèle à une échelle industrielle et mondiale et a contribué à améliorer le fonctionnement d’applications informatiques parallèles à grande échelle.

Diagram of the message passing interface.

Avantages de la MPI Microsoft :

  • Facilité de portage de code existant utilisant MPICH.
  • Sécurité basée sur Active Directory Domain Services.
  • Haute performance sur un système d’exploitation Windows.
  • Compatibilité binaire entre différents types d’options d’interconnexion.

Vérifiez vos connaissances

1.

Quel est l’avantage de l’utilisation d’Azure Batch par rapport au provisionnement du nombre requis de machines virtuelles pour la tâche en cours ?

2.

Vous avez analysé un problème et déterminé qu’il contient 1 000 tâches subordonnées distinctes. Pour résoudre ce problème, votre responsable accepte de budgéter 20 nœuds de machine virtuelle à exécuter dans Azure Batch. Par rapport à l’exécution sur un seul nœud de machine virtuelle de même taille, avec quelle rapidité pensez-vous que le problème pourrait être résolu ?