Architecture informatique parallèle - Modèles
Le traitement parallèle a été développé en tant que technologie efficace dans les ordinateurs modernes pour répondre à la demande de performances supérieures, de coûts inférieurs et de résultats précis dans des applications réelles. Les événements simultanés sont courants dans les ordinateurs d'aujourd'hui en raison de la pratique de la multiprogrammation, du multitraitement ou du multicomputing.
Les ordinateurs modernes disposent de progiciels puissants et étendus. Pour analyser le développement des performances des ordinateurs, nous devons d'abord comprendre le développement de base du matériel et des logiciels.
Computer Development Milestones - Il y a deux grandes étapes de développement de l'ordinateur - mechanical ou electromechanicalles pièces. Les ordinateurs modernes ont évolué après l'introduction des composants électroniques. Les électrons à haute mobilité dans les ordinateurs électroniques ont remplacé les pièces opérationnelles dans les ordinateurs mécaniques. Pour la transmission d'informations, le signal électrique qui se déplace presque à la vitesse d'une lumière a remplacé les engrenages ou leviers mécaniques.
Elements of Modern computers - Un système informatique moderne comprend du matériel informatique, des jeux d'instructions, des programmes d'application, un logiciel système et une interface utilisateur.
Les problèmes informatiques sont classés en calcul numérique, raisonnement logique et traitement transactionnel. Certains problèmes complexes peuvent nécessiter la combinaison des trois modes de traitement.
Evolution of Computer Architecture- Au cours des quatre dernières décennies, l'architecture informatique a subi des changements révolutionnaires. Nous avons commencé avec l'architecture Von Neumann et maintenant nous avons des multi-ordinateurs et des multiprocesseurs.
Performance of a computer system- Les performances d'un système informatique dépendent à la fois des capacités de la machine et du comportement du programme. La capacité de la machine peut être améliorée grâce à une meilleure technologie matérielle, des fonctionnalités architecturales avancées et une gestion efficace des ressources. Le comportement du programme est imprévisible car il dépend de l'application et des conditions d'exécution
Multiprocesseurs et multi-ordinateurs
Dans cette section, nous aborderons deux types d'ordinateurs parallèles -
- Multiprocessors
- Multicomputers
Multi-ordinateurs à mémoire partagée
Les trois modèles de multiprocesseurs à mémoire partagée les plus courants sont:
Accès mémoire uniforme (UMA)
Dans ce modèle, tous les processeurs partagent la mémoire physique de manière uniforme. Tous les processeurs ont le même temps d'accès à tous les mots mémoire. Chaque processeur peut avoir une mémoire cache privée. La même règle est suivie pour les périphériques.
Lorsque tous les processeurs ont un accès égal à tous les périphériques, le système est appelé symmetric multiprocessor. Lorsque seul un ou quelques processeurs peuvent accéder aux périphériques, le système est appeléasymmetric multiprocessor.
Accès mémoire non uniforme (NUMA)
Dans le modèle multiprocesseur NUMA, le temps d'accès varie en fonction de l'emplacement du mot mémoire. Ici, la mémoire partagée est physiquement répartie entre tous les processeurs, appelés mémoires locales. La collection de toutes les mémoires locales forme un espace d'adressage global auquel tous les processeurs peuvent accéder.
Architecture de mémoire cache uniquement (COMA)
Le modèle COMA est un cas particulier du modèle NUMA. Ici, toutes les mémoires principales distribuées sont converties en mémoires cache.
Distributed - Memory Multicomputers- Un système multi-ordinateurs à mémoire distribuée se compose de plusieurs ordinateurs, appelés nœuds, interconnectés par un réseau de transmission de messages. Chaque nœud agit comme un ordinateur autonome doté d'un processeur, d'une mémoire locale et parfois de périphériques d'E / S. Dans ce cas, toutes les mémoires locales sont privées et ne sont accessibles qu'aux processeurs locaux. C'est pourquoi, les machines traditionnelles sont appeléesno-remote-memory-access (NORMA) Machines.
Ordinateurs multivecteurs et SIMD
Dans cette section, nous aborderons les supercalculateurs et les processeurs parallèles pour le traitement vectoriel et le parallélisme des données.
Supercalculateurs vectoriels
Dans un ordinateur vectoriel, un processeur vectoriel est connecté au processeur scalaire en tant que fonction facultative. L'ordinateur hôte charge d'abord le programme et les données dans la mémoire principale. Ensuite, l'unité de contrôle scalaire décode toutes les instructions. Si les instructions décodées sont des opérations scalaires ou des opérations de programme, le processeur scalaire exécute ces opérations à l'aide de pipelines fonctionnels scalaires.
D'autre part, si les instructions décodées sont des opérations vectorielles, alors les instructions seront envoyées à l'unité de contrôle vectoriel.
Supercalculateurs SIMD
Dans les ordinateurs SIMD, un nombre «N» de processeurs sont connectés à une unité de contrôle et tous les processeurs ont leurs unités de mémoire individuelles. Tous les processeurs sont connectés par un réseau d'interconnexion.
Modèles PRAM et VLSI
Le modèle idéal donne un cadre approprié pour développer des algorithmes parallèles sans tenir compte des contraintes physiques ou des détails de mise en œuvre.
Les modèles peuvent être appliqués pour obtenir des limites de performances théoriques sur des ordinateurs parallèles ou pour évaluer la complexité VLSI sur la surface de la puce et le temps opérationnel avant la fabrication de la puce.
Machines à accès aléatoire parallèle
Sheperdson et Sturgis (1963) ont modélisé les ordinateurs Uniprocesseurs conventionnels comme des machines à accès aléatoire (RAM). Fortune et Wyllie (1978) ont développé un modèle de machine à accès aléatoire parallèle (PRAM) pour modéliser un ordinateur parallèle idéalisé sans surcharge d'accès mémoire et synchronisation.
Une PRAM à N-processeurs possède une unité de mémoire partagée. Cette mémoire partagée peut être centralisée ou répartie entre les processeurs. Ces processeurs fonctionnent sur un cycle synchronisé de mémoire de lecture, d'écriture et de calcul. Ainsi, ces modèles spécifient comment les opérations de lecture et d'écriture simultanées sont gérées.
Voici les opérations de mise à jour de la mémoire possibles -
Exclusive read (ER) - Dans cette méthode, à chaque cycle, un seul processeur est autorisé à lire à partir de n'importe quel emplacement mémoire.
Exclusive write (EW) - Dans cette méthode, au moins un processeur est autorisé à écrire dans un emplacement mémoire à la fois.
Concurrent read (CR) - Il permet à plusieurs processeurs de lire les mêmes informations à partir du même emplacement mémoire dans le même cycle.
Concurrent write (CW)- Il permet des opérations d'écriture simultanées vers le même emplacement mémoire. Pour éviter les conflits d'écriture, certaines politiques sont mises en place.
Modèle de complexité VLSI
Les ordinateurs parallèles utilisent des puces VLSI pour fabriquer des matrices de processeurs, des matrices de mémoire et des réseaux de commutation à grande échelle.
De nos jours, les technologies VLSI sont bidimensionnelles. La taille d'une puce VLSI est proportionnelle à la quantité d'espace de stockage (mémoire) disponible dans cette puce.
Nous pouvons calculer la complexité spatiale d'un algorithme par la zone de puce (A) de l'implémentation de puce VLSI de cet algorithme. Si T est le temps (latence) nécessaire pour exécuter l'algorithme, alors AT donne une limite supérieure sur le nombre total de bits traités par la puce (ou E / S). Pour certains calculs, il existe une borne inférieure, f (s), telle que
AT 2 > = O (f (s))
Où A = surface de la puce et T = temps
Pistes de développement architectural
L'évolution des ordinateurs parallèles je l'ai répandue le long des pistes suivantes -
- Plusieurs pistes de processeur
- Piste multiprocesseur
- Piste multi-ordinateur
- Piste de données multiples
- Piste vectorielle
- Piste SIMD
- Piste de plusieurs threads
- Piste multithread
- Piste Dataflow
Dans multiple processor track, on suppose que différents threads s'exécutent simultanément sur différents processeurs et communiquent via un système de mémoire partagée (piste multiprocesseur) ou de passage de messages (piste multi-ordinateur).
Dans multiple data track, on suppose que le même code est exécuté sur la quantité massive de données. Cela se fait en exécutant les mêmes instructions sur une séquence d'éléments de données (piste vectorielle) ou en exécutant la même séquence d'instructions sur un ensemble similaire de données (piste SIMD).
Dans multiple threads track, on suppose que l'exécution entrelacée de différents threads sur le même processeur permet de masquer les délais de synchronisation entre les threads s'exécutant sur différents processeurs. L'entrelacement des threads peut être grossier (piste multithread) ou fin (piste de flux de données).