Architecture informatique parallèle - Introduction
Au cours des 50 dernières années, il y a eu d'énormes développements dans les performances et les capacités d'un système informatique. Cela a été possible grâce à la technologie VLSI (Very Large Scale Integration). La technologie VLSI permet de loger un grand nombre de composants sur une seule puce et d'augmenter les fréquences d'horloge. Par conséquent, plusieurs opérations peuvent être effectuées à la fois, en parallèle.
Le traitement parallèle est également associé à la localisation des données et à la communication des données. Parallel Computer Architecture est la méthode d'organisation de toutes les ressources pour maximiser les performances et la programmabilité dans les limites données par la technologie et le coût à tout moment.
Pourquoi une architecture parallèle?
L'architecture informatique parallèle ajoute une nouvelle dimension dans le développement du système informatique en utilisant de plus en plus de processeurs. En principe, les performances obtenues en utilisant un grand nombre de processeurs sont supérieures aux performances d'un seul processeur à un moment donné.
Tendances des applications
Avec l'avancement de la capacité matérielle, la demande pour une application performante a également augmenté, ce qui à son tour a imposé une demande au développement de l'architecture informatique.
Avant l'ère des microprocesseurs, un système informatique très performant était obtenu grâce à une technologie de circuit exotique et à une organisation de la machine, ce qui les rendait coûteux. Maintenant, un système informatique très performant est obtenu en utilisant plusieurs processeurs, et les applications les plus importantes et les plus exigeantes sont écrites sous forme de programmes parallèles. Ainsi, pour des performances plus élevées, des architectures parallèles et des applications parallèles doivent être développées.
Augmenter les performances d'une application Speedup est le facteur clé à considérer. Speedup sur p processeurs est défini comme -
$$ Speedup (p \ processors) \ equiv \ frac {Performance (p \ processors)} {Performance (1 \ processor)} $$Pour le seul problème résolu,
$$ performance \ of \ a \ computer \ system = \ frac {1} {Time \ required \ to \ complete \ the \ problem} $$ $$ Speedup \ _ {fixed \ problem} (p \ processors) = \ frac {Time (1 \ processor)} {Time (p \ processor)} $$Informatique scientifique et technique
L'architecture parallèle est devenue indispensable dans le calcul scientifique (comme la physique, la chimie, la biologie, l'astronomie, etc.) et les applications d'ingénierie (comme la modélisation de réservoir, l'analyse des flux d'air, l'efficacité de la combustion, etc.). Dans presque toutes les applications, il existe une demande énorme de visualisation de la sortie de calcul, ce qui entraîne une demande de développement de calcul parallèle pour augmenter la vitesse de calcul.
Informatique commerciale
Dans l'informatique commerciale (comme la vidéo, les graphiques, les bases de données, OLTP, etc.), des ordinateurs à grande vitesse sont également nécessaires pour traiter une énorme quantité de données dans un délai spécifié. Desktop utilise des programmes multithread qui ressemblent presque aux programmes parallèles. Cela demande à son tour de développer une architecture parallèle.
Tendances technologiques
Avec le développement de la technologie et de l'architecture, il existe une forte demande pour le développement d'applications performantes. Les expériences montrent que les ordinateurs parallèles peuvent fonctionner beaucoup plus rapidement que les processeurs uniques les plus développés. De plus, des ordinateurs parallèles peuvent être développés dans la limite de la technologie et du coût.
La principale technologie utilisée ici est la technologie VLSI. Par conséquent, de nos jours, de plus en plus de transistors, de portes et de circuits peuvent être installés dans la même zone. Avec la réduction de la taille de la caractéristique VLSI de base, la fréquence d'horloge s'améliore également proportionnellement à elle, tandis que le nombre de transistors augmente avec le carré. On peut s'attendre à ce que l'utilisation de nombreux transistors à la fois (parallélisme) fonctionne bien mieux qu'en augmentant la fréquence d'horloge
Les tendances technologiques suggèrent que le bloc de base à puce unique offrira une capacité de plus en plus grande. Par conséquent, la possibilité de placer plusieurs processeurs sur une seule puce augmente.
Tendances architecturales
Le développement technologique décide de ce qui est faisable; l'architecture convertit le potentiel de la technologie en performances et capacités.Parallelism et localitysont deux méthodes où de plus grands volumes de ressources et plus de transistors améliorent les performances. Cependant, ces deux méthodes se disputent les mêmes ressources. Lorsque plusieurs opérations sont exécutées en parallèle, le nombre de cycles nécessaires pour exécuter le programme est réduit.
Cependant, des ressources sont nécessaires pour soutenir chacune des activités simultanées. Des ressources sont également nécessaires pour allouer le stockage local. La meilleure performance est obtenue par un plan d'action intermédiaire qui utilise des ressources pour utiliser un certain degré de parallélisme et un degré de localité.
Généralement, l'histoire de l'architecture informatique a été divisée en quatre générations ayant les technologies de base suivantes -
- Les tubes à vide
- Transistors
- Circuits intégrés
- VLSI
Jusqu'en 1985, la durée était dominée par la croissance du parallélisme au niveau des bits. Microprocesseurs 4 bits suivis de 8 bits, 16 bits, etc. Pour réduire le nombre de cycles nécessaires pour effectuer une opération 32 bits complète, la largeur du chemin de données a été doublée. Plus tard, des opérations 64 bits ont été introduites.
La croissance de instruction-level-parallelisma dominé le milieu des années 80 au milieu des années 90. L'approche RISC a montré qu'il était simple de canaliser les étapes de traitement des instructions de sorte qu'en moyenne, une instruction soit exécutée dans presque chaque cycle. La croissance de la technologie des compilateurs a rendu les pipelines d'instructions plus productifs.
Au milieu des années 80, les ordinateurs à microprocesseur se composaient de
- Une unité de traitement d'entiers
- Une unité à virgule flottante
- Un contrôleur de cache
- SRAM pour les données du cache
- Stockage des tags
À mesure que la capacité de la puce augmentait, tous ces composants ont été fusionnés en une seule puce. Ainsi, une seule puce consistait en un matériel séparé pour l'arithmétique des nombres entiers, les opérations en virgule flottante, les opérations de mémoire et les opérations de branchement. Outre le pipelining des instructions individuelles, il récupère plusieurs instructions à la fois et les envoie en parallèle à différentes unités fonctionnelles lorsque cela est possible. Ce type de parallélisme de niveau d'instruction est appelésuperscalar execution.