Projet : Cosi

previous up next contents
Précédent : MMAlpha Remonter : Logiciels Suivant : Samba


   
C-stolic

 

Participants : Dominique Lavenier, Gwendal Le Fol.

Mots clés : algorithme systolique, simulation, parallélisme .

Résumé :

C-stolic est un langage adapté à la programmation d'algorithmes systoliques. Il se base sur un mécanisme fondamental : l'affectation systolique. Cette opération, associée à une nouvelle classe, baptisée «systolic», explicite tous les mouvements de données au sein d'une architecture systolique. Le compilateur génère un code portable sur différentes machines parallèles ainsi qu'une version séquentielle, disponible dans le domaine public, pour exécuter et valider la parallélisation d'algorithmes systoliques.

C-stolic est un langage à parallélisme de données qui reprend la syntaxe du langage C, avec deux extensions principales. La première est la définition d'une nouvelle classe d'objets, la classe systolic, qui représente les objets (les variables) manipulés sur le réseau systolique linéaire. La seconde extension est l'introduction de l'opérateur d' affectation systolique qui décrit, à la fois, les transferts de données au sein du réseau, et les communications avec l'extérieur du réseau.

La compilation d'un programme C-stolic génère deux codes (en C). L'un est associé au traitement externe (alimentation en données, récupération et traitement des résultats), l'autre représente la tâche exécutée par le réseau systolique. Ces deux codes sont synchronisés par des primitives de communication qui dépendent de la machine sur laquelle s'exécute le programme C-stolic.

Une version «allégée» du compilateur est disponible dans le domaine public. Cette version compile et exécute un programme C-stolic uniquement sur une machine séquentielle. Cet outil valide par simulation l'exactitude d'une description systolique d'un algorithme (voir http://www.irisa.fr/CSTOLIC/, correspondant : lavenier@irisa.fr).



previous up next contents
Précédent : MMAlpha Remonter : Logiciels Suivant : Samba