Développement d'applications parallèles pour un système multiprocesseur expérimental

Un souci constant qui guide le developpement de l'informatique est l'acceleration des performances. Dans cette optique, une des solutions souvent utilisees reside en la mise en parallele des traitements. L'emergence, depuis quelques annees, des applications multimedia et l'augmentation incessante de la complexite des systemes pouvant etre integres sur un circuit motive et rend possible l'apparition et le developpement de DSP1 de plus en plus complets, dedies a certains traitements numeriques intensifs. Les applications cibles traitent generalement une enorme quantite de donnees avec un nombre limite de fonctions. Ces traitements, souvent independants les uns des autres, peuvent etre effectues en parallele. Le but est d'exploiter le parallelisme dans les donnees de plusieurs algorithmes afin de les traiter nettement plus rapidement qu'avec un ordinateur sequentiel conventionnel. Pour obtenir des applications a traitement parallele performantes il faut effectuer une partition des algorithmes etudies en assignant une partie du traitement a chacun des processeurs. Le projet PULSE, issu d'un groupe de recherche de l'Ecole Polytechnique de Montreal, travaille au developpement d'une architecture multiprocesseur de type SIMD2 dediee au traitement numerique en temps reel. Le circuit integre cible possede quatre processeurs dans sa premiere version. La seconde version doit inclure seize processeurs a l'interieur du meme circuit integre. Durant ce projet, sept applications numeriques connues ont etes ecrites en langage assembleur et optimisees sur la premiere version de PULSE. Les applications sont : multiplications vecteurs-matrice, algorithmes de cryptage RSA et IDEA, algorithme de Bresenham, modele continu (poisson) et transformation binaire d'images (inclut erosion et dilatation d'images). Pour certaines de ces applications - multiplications vecteurs-matrice, algorithme de Bresenham et transformation binaire d'images - les resultats obtenus se comparent avantageusement avec les librairies deja developpees sur des circuits integres concurrents. En plus des applications numeriques ce projet a permis d'ameliorer les differents outils de PULSE - documentation et simulateur -, ainsi que le modele VHDL3.