IRISA
                                            
INRIA


Collaboration CEA / IRISA

Marc PIC & François Bodin

Le projet CT++


Parallélismes de données et de tâches simultanés

CT++ est un langage de programmation à parallélisme de données et de tâches hierarchisé. Il permet la programmation d'architecture SIMD, MIMD et Multi-SIMD(ensemble de neouds SIMD travailllant les uns par rapport aux autres en mode MIMD). Il est basé sur la syntaxe de C++. Le parallélisme de données s'exprime au moyen d'objets décrivant des ensembles de valeurs régulières à traiter simultanément, dans l'esprit de FORTRAN-90, HPF et DPCE. Le parallélisme de tâches apparait comme une extension du parallélisme de données grâce au paradigme du tableau de tâches. Il s'inspire également de l'initiative HPC++. Le parallélisme de données peut de plus s'imbriquer hiérarchiquement dans le parallélisme de tâches.

Un langage pour le traitement des images

CT++ est un langage généraliste mais fortement orienté sur le traitement des images. Un mécanisme de directives permet d'ajuster l'exécution d'un algorithme à une architecture particulière. Un benchmark de codes de traitement d'images a été porté en CT++ contenant à la fois des opérations de bas niveau (telles que corrélation, égalisation d'histogramme, transformée en ondelettes, FFT, etc..) et des opérations géométriques (telles que des projectiosn, rotations, decimations...).

Un mécanisme d'implantation original

L'implantation de ce langage sur une architecture cible s'effectue au moyen d'un préprocesseur écrit au moyen d'un restructureur source-à-source Sage++. Ce mécanisme assure une grande portabilité inter-architectures et permet d'éviter les limitations défficacité lié à une implantation via des appels de librairies.

Ce langage est destiné en premier lieu à la famille d'architecture SIMD et Multi-SIMD nommée SYMPHONIE conçue au LETI (Commissariat à l'Energie Atomique, Direction des Technologies Avancées). Une version pour architecture séquentielle et un émulateur sont développés simultanément et des versions pour des architectures parallèles différentes sont planifiées.

Documents : (partie en cours de préparation...)


Dernière mise à jour mars 97, Marc Pic. ..............................................(english version)