Précédent : Gestion coordonnée du parallélisme et
Remonter : Noyau exécutif Athapascan-0 et processus
Suivant : Hétérogénéité
L'intérêt d'un noyau exécutif réside aussi dans son aptitude à supporter différents paradigmes de programmation parallèle. Les fonctions de base d'ATHAPASCAN-0 permettent d'exprimer facilement un programme parallèle soit comme un réseau dynamique de processus communicants, soit comme un graphe de tâches. Nous nous proposons de combler certaines des lacunes d'ATHAPASCAN-0 vis-à-vis de ces deux modes d'expression de programmes parallèles.
Les fonctionnalités de base offertes pour la construction de réseau dynamique de processus communicants manquent de mécanismes structurants permettant de considérer un sous-réseau de processus comme un processus unique. Nous nous proposons d'explorer le concept de groupe issu des systèmes distribués dans un cadre léger. Les problèmes principaux portent sur la construction de groupes et la détermination de l'état d'un groupe, les communications pluralistes au sein d'un groupe et entre groupes. Un point clef est la notion d'appel de multiprocédure à distance pour rendre compte de l'instanciation d'un groupe de processus pour exécuter en parallèle une même procédure.
Pour un graphe de tâches, s'il est facile de caractériser les dépendances de contrôle par des communications, il est plus difficile de caractériser les dépendances de données et de les ramener à des communications. Sur ce point, nous étudions un mécanisme de mémoire distribuée offrant les protocoles de partage les plus appropriés aux applications parallèles. Les difficultés sur ce point portent sur la définition d'un cadre général multi-protocole de mémoire distribuée, la sélection des protocoles intéressants et la conception d'une implantation légère. Nous pensons arriver à un cadre extensible basé sur un modèle de cohérence relâchée.
Les fonctions de base d'ATHAPASCAN-0 (manipulation des processus légers, fonctions de communication et d'accès de mémoire à distance) sont une plate-forme de programmation disponible (bibliothèque en C), où le placement des processus est laissé à la charge du programmeur. Ce placement peut être optimisé, comme dans l'application de dynamique moléculaire que nous développons, afin de répartir au mieux la charge de calcul, le recouvrement des attentes et des communications étant automatiquement géré par la multiprogrammation.