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

Un souci constant qui guide le développement de l'informatique est l'accélération des performances. Dans cette optique, une des solutions souvent utilisées réside en la mise en parallèle des traitements. L'émergence, depuis quelques années, des applications multimédia et l'aug...

Full description

Bibliographic Details
Main Author: Clar, Jean-Jacques
Format: Others
Language:fr
Published: 2002
Subjects:
Online Access:http://constellation.uqac.ca/845/1/14486922.pdf
Description
Summary:Un souci constant qui guide le développement de l'informatique est l'accélération des performances. Dans cette optique, une des solutions souvent utilisées réside en la mise en parallèle des traitements. L'émergence, depuis quelques années, des applications multimédia et l'augmentation incessante de la complexité des systèmes pouvant être intégrés sur un circuit motive et rend possible l'apparition et le développement de DSP1 de plus en plus complets, dédiés à certains traitements numériques intensifs. Les applications cibles traitent généralement une énorme quantité de données avec un nombre limité de fonctions. Ces traitements, souvent indépendants les uns des autres, peuvent être effectués en parallèle. Le but est d'exploiter le parallélisme dans les données de plusieurs algorithmes afin de les traiter nettement plus rapidement qu'avec un ordinateur séquentiel conventionnel. Pour obtenir des applications à traitement parallèle performantes il faut effectuer une partition des algorithmes étudiés en assignant une partie du traitement à chacun des processeurs. Le projet PULSE, issu d'un groupe de recherche de l'École Polytechnique de Montréal, travaille au développement d'une architecture multiprocesseur de type SIMD2 dédiée au traitement numérique en temps réel. Le circuit intégré cible possède quatre processeurs dans sa première version. La seconde version doit inclure seize processeurs à l'intérieur du même circuit intégré. Durant ce projet, sept applications numériques connues ont étés écrites en langage assembleur et optimisées sur la première version de PULSE. Les applications sont : multiplications vecteurs-matrice, algorithmes de cryptage RSA et IDEA, algorithme de Bresenham, modèle continu (poisson) et transformation binaire d'images (inclut érosion et dilatation d'images). Pour certaines de ces applications - multiplications vecteurs-matrice, algorithme de Bresenham et transformation binaire d'images - les résultats obtenus se comparent avantageusement avec les librairies déjà développées sur des circuits intégrés concurrents. En plus des applications numériques ce projet à permis d'améliorer les différents outils de PULSE - documentation et simulateur -, ainsi que le modèle VHDL3.