Architecture Parallèle
Cette introduction à l'architecture parallèle s'adresse aux étudiants et chercheurs en informatique et en ingénierie qui souhaitent comprendre les fondements et enjeux du parallélisme dans les systèmes informatiques modernes. Elle explique pourquoi le parallélisme est devenu une nécessité, présente les concepts clés, décrit les approches utilisées et souligne les défis rencontrés.
D'après le document Architecture Parallèle
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Programming, Math, etc. · PDF · 26 pages · 2003
Afficher l'aperçu du document
Cette introduction à l'architecture parallèle s'adresse aux étudiants et chercheurs en informatique et en ingénierie qui souhaitent comprendre les fondements et enjeux du parallélisme dans les systèmes informatiques modernes. Elle explique pourquoi le parallélisme est devenu une nécessité, présente les concepts clés, décrit les approches utilisées et souligne les défis rencontrés.
La question
Le travail aborde le problème de la limitation des performances des processeurs classiques basés sur l'architecture Von Neumann séquentielle. Avec la saturation des fréquences d'horloge depuis environ 2008 (autour de 3 GHz), il est devenu impossible d'améliorer la vitesse des processeurs en augmentant simplement leur fréquence. De plus, des contraintes physiques comme le "Power Wall" (limite de dissipation énergétique) et le "Memory Wall" (goulot d'étranglement lié à l'accès mémoire) freinent encore plus cette évolution. Le parallélisme apparaît alors non plus comme un luxe, mais comme une nécessité pour continuer à améliorer les performances des systèmes informatiques. Ce travail explore donc comment les architectures parallèles peuvent répondre à ces défis et quelles en sont les implications.
Concepts de base
Pour comprendre l'architecture parallèle, il faut d'abord saisir plusieurs notions clés :
- Architecture Von Neumann : modèle classique où les instructions sont exécutées séquentiellement via un chemin de données et un contrôle unique.
- Saturation des fréquences : depuis 2008, la fréquence des processeurs n'augmente plus significativement, limitant la performance brute.
- Power Wall : la puissance dissipée par un processeur augmente proportionnellement au carré de la fréquence (puissance ∝ f²), ce qui entraîne un échauffement excessif et des besoins de refroidissement importants.
- Memory Wall : l'accès à la mémoire est devenu un goulot d'étranglement, ralentissant l'exécution des programmes car la mémoire ne suit pas la vitesse des processeurs.
- Propagation des ondes électromagnétiques : les délais de propagation deviennent non négligeables par rapport à la période d'horloge, limitant la vitesse des circuits.
- Parallélisme : technique consistant à exécuter plusieurs opérations simultanément pour améliorer la performance globale.
- Multi-core : architecture intégrant plusieurs cœurs de processeurs sur une même puce pour permettre l'exécution parallèle.
Ces concepts montrent que les limites physiques et technologiques imposent de changer de paradigme, en passant d'un traitement séquentiel à un traitement parallèle.
Approche
La méthode adoptée consiste à analyser les différentes facettes du parallélisme et à présenter les solutions architecturales et logicielles qui permettent d'en tirer parti :
- Au niveau algorithmique : repenser les algorithmes pour qu'ils exploitent le parallélisme et améliorent ainsi les performances.
- Au niveau logiciel : utiliser des langages et modèles de programmation adaptés au parallélisme, comme C++11, Java7 avec ForkJoin, OpenMP, MPI ou mapreduce-6e20911580">MapReduce. Cela inclut aussi les compilateurs, systèmes d'exploitation parallèles (exemple : Tessellation de UC Berkeley), et outils spécifiques pour la correction et l'implémentation des programmes parallèles.
- Au niveau matériel : concevoir des architectures avec plusieurs processeurs ou cœurs, gérer la mémoire partagée ou distribuée, optimiser les réseaux d'interconnexion, et contrôler la bande passante et le surcoût des communications.
Un exemple concret est l'architecture CELL, utilisée dans la PlayStation 3, qui combine un cœur principal (PPE) avec huit cœurs vectoriels (SPE), reliés par un bus d'interconnexion (EIB). Cette architecture illustre comment plusieurs unités de calcul peuvent coopérer pour augmenter la puissance de traitement.
Résultats
Le travail met en évidence plusieurs avantages des architectures parallèles :
- Augmentation du nombre de processeurs permettant d'améliorer les performances globales.
- Réduction du temps d'exécution des tâches complexes.
- Diminution de la consommation énergétique par rapport à une augmentation de fréquence unique.
- Absence de limitation stricte de la mémoire accessible, grâce à des architectures distribuées ou partagées.
- Accélération des calculs complexes qui seraient trop coûteux en temps sur un processeur unique.
- Amélioration de la tolérance aux fautes : si un processeur tombe en panne, un autre peut prendre le relais.
Par ailleurs, le passage au multi-core est présenté comme une révolution majeure, qui modifie profondément la manière de développer les logiciels. Le parallélisme devient une compétence incontournable pour les développeurs.
Limitations et questions ouvertes
Le parallélisme introduit aussi des défis spécifiques :
- Non-déterminisme : les résultats peuvent varier selon l'ordre d'exécution des tâches parallèles.
- Correction et justesse : vérifier que les programmes parallèles fonctionnent correctement est plus complexe.
- Interblocage : risque de blocage mutuel entre processus concurrents.
- Terminaison : garantir que les programmes parallèles se terminent correctement.
- Allocation et ordonnancement : comment répartir efficacement les tâches entre les processeurs.
- Distribution des données : gérer la localisation des données pour minimiser les communications.
- Granularité : choisir la taille des tâches parallèles pour un bon équilibre entre calcul et communication.
- Équilibre dynamique de la charge : adapter la répartition des tâches en cours d'exécution.
- Extensibilité : capacité à augmenter le nombre de processeurs sans perte de performance.
Ces questions restent des axes de recherche et d'amélioration pour les architectures et logiciels parallèles.
Glossaire
- Architecture Von Neumann : modèle classique d'ordinateur avec traitement séquentiel des instructions.
- Power Wall : limite liée à la dissipation de puissance et à la chaleur générée par les processeurs.
- Memory Wall : goulot d'étranglement causé par la lenteur relative de la mémoire par rapport au processeur.
- Parallélisme : exécution simultanée de plusieurs opérations pour améliorer la performance.
- Multi-core : architecture intégrant plusieurs cœurs de processeurs sur une même puce.
- OpenMP, MPI, MapReduce : modèles et frameworks de programmation parallèle.
- Non-déterminisme : phénomène où le résultat d'un programme dépend de l'ordre d'exécution des tâches.
- Interblocage : situation où plusieurs processus attendent indéfiniment des ressources détenues les uns par les autres.
- Granularité : taille des unités de travail dans un programme parallèle.
- Extensibilité : capacité d'un système à maintenir ses performances en augmentant ses ressources.
Commentaires
Aucun commentaire pour le moment. Posez la première question.