Systèmes de fichiers parallèles pour les charges de travail HPC

Ce document présente les options de stockage dans Google Cloud pour les charges de travail de calcul hautes performances (HPC ou "High Performance Computing") et explique quand utiliser des systèmes de fichiers parallèles tels que Lustre pour les charges de travail HPC. Dans un système de fichiers parallèle, plusieurs clients utilisent des chemins d'E/S parallèles pour accéder à des données partagées stockées sur plusieurs nœuds de stockage en réseau.

Ce document est destiné aux architectes et aux administrateurs qui conçoivent, provisionnent et gèrent du stockage pour des charges de travail HPC gourmandes en données. Dans le présent document, nous partons du principe que vous avez une connaissance conceptuelle des Systèmes de fichiers réseau (NFS), des systèmes de fichiers parallèles POSIX et des exigences de stockage des applications HPC.

Qu'est-ce que le calcul hautes performances ?

Les systèmes HPC résolvent rapidement des problèmes de calcul extrêmement complexes en agrégeant plusieurs ressources de calcul. Le HPC est à l'origine de la recherche et de l'innovation dans des secteurs tels que la santé, les sciences de la vie, les médias, le divertissement, les services financiers et l'énergie. Les chercheurs, les scientifiques et les analystes utilisent des systèmes HPC pour effectuer des tests, exécuter des simulations et évaluer des prototypes. Les charges de travail HPC telles que le traitement sismique, le séquençage génomique, le rendu multimédia et la modélisation climatique génèrent et accèdent à de grands volumes de données, à une vitesse toujours plus rapide et avec des latences toujours plus faibles. Le stockage hautes performances et la gestion des données sont des composantes essentielles d'une infrastructure HPC.

Options de stockage pour les charges de travail HPC dans Google Cloud

La création et l'exploitation d'une infrastructure HPC sur site sont coûteuses et impliquent une maintenance continue. De plus, l'infrastructure sur site ne peut généralement pas faire l'objet d'un scaling rapide pour répondre à l'évolution de la demande. La planification, l'acquisition, le déploiement et la mise hors service du matériel sur site prennent un temps considérable, ce qui entraîne un retard dans l'ajout des ressources HPC ou une sous-utilisation de la capacité. Dans le cloud, vous pouvez provisionner efficacement une infrastructure HPC qui utilise les dernières technologies et faire évoluer votre capacité à la demande.

Google Cloud et ses partenaires technologiques proposent des options de stockage économiques, flexibles et évolutives pour le déploiement d'une infrastructure HPC dans le cloud et pour l'amélioration de votre infrastructure HPC sur site. Les scientifiques, les chercheurs et les analystes peuvent ainsi rapidement accéder à une capacité HPC supplémentaire pour leurs projets lorsqu'ils en ont besoin.

Pour déployer une charge de travail HPC dans Google Cloud, vous avez le choix entre les produits et services de stockage suivants, en fonction de vos besoins :

Type de charge de travail Produits et services de stockage recommandés
Les charges de travail qui nécessitent un accès à faible latence aux données, mais qui ne nécessitent pas d'E/S extrêmes pour les ensembles de données partagés et qui ont un partage de données limité entre les clients. Utilisez le stockage NFS. Choisissez l'une des options suivantes :
Des charges de travail qui génèrent des E/S complexes, interdépendantes et à grande échelle, telles que des applications HPC à couplage fort qui utilisent l'interface MPI (Message-Passing Interface) pour une communication fiable entre les processus. Utilisez un système de fichiers parallèle. Choisissez l'une des options suivantes :
Pour en savoir plus sur les exigences des charges de travail compatibles avec les systèmes de fichiers parallèles, consultez la section Quand utiliser des systèmes de fichiers parallèles.

Quand utiliser des systèmes de fichiers parallèles

