Précédent : Grands domaines d'application
Remonter : Projet API, Architectures parallèles intégrées
Suivant : Résultats nouveaux
Résumé : Pour le projet Api, cette section serait mieux vue sous le titre <<Réalisations>>. Elle inclut les réalisations de machines spécifiques, en plus des logiciels de conception d'architectures.Les realisations au niveau logiciel du projet Api sont matérialisées par MMAlpha pour la synthèse de haut niveau, et C-stolic, pour la programmation de réseau systoliques linéaires. La réalisation de l'accélérateur systolique Samba, dédié à la comparaison de séquences biologiques un exemple d'application de techniques systoliques
Résumé : Le logiciel MMAlpha est une plate forme écrite en Mathematica et C permettant de manipuler des programmes Alpha dans le double but de générer soit des architectures régulières à partir de spécifications de haut niveau, soit du code pour des machines programmables. Les techniques utilisées sont celles de la parallélisation automatique et de synthèse de la réseaux systoliques.
Le noyau de ce logiciel est la librairie polyédrique développée par Hervé Le Verge et Doran Wilde [Wil93]. La librairie polyédrique permet la manipulation de polyèdres et de fonctions affines. La manipulation des domaines utilisés dans les équations récurrentes ou des espaces d'indices décrits par les boucles imbriquées justifie l'emploi d'une telle librairie. Cette librairie est actuellement utilisée (indépendamment de MMAlpha) par plusieurs organismes de recherche (Angleterre, Etats Unis, ainsi qu'en France).
Les transformations de programmes Alpha sont implémentées en utilisant les possibilités de Mathematica et de la librairie polyédrique. Le principe d'utilisation de ces transformations est de dériver soit une architecture soit du code séquentiel ou parallèle à partir d'une spécification algorithmique d'un traitement. Ces transformations sont semi-automatiques, c'est à dire que les actions à effectuer sont indiquées par l'utilisateur mais la transformation elle-même est exécuté par MMAlpha, ce qui permet de limiter les erreurs lors de la manipulation manuelle de programmes. Il est possible d'effectuer une dérivation automatique par défaut mais l'expérience montre que l'espace de conception est si important que cela est rarement satisfaisant.
La méthodologie de conception est héritée de la méthode de synthèse de réseaux systoliques, ce domaine a été longuement étudié du point de vue théorique et l'environnement MMAlpha permet de tester les différentes stratégies de synthèse existantes, d'étudier différentes possibilités de parallélisation et de générer une description architecturale d'un circuit grâce au format AlpHard (sous-ensemble du langage Alpha). La communication avec les outils de synthèse logique se fait grâce à une traduction automatique du format AlpHard vers VHDL.
Le logiciel MMAlpha (http://www.irisa.fr/api/ALPHA/
, correspondant: Tanguy Risset, risset@irisa.fr).
) est
en cours de dépôt à l'association de protection des programmes,
il a été le support d'implémentation de nombreuses thèses
réalisées à l'Irisa. Il n'est pas encore en domaine public, il
est distribué à quelques équipes de recherche dans le cadre de
collaborations précises (voir section ).
Actuellement c'est un des seuls outils permettant de décrire un
algorithme et son implémentation matérielle dans le même langage
et de déduire cette implémentation de manière
semi-automatique.
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.
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 (voir http://www.irisa.fr/CSTOLIC/ , correspondant: lavenier@irisa.fr). 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.
Mots-clés : biologie moléculaire, architecture
systolique, comparaison de séquences
Résumé : Samba (Systolic Accelerator for Molecular Biological Applications) est un accélérateur matériel dédié à un traitement de base de la biologie moléculaire : la comparaison de séquences génétiques. Le coeur de l'accélérateur est un réseau linéaire de 128 processeurs. Connecté à un ordinateur hôte, l'accélérateur divise les temps de calcul liés aux traitements des séquences par un facteur 100. Dominique Lavenier a reçu le prix Seymour Cray France 1996 pour cette architecture.
Le prototype réalisé dans l'équipe est bâti autour d'un réseau systolique linéaire de 128 processeurs (32 puces de 4 processeurs). Les processeurs sont des circuits full custom conçus spécialement pour accélérer une famille d'algorithmes propre à la comparaison de séquences génétiques. Ils sont donc paramétrables pour adapter le traitement à toutes les applications de la biologie moléculaire qui manipulent des séquences de manière intensive.
La programmation de l'accélérateur Samba fait appel à une bibliothèque de procédures et de fonctions que l'on inclut dans un programme C. Cette approche autorise l'élaboration de nouvelles applications de manière aisée et rApide.
L'accélération dépend de l'application. Typiquement,
l'exploration d'une banque de séquences est 50 fois plus rApide
que l'usage de programmes standards tels que
SSearch ou Bestfit, programmes
réputés pour la qualité des résultats produits, mais aussi par le
temps de calcul excessif. Pour des applications encore plus
coûteuses, en terme de quantité de calculs, comme la comparaison
banque à banque, les performances de Samba sont optimales :
il y a peu d'entrées/sorties (relativement au calcul) et le
réseau systolique fonctionne à plein régime. Des accélérations de
l'ordre de 200 et plus peuvent être obtenues (cf section ).
L'accélérateur Samba peut être tésté grâce à un site internet (correspondant: Dominique Lavenier, http://www.irisa.fr/SAMBA , lavenier@irisa.fr). ).