Contrôles d’intégrité pour machines virtuelles HPC
Azure fournit plusieurs tests automatisés pour vous aider à identifier les machines virtuelles non saines. En utilisant ces tests automatisés, vous pouvez supprimer une machine virtuelle non saine de la flotte quand elle est découverte, et avant que des clients aient l’occasion d’y accéder. Toutefois, il arrive que ces tests automatisés n’interceptent pas toutes les machines virtuelles non saines.
Notes
Les contrôles d’intégrité automatisés proposés dans Azure sont continuellement mis à jour et améliorés.
Certaines applications HPC, en particulier celles qui ont un couplage étroit, sont sensibles à la présence de machines virtuelles non saines. Cette sensibilité risque de provoquer un échec d’exécution ou une exécution plus lente que prévu de ces applications. Plus l’application HPC à couplage serré est utilisée à grande échelle, plus le risque de rencontrer une machine virtuelle non saine augmente.
Par précaution, vous devez effectuer vos propres contrôles d’intégrité, surtout si vous exécutez vos applications HPC à couplage serré à grande échelle. Exécuter vos propres contrôles d’intégrité augmente la probabilité d’exécuter vos applications HPC de façon optimale à grande échelle.
Dans l’idéal, vos contrôles d’intégrité des machines virtuelles doivent vérifier que les composants suivants fonctionnent avec le niveau de performance attendu : le réseau InfiniBand, la mémoire, le stockage et les cœurs de processeur.
Contrôles d’intégrité du réseau InfiniBand
Dans la plupart des scénarios, mesurer la latence et la bande passante du réseau InfiniBand point à point par un test PingPong (envoi et réception d’un message) suffit pour vérifier l’intégrité du réseau InfiniBand.
Le test PingPong Intel IMP-MPI1 constitue une option intéressante, car il est prédéfini et disponible sur l’image CentOS HPC 7.7 (et versions ultérieures) dans la Place de marché Azure. Il existe une version incluse dans l’environnement Intel MPI (interface de passage de messages) et une version dans l’environnement HPC-X MPI. C’est généralement cette dernière version qui offre le meilleur niveau de performance du point de vue de la latence et de la bande passante. Les scripts d’exécution des tests PingPong Intel IMP-MPI1 sont disponibles dans le projet de benchmarks IMB-MPI.
Le tableau suivant illustre les valeurs attendues pour la latence et la bande passante du réseau InfiniBand d’après les mesures du benchmark PingPong HPC-X Intel IMB-IMP1 effectuées sur des machines virtuelles HPC. Les machines virtuelles qui présentent des valeurs en dehors des plages suivantes sont considérées comme non saines.
Référence de la machine virtuelle | Temps de réponse du réseau attendu | Bande passante du réseau attendue |
---|---|---|
HB120_v2 | < 2 μs | > 23.0 Go/s |
HC44 | < 2 μs | > 11,5 Go/s |
HB60 | < 2 μs | > 11,5 Go/s |
Parmi les autres outils et benchmarks utiles, citons osu-micro-benchmarks et Mellanox ClusterKit. Ce dernier est également préinstallé dans l’image CentOS HPC 7.7 (et versions ultérieures) disponible dans la Place de marché Azure, dans l’environnement HPC-X. Des exemples de scripts ClusterKit sont disponibles dans le projet de scripts de contrôle d’intégrité Azure.
Contrôles d’intégrité de la mémoire
Mesurer la bande passante de la mémoire est un bon moyen de vérifier que la mémoire d’une machine virtuelle est saine. L’outil Intel Memory Latency Checker (MLC) est très utile pour cette évaluation. D’autres options sont possibles, comme créer et exécuter le benchmark de flux ou encore utiliser l’outil ClusterKit, qui permet aussi de mesurer la bande passante de la mémoire. Vous trouverez des exemples de scripts dans le projet de scripts de contrôle d’intégrité Azure.
Le tableau suivant indique la bande passante de la mémoire attendue, mesurée sur chacune des machines virtuelles HPC exécutant Intel MLC. Les machines virtuelles qui présentent des valeurs en dehors de ces plages sont considérées comme non saines.
Référence de la machine virtuelle | Bande passante de la mémoire attendue |
---|---|
HB120_v2 | > 300 Go/s |
HC44 | > 200 Go/s |
HB60 | > 250 Go/s |
Contrôles d’intégrité du stockage
Il est important de connaître la solution de stockage que vous utilisez et son niveau de performance attendu du point de vue des E/S, puis de le vérifier en exécutant un benchmark des E/S. Vous avez pour cela le choix entre plusieurs outils :
Pour mesurer l’intégrité du stockage, vous devez créer le débit d’E/S maximal pour générer un point de référence des IOPS. Vous comparez ensuite les résultats du point de référence des E/S avec les performances en E/S attendues pour votre solution de stockage.
Vous trouverez des exemples de scripts IOR dans le projet IOR et mdtest. Vous trouverez des exemples de scripts FIO dans le projet FIO.
Intégrité des cœurs de processeur
Un excellent moyen de vérifier que vos cœurs de processeur sont sains et s’exécutent avec le niveau de performance attendu consiste à mesurer le nombre maximal d’opérations en virgule flottante par seconde (FLOPS). Ensuite, comparez vos résultats mesurés avec les FLOPS théoriques attendus.
Vous pouvez utiliser High Performance Linpack (HPL) pour mesurer le nombre de FLOPS maximal. L’exécution de HPL permet par ailleurs d’identifier certains modules mémoire DIMM (Dual In-line Memory Module) défectueux. Il peut aussi aider à évaluer l’intégrité globale du cluster HPC, car il effectue des tests limités pour les communications étroitement couplées.
Les centres de données HPL utilisent souvent HPL pour roder un nouveau système HPC. Vous trouverez des exemples de scripts HPL dans le projet linpack.