Projet : APACHE

previous up next contents
Précédent : Algorithmique parallèle, complexité et ordonnancement Remonter : Fondements scientifiques Suivant : Interface de programmation parallèle et


Sous-sections


   
Environnements exécutifs

Mots clés : modèles de programmation, environnement d'exécution, processus légers, communication par message, accès de mémoire à distance, ordonnancement .

Résumé :

Les noyaux exécutifs les plus répandus actuellement pour la programmation parallèle sont PVM et MPI. La raison est qu'ils sont disponibles et efficaces sur tout type de multiprocesseur. Les noyaux exécutifs sont des machines virtuelles dont la fonction est de gérer les ressources de calcul, de stockage et de communication. Un des enjeux actuels est de proposer des noyaux exécutifs qui soient aussi efficaces que PVM ou MPI tout en offrant davantage de flexibilité et de réactivité.

La qualité d'un noyau exécutif pour machine parallèle vient d'une part de ses capacités à permettre l'utilisation efficace du parallélisme physique de la machine et, d'autre part, dans son aptitude à supporter différentes pratiques ou modèles de parallélisation.

Une approche qui réalise maintenant un consensus, est d'étendre le modèle de réseau statique de processus lourds communicants (PVM, MPI) à celui de réseau dynamique de processus légers communicants et capables d'accéder à des mémoires distantes. L'intérêt de cette méthode est qu'elle est proche du paradigme processus communicants, et donc qu'elle peut hériter des avantages de cette approche (portabilité et efficacité). Un autre avantage est qu'elle offre une boîte à outil riche pour gérer données et calcul. En effet, un concept fondamental du parallélisme est celui de la localité, c'est-à-dire le rapprochement sur un couple processeur-mémoire d'un couple calcul-donnée. Faire de la répartition dynamique de la charge de calcul sur un modèle de processus communicants implique de faire de la migration de processus lourd. Dans un contexte de calcul haute performance, cette technique s'avère trop coûteuse.

Réseau dynamique de processus légers communicants

Dans le contexte technologique actuel, il parait raisonnable de privilégier les architectures de machines parallèles à mémoire distribuée, où les noeuds de calculs sont eux-même des multiprocesseurs à mémoire commune de type SMP [*]. Les temps d'accès à la mémoire sont donc uniformes sur le même noeud, mais les temps de latence des communications entre noeuds sont très grands par rapport à ces temps d'accès à la mémoire. Les noyaux exécutifs à base de processus légers communicants [[3]] privilégient l'organisation d'un calcul parallèle comme un réseau dynamique de processus communicants où le placement des processus et des données est explicite. L'utilisation efficace de telles machines nécessite de paralléliser les calculs et les communications c'est-à-dire recouvrir les communications par des calculs. Le recours systématique à des opérateurs de communication non bloquants permet au programmeur d'assurer un meilleur recouvrement au sein d'un même processus. La multiprogrammation légère permet ensuite de pallier des recouvrements imparfaits au sein des processus. Une propriété essentielle d'un tel noyau est sa réactivité face aux latences imprévisibles des communications.

Mise en oeuvre, architectures nouvelles et hétérogénéité

Un noyau exécutif se doit d'être capable de s'adapter aux évolutions technologiques des machines parallèles à mémoire distribuée. Actuellement, on perçoit plusieurs axes d'évolution. Un premier axe concerne l'accroissement d'efficacité des noeuds de calcul et des réseaux d'interconnexion [[4]]. En particulier, l'apparition de noeuds multiprocesseurs à mémoire commune pose le problème de l'utilisation efficace de ce parallélisme pour d'une part améliorer le potentiel de calcul parallèle mais aussi le recouvrement calcul-communication.

Un second axe concerne la tendance à utiliser des ensembles de machines hétérogènes via des réseaux locaux pour disposer momentanément d'une puissance de calcul importante. Les problèmes viennent alors de l'hétérogénéité des architectures et de la latence importante des réseaux locaux.

Un troisième axe concerne l'exploitation des technologies d'accès direct à la mémoire distante. Certains constructeurs (CRAY-SGI) offrent des infrastructures de ce type, mais on trouve aussi des cartes sur le marché qui permettent d'interconnecter des PC avec des réseaux à capacité d'adressage selon la norme IEEE-SCI [*]. Dans ce contexte, il s'agit de savoir exploiter cette nouvelle architecture qui permet de faire de la communication entre machines distantes avec ``zéro'' copie intermédiaire et donc plus rapidement. Ces communications sont vues comme des opérations de lecture et d'écriture.

Support exécutif pour langages de programmation

Les fonctions de base d'une telle machine virtuelle permettent, d'une part, d'exprimer facilement un programme parallèle soit comme un réseau dynamique de processus communicants, soit comme un graphe de tâches et, d'autre part, de décrire des structures complexes de données. Ces deux volets sont exploités par des interfaces de programmation de type différents et les cibles sont nombreuses : programmation scientifique en Fortran, programmation parallèle objet, programmation parallèle utilisant des ``frameworks'', environnement de calcul spécifique (e.g. calcul formel), programmation logique, etc.



Footnotes

... SMP [*]
Symetric Multi-Processors
... IEEE-SCI [*]
Scalable Coherent Interface


previous up next contents
Précédent : Algorithmique parallèle, complexité et ordonnancement Remonter : Fondements scientifiques Suivant : Interface de programmation parallèle et