Dans un système de fichiers parallèle, plusieurs clients stockent et accèdent à des données partagées sur plusieurs nœuds de stockage en réseau à l'aide de chemins d'E/S parallèles. Les systèmes de fichiers parallèles sont parfaits pour les charges de travail HPC à couplage fort, telles que les charges de travail d'intelligence artificielle (IA) et les charges de travail d'analyse qui utilisent des applications SAS. Envisagez d'utiliser un système de fichiers parallèles tel que Lustre pour les charges de travail HPC sensibles à la latence qui présentent l'une des exigences suivantes :

  • Traitement de données à couplage fort : les charges de travail HPC telles que la modélisation météorologique et l'exploration sismique doivent traiter les données de manière répétitive en utilisant de nombreuses tâches interdépendantes qui s'exécutent simultanément sur plusieurs serveurs. Ces processus utilisent généralement le MPI pour échanger des données à intervalles réguliers et utilisent des points de contrôle pour récupérer rapidement en cas d'échec. Les systèmes de fichiers parallèles permettent aux clients interdépendants de stocker et d'accéder simultanément à de grands volumes de données partagées sur un réseau à faible latence.
  • Compatibilité avec l'API d'E/S et la sémantique POSIX : les systèmes de fichiers parallèles tels que Lustre sont parfaits pour les charges de travail nécessitant à la fois l'API et la sémantique POSIX. L'API et la sémantique d'un système de fichiers sont des fonctionnalités indépendantes. Par exemple, NFS est compatible avec l'API POSIX, qui permet aux applications de lire et d'écrire des données à l'aide de fonctions telles que open(), read() et write(). Toutefois, la façon dont NFS coordonne l'accès aux données entre différents clients diffère de la sémantique POSIX utilisée pour la coordonner l'accès aux données entre différents threads d'une machine. Par exemple, NFS n'offre pas de cohérence de cache entre les clients pour opérations POSIX lecture-écriture. NFS utilise une cohérence faible dans NFSv3 et une cohérence de type "fermer pour ouvrir" ("close-to-open") dans NFSv4.
  • Capacité à l'échelle du pétaoctet : les systèmes de fichiers parallèles peuvent être adaptés à plusieurs pétaoctets de capacité dans un seul espace de noms de système de fichiers. Le service NetApp Cloud Volumes et le service Filestore à grande échelle acceptent jusqu'à 100 Tio par ensemble de données. Cloud Storage offre une capacité fiable et à faible coût qui peut évoluer automatiquement, mais peut ne pas répondre aux exigences de partage de données et de faible latence des charges de travail HPC.
  • Latence faible et bande passante élevée : pour les charges de travail HPC qui nécessitent un accès haut débit à des fichiers très volumineux ou à des millions de petits fichiers, les systèmes de fichiers parallèles peuvent améliorer les performances du NFS et du stockage d'objets. La latence offerte par les systèmes de fichiers parallèles (0,5 à 10 ms) est nettement inférieure à celle du stockage d'objets, ce qui peut affecter le nombre maximal d'IOPS. En outre, la bande passante maximale acceptée par les systèmes de fichiers parallèles peut être plusieurs fois supérieure à celle observée dans les systèmes basés sur NFS. Par exemple, l'utilisation de DDN EXAScaler sur Google Cloud a démontré une bande passante en lecture de plus de 10 Tbit/s, une bande passante en écriture de plus de 700 Gbit/s et 1,9 million d'appels de fichiers stat() par seconde dans le cadre du Benchmark IO500.
  • Scaling extrême du client: bien que le stockage NFS puisse accepter des milliers de clients, les systèmes de fichiers parallèles peuvent évoluer afin d'accepter l'accès simultané à des données partagées depuis plus de 10 000 clients.

Exemples d'applications HPC à couplage fort

Cette section décrit des exemples d'applications HPC à couplage fort qui nécessitent l'espace de stockage à faible latence et à haut débit fourni par les systèmes de fichiers parallèles.

Modélisation moléculaire basée sur l'IA

La recherche pharmaceutique est un processus coûteux et gourmand en données. Les organismes modernes de recherche pharmaceutique utilisent l'IA pour réduire les coûts de recherche et de développement, afin d'adapter efficacement leurs opérations et d'accélérer la recherche scientifique. Par exemple, les chercheurs utilisent des applications compatibles avec l'IA pour simuler les interactions entre les molécules dans un médicament et prédire l'effet des modifications apportées aux composés du médicament. Ces applications s'exécutent sur des processeurs GPU parallèles puissants qui ingèrent, organisent et analysent une quantité extrême de données pour effectuer rapidement des simulations. Les systèmes de fichiers parallèles fournissent les IOPS et le débit de stockage nécessaires pour optimiser les performances des applications d'IA.

Analyser les risques de crédit à l'aide d'applications SAS

Les institutions de services financiers, telles que les organismes de prêt et les banques d'investissement, doivent analyser et surveiller en permanence le score de crédit de leurs clients et de leurs portefeuilles d'investissement. Par exemple, les grands organismes de prêt collectent chaque jour des données relatives aux risques associés à des milliers de clients potentiels. Les équipes d'analystes en crédit utilisent des applications d'analyse pour examiner de manière collaborative différentes parties des données pour chaque client, telles que les revenus, l'historique de crédit et les habitudes de dépense. Les insights issus de cette analyse aident les analystes en crédit à formuler des recommandations de prêt précises et à jour.

Pour accélérer et faire évoluer les analyses de grands ensembles de données, les institutions de services financiers utilisent des plates-formes d'informatique en grille telles que SAS Grid Manager. Les systèmes de fichiers parallèles tels que DDN EXAScaler sur Google Cloud sont compatibles avec les exigences de stockage à haut débit et à faible latence des applications SAS multithread.

Prévisions météo

Pour prédire les tendances météorologiques dans une région géographique donnée, les météorologues divisent la région en plusieurs cellules et déploient des appareils de surveillance tels que des radars au sol et des bulles météorologiques dans chaque cellule. Ces appareils observent et mesurent des conditions atmosphériques à intervalles réguliers. Ils diffusent en continu les données vers une application de prédiction météo exécutée dans un cluster HPC.

L'application de prédiction météo traite les données diffusées à l'aide de modèles mathématiques basés sur des relations physiques connues entre les paramètres météorologiques mesurés. Une tâche distincte traite les données de chaque cellule de la région. À mesure que l'application reçoit de nouvelles mesures, chaque tâche traite les dernières données de sa cellule attribuée et échange ses résultats avec les tâches des autres cellules de la région. Pour prédire de manière fiable les modèles météorologiques, l'application doit stocker et partager des téraoctets de données que les milliers de tâches exécutées en parallèle génèrent et interrogent.

Mécanique des fluides numérique pour la conception d'avions

La dynamique des fluides numérique (CFD ou "Computational Fluid Dynamics") implique l'utilisation de modèles mathématiques, de lois physiques et d'une logique de calcul pour simuler le comportement d'un gaz ou d'un liquide autour d'un objet mobile. Lorsque les ingénieurs aéronautiques conçoivent le corps d'un avion, l'un des facteurs qu'ils prennent en compte est l'aérodynamique. Le CFD permet aux ingénieurs de simuler rapidement l'effet des modifications de conception aérodynamique avant d'investir du temps et de l'argent dans la création de prototypes coûteux. Après avoir analysé les résultats de chaque simulation, les concepteurs optimisent les attributs tels que le volume et la forme des composants individuels du corps de l'avion, puis simulent à nouveau le comportement aérodynamique. Le CFD permet aux ingénieurs aéronautiques de simuler de manière collaborative l'effet de centaines de ces modifications de conception.

Pour terminer efficacement les simulations de conception, les applications CFD nécessitent un accès aux données partagées en moins d'une milliseconde et doivent pouvoir stocker d'importants volumes de données à des vitesses allant jusqu'à 100 Gbit/s.

Présentation de Lustre et EXAScaler Cloud

Lustre est un système de fichiers parallèle Open Source qui fournit un stockage à haut débit et à faible latence pour les charges de travail HPC à couplage fort. En plus des points d'installation POSIX standards sous Linux, Lustre est compatible avec les bibliothèques de données et d'E/S telles que NetCDF, HDF5 et MPI-IO, ce qui permet des E/S parallèles pour un large éventail de domaines d'application. Lustre alimente de nombreux déploiements HPC parmi les plus volumineux à l'échelle mondiale. Un système de fichiers Lustre possède une architecture évolutive contenant les composants suivants :

  • Un serveur de gestion (MGS) qui stocke et gère les informations de configuration sur un ou plusieurs systèmes de fichiers Lustre, puis fournit ces informations aux autres composants.
  • Des serveurs de métadonnées (MDS) qui gèrent l'accès client à l'espace de noms d'un système de fichiers Lustre, en utilisant des métadonnées (par exemple, hiérarchie des répertoires, noms de fichiers et autorisations d'accès).
  • Les serveurs de stockage d'objets (OSS) gèrent l'accès client aux fichiers stockés dans un système de fichiers Lustre.
  • Le logiciel client Lustre permet aux clients d'installer le système de fichiers Lustre.

Plusieurs instances MDS et OSS peuvent exister dans un système de fichiers. Vous pouvez ajouter de nouvelles instances MDS et OSS si nécessaire. Pour en savoir plus sur le système de fichiers Lustre et son fonctionnement, consultez la documentation Lustre.

EXAScaler Cloud est une version d'entreprise de Lustre proposée DDN, un partenaire Google. EXAScaler Cloud est une solution de fichiers partagés qui permet d'effectuer un traitement hautes performances et de gérer les volumes de données conséquents nécessaires pour l'IA, le HPC et les charges de travail analytiques. EXAScaler Cloud est idéal pour les charges de travail d'IA pour le deep learning et l'inférence dans Google Cloud. Vous pouvez le déployer dans une architecture cloud hybride pour augmenter votre capacité HPC sur site. EXAScaler Cloud peut également servir de dépôt pour stocker des actifs à long terme d'un déploiement EXAScaler sur site.

Étape suivante