Vers un support d'exécution portable pour applications parallèles irrégulières: Athapascan-0. (Run-time support for irregular parallel applications: Athapascan-0)

Nous presentons un support d'execution pour applications paralleles irregulieres. Par le terme irregulier nous entendons des applications dont le comportement ne peut pas etre prevu independamment du probleme effectif a resoudre. En consequence, le calcul d'un «bon» ordonnancement pour de telles applications est impossible. Il est alors necessaire de permettre l'execution dynamique et concurrente d'un grand nombre de calculs de grain eventuellement fin, et ce avec un cout minimum pour ne pas grever l'efficacite. L'approche retenue dans le cadre du projet APACHE consiste, pour assurer la portabilite efficace des applications, a exploiter le concept de polyalgorithme et a l'exprimer a l'aide d'une decomposition procedurale parallele. L'operateur de base de notre support d'execution, l'appel de procedure a distance asynchrone, permet d'exprimer une telle decomposition procedurale. Cet operateur est realise par le couplage lâche d'un noyau de multiprogrammation legere et d'un noyau de communication (PVM). Chaque calcul (execution d'une procedure) est alors realise par un fil d'execution different. Nous decrivons le modele de programmation que nous avons retenu, les choix de realisation et l'implantation effectuee. Nous exposons en particulier le probleme du couplage de la progression des calculs et de celle des communications, couplage realise a l'aide d'une operation «d'ordonnancement-scrutation». Cette realisation est ensuite evaluee selon divers criteres (portabilite, latence, debit, recouvrement, performances d'une application reelle). Nous presentons en dernier lieu 13 autres supports d'execution de but semblable: utiliser la multiprogrammation legere pour ameliorer le support des applications paralleles de grain variable. Nous tentons en particulier de degager les grandes lignes de comparaison entre ces executifs, et presentons les diverses solutions retenues pour le couplage multiprogrammation legere/communications. Nous terminons par une indication d'un paradigme de programmation plus evolue, extension de la notion de decomposition procedurale parallele