L’architecture des ordinateurs, qu’il s’agisse de microprocesseurs ou de supercalculateurs, est fortement influencée par l’exploitation d’une propriété fondamentale des applications : le parallélisme. Un grand nombre d’architectures présentes dans les sites informatiques sont parallèles. Ce type d’architecture touche une large gamme de machines depuis les PC biprocesseurs jusqu’aux supercalculateurs. Aujourd’hui, la plupart des serveurs sont des machines parallèles (des multiprocesseurs).
L’objectif de notre exposé est d’introduire la notion de parallélisme, de discuter la nécessité de l’exploiter pour atteindre de hautes performances et de présenter les différentes formes d’architectures d’ordinateurs parallèles.
Tout au cours de notre étude, nous évoquons plusieurs domaines d’applications pour lesquels l’exploitation du parallélisme est fondamentale : le traitement numérique, les bases de données, le traitement d’images, la comparaison de séquences ADN, etc. Pour traiter ces applications, les architectures parallèles peuvent être généralistes (c’est-à-dire capables de répondre aux besoins d’une grande diversité d’applications) ou spécialisées. Les architectures spécialisées sont destinées à exploiter les caractéristiques spécifiques d’une catégorie d’applications ou même d’une seule application. Nous présentons ces deux types d’architectures parallèles.
Bien souvent, il faut avoir recours à une conception et à un développement parallèle de l’application pour exploiter le parallélisme de façon intéressante. Les langages de programmation parallèles sont une composante essentielle dans la chaîne de conception d’une application. Nous présentons les principaux.
Enfin, l’intérêt des architectures parallèles réside dans les performances qu’elles permettent d’atteindre. Nous examinons donc les métriques utilisés pour rendre compte des performances et les grandes lois qui les gouvernent.