Interface de programmation d'application de programmation réseau de portails - Portals network programming application programming interface
| Développeur (s) | Sandia National Laboratories , Université du Nouveau-Mexique |
|---|---|
| Version stable | 4.0.2
|
| Type | API réseau |
| Site Internet | www |
Portals est une API réseau de bas niveau pour la mise en réseau haute performance sur des systèmes informatiques haute performance développée par Sandia National Laboratories et l' Université du Nouveau-Mexique . Portals est actuellement l'interface de programmation réseau de niveau le plus bas de la gamme de supercalculateurs XT à succès commercial de Cray .
Aperçu
Portals est basé sur le concept de blocs de construction élémentaires qui peuvent être combinés pour prendre en charge une grande variété de sémantiques de transport de réseau de niveau supérieur. Les portails fournissent des opérations de déplacement de données unilatérales, mais contrairement aux autres interfaces de programmation unilatérales, la cible d'une opération à distance n'est pas une adresse virtuelle . Au lieu de cela, la destination finale en mémoire d'un message entrant est déterminée au niveau du récepteur en comparant le contenu de l'en-tête de message avec le contenu des structures à la destination. Cette flexibilité permet des implémentations efficaces des communications unilatérales et bilatérales. En particulier, Portals vise à fournir les opérations fondamentales nécessaires pour prendre en charge une mise en œuvre haute performance et évolutive de la norme MPI ( Message Passing Interface ). Il a également été utilisé comme couche de transport réseau initiale pour le système de fichiers Luster .
Les premières années
Les portails ont vu le jour au début des années 1990 en tant qu'extension du système de transmission de messages nX utilisé dans les systèmes d' exploitation SUNMOS et Puma . Il a d'abord été implémenté pour Intel Paragon chez Sandia, puis porté sur la machine Intel TeraFLOPS nommée ASCI Red . Il y avait quatre blocs de construction dans la première version de Portails: le bloc unique, le bloc dynamique, le bloc indépendant et le bloc combiné. Tous les messages entrants passeraient d'abord par une liste de correspondance qui permettait aux portails individuels de répondre à des groupes spécifiques, des rangs et un ensemble de bits de correspondance spécifiés par l'utilisateur.
Portails 3
Le concept des portails a continué d'évoluer au fil des générations successives de noyaux légers et de systèmes massivement parallèles. En 1999, une interface de programmation opérationnelle a été donnée à Portals afin qu'elle puisse être implémentée pour des interfaces réseau intelligentes ou programmables en dehors d'un environnement de noyau léger. Cette norme a été conçue pour les systèmes où le travail requis pour préparer, transmettre et livrer des messages est plus long que l'aller-retour vers les structures de données des portails. Par exemple, dans les systèmes modernes, ce travail est dominé par l'aller-retour à travers le bus IO vers l'interface réseau. La norme a été révisée depuis la version initiale pour la rendre plus adaptée aux ordinateurs modernes de haute performance massivement parallèles. La bibliothèque MPI a été portée des Portals 2 rétronymés vers les nouveaux Portals 3.0.
La spécification Portals 3 a été implémentée plusieurs fois, d'abord sur ASCI Red , puis sur CPlant sur Myrinet , Linux et la famille Cray XT .
Portails 4
À la lumière des nouveaux langages d' espace d'adressage global partitionné (PGAS), plusieurs nouvelles fonctionnalités ont été ajoutées à l'API Portals dans le cadre de Portals 4. Portals 4 a également apporté plusieurs modifications pour améliorer l'interaction entre le processeur et l'interface réseau (NIC) pour les implémentations qui fournissent le déchargement. Enfin, une option pour prendre en charge une forme de contrôle de flux a été ajoutée à Portals 4.
Portals 4 est l'API réseau de bas niveau pour la carte réseau Bull-Atos BXI.