banner
Centre d'Information
Vous ne trouverez pas ce niveau de qualité à un meilleur prix.

Projet informatique exascale : Pagoda met à jour la programmation PGAS avec des structures de données évolutives et une communication agressivement asynchrone

Dec 23, 2023

31 août 2023

31 août 2023 — Le projet Pagoda recherche et développe des logiciels que les programmeurs utilisent pour implémenter des applications hautes performances à l'aide du modèle d'espace d'adressage global partitionné (PGAS). Le projet est principalement financé par l'Exascale Computing Project (ECP) et interagit avec des projets partenaires de l'industrie, du gouvernement et du monde universitaire. [1]

PGAS est un modèle de programmation qui prend en charge un espace d'adressage partagé à l'échelle mondiale pour améliorer la productivité tout en faisant la distinction entre les accès aux données locaux et distants pour offrir des opportunités d'optimisation. Cette distinction facilite l'accès aux données dans un environnement informatique hétérogène distribué tout en prenant en compte les coûts de communication non uniformes. Pour le programmeur, PGAS offre le meilleur des deux mondes : il peut simplement allouer ses structures de données en mémoire et les utiliser de manière transparente sur les périphériques CPU et GPU, ou il peut localiser explicitement les données à proximité du matériel informatique pour éviter des transferts de données coûteux ( en termes d'augmentation de la durée d'exécution et de la consommation d'énergie), ce qui limiterait les performances et l'évolutivité. Cela fait de PGAS un excellent cadre pour de nombreuses applications qui doivent optimiser les performances et prendre en charge l'évolutivité sur des architectures parallèles à grande échelle telles que les supercalculateurs exascale du DOE.

Le pilote d'application

De nombreuses applications scientifiques impliquent des mises à jour asynchrones de structures de données irrégulières telles que des maillages adaptatifs, des matrices clairsemées, des tables de hachage, des histogrammes, des graphiques et des files d'attente de travail dynamiques.

Parfois, le programmeur en sait suffisamment sur la structure des données pour déterminer le moyen le plus efficace d'exploiter la localité mémoire. Le modèle PGAS permet au programmeur de gérer explicitement le placement de ces structures de données pour optimiser les performances, par exemple dans la mémoire d'un GPU discret. Alternativement, le programmeur peut ne pas s'en soucier vraiment. Dans ce cas, ce qu’ils veulent réellement, c’est accéder aux données et poursuivre le calcul. Dans ce scénario d’accès et de poursuite, le modèle de mémoire PGAS prend naturellement en charge un accès pratique aux données.

Malheureusement, tous les accès à la mémoire ne sont pas aussi faciles à catégoriser. Le modèle PGAS donne aux programmeurs les outils dont ils ont besoin pour résoudre les problèmes complexes d'accès aux données où la performance d'accès aux données compte vraiment, mais le mouvement des données est trop complexe et irrégulier pour être prévisible.

Introduction technique

La prolifération de l'informatique hétérogène et la complexité associée des offres matérielles de plusieurs fournisseurs introduisent une explosion combinatoire dans la diversité des plates-formes. Du point de vue du programmeur, chaque centre de données et supercalculateur peut nécessiter des optimisations très spécifiques dans le placement des données pour atteindre des performances élevées. Pour aider le programmeur à relever ce défi de portabilité combinatoire, la pile logicielle Pagoda fournit une couche de communication portable, GASNet, ainsi que les couches de productivité UPC++ et Berkeley UPC (Figure 1).

GASNet-EX

GASNet-EX est une mise à jour de la base de code et du système de communication GASNet-1 PGAS, vieux de 20 ans. Dans le cadre de cette mise à jour, les interfaces GASNet ont été repensées pour répondre aux besoins émergents du calcul intensif exascale et prendre en charge les services de communication pour une variété de modèles de programmation PGAS sur les architectures HPC actuelles et futures. Cet effort comprend une refonte de l'implémentation ainsi que cette refonte majeure des interfaces logicielles.

Les objectifs motivants de cette refonte, ainsi que la rétrocompatibilité pour les clients GASNet-1, incluent :

La compatibilité est importante car GASNet a été adopté par un certain nombre de projets (Figure 2). La correspondance sémantique étroite des API GASNet-EX avec les exigences du client et les capacités matérielles produit souvent de meilleures performances que les bibliothèques concurrentes en raison de sa mise en œuvre directe sur les API natives pour les réseaux d'intérêt en HPC.

Paul Hargrove, ingénieur en systèmes informatiques 5 dans la division Mathématiques appliquées et recherche informatique (AMCR) du Lawrence Berkeley National Laboratory (Berkeley Lab) et chercheur principal du projet ECP Pagoda a observé que les changements signalés par « -EX » concernent la façon dont les applications et le HPC ont changé au cours des 20 dernières années. Par exemple, les types de mémoire sont importants pour exprimer la manière dont les accès à la mémoire distante (RMA) incluent désormais les obtentions et les mises vers/depuis la mémoire GPU.