Architectures SIMD/MIMD pour calculateurs parallèles

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quels éléments sont considérés comme les composants principaux d'un calculateur massivement parallèle ?

  • Processeur, mémoire, carte graphique
  • Disque dur, mémoire, éléments de traitement
  • Unité de contrôle, mémoire, réseau d'interconnexion
  • Mémoire, réseau d'interconnexion, éléments de traitement (correct)

Quelle classification décrit le système 'SIMD' ?

  • Flux d'instructions multiples et flux de données uniques
  • Flux d'instructions et flux de données uniques
  • Flux d'instructions uniques et flux de données multiples (correct)
  • Flux d'instructions multiples et flux de données multiples

Quel mode de contrôle nécessite que chaque processeur ait son propre espace d'adressage ?

  • Mémoire partagée
  • Mémoire distribuée (correct)
  • Contrôle centralisé
  • Réseau circulaire

Quel est le rôle des éléments de traitement dans un calculateur massivement parallèle ?

<p>Exécuter des instructions sur des données (A)</p> Signup and view all the answers

Quel est un exemple du fonctionnement en pipeline dans les unités de traitement ?

<p>Alignement de mantisse (D)</p> Signup and view all the answers

Quelle classification remplace le flux de données par le flux d'exécution selon Kuck ?

<p>Flux d'exécution (C)</p> Signup and view all the answers

Quel aspect de l'organisation de la mémoire garantit un temps d'accès presque indépendant du processeur ?

<p>Mémoire partagée (A)</p> Signup and view all the answers

Quelle architecture permet de traiter plusieurs instructions et plusieurs flux de données simultanément ?

<p>MIMD (A)</p> Signup and view all the answers

Quel est le principal inconvénient des architectures SIMD ?

<p>Parallélisme limité et rigide (B)</p> Signup and view all the answers

Quelle caractéristique décrit le mieux les architectures MIMD avec mémoire partagée ?

<p>Les processeurs partagent un espace d'adresse uniforme (C)</p> Signup and view all the answers

Quel type de réseau est associé à une architecture de mémoire distribuée ?

<p>Réseau en hypercube 3D (A)</p> Signup and view all the answers

Comment est décrite la courbe de performance SIMD typique ?

<p>Une augmentation avec un plateau final (C)</p> Signup and view all the answers

Quel diagramme représente un réseau de communication entre éléments de traitement avec mémoire locale ?

<p>Réseau d'interconnexion entre PE et mémoire locale (C)</p> Signup and view all the answers

Quel est un des avantages des architectures MIMD avec mémoire distribuée ?

<p>Espace d'adresse distribué lié à chaque banque de mémoire (C)</p> Signup and view all the answers

Quelle est l'une des caractéristiques d'un réseau en grille 2D ?

<p>Capacité d'extension en grille 3D ou torus (B)</p> Signup and view all the answers

Quel est un des avantages des architectures SIMD en général ?

<p>Modèle de programmation simple basé sur la manipulation de vecteurs (D)</p> Signup and view all the answers

Quel est un élément caractéristique d'une machine vectorielle ?

<p>Possède un ensemble d'instructions pouvant opérer sur des scalaires et des vecteurs. (D)</p> Signup and view all the answers

Quelle est la définition d'un vecteur ?

<p>Une série d'adresses avec un pas et une longueur définis. (A)</p> Signup and view all the answers

Qu'est-ce qu'une opération réduction en contexte vectoriel ?

<p>Une opération qui exécute une combinaison d'éléments de deux vecteurs. (A)</p> Signup and view all the answers

Dans quel exemple les vecteurs peuvent-ils être combinés ?

<p>Lorsque les vecteurs sont de la même longueur. (A)</p> Signup and view all the answers

Quelle est la notation pour un vecteur conforme à la définition ?

<p>A[i; N; R] (D)</p> Signup and view all the answers

Quelle opération est considérée comme une opération de réduction ?

<p>VECM1 op VECM2 = scal. (B)</p> Signup and view all the answers

Quelles units sont impliquées dans une machine vectorielle typique ?

<p>Unités scalaires et vectorielles. (A)</p> Signup and view all the answers

Quel type d'opérations est effectué avec les vecteurs ?

<p>Des opérations arithmétiques et logiques avec au moins un vecteur. (A)</p> Signup and view all the answers

Quel est le rôle du temps de démarrage ($α$) dans le calcul du temps d'exécution $T(n)$?

<p>Il s'ajoute au temps d'exécution total. (B)</p> Signup and view all the answers

Quelle est la formule correcte pour calculer la vitesse d'exécution $V(n)$?

<p>$V(n) = n/(α + ητ)$ (A)</p> Signup and view all the answers

Quel est le lien entre $r_{∞}$ et le temps de cycle ($τ$)?

<p>$r_{∞} = 1/τ$ (A)</p> Signup and view all the answers

Quelle est la capacité de la mémoire de l'Inmos T800 ?

<p>4 KB (C)</p> Signup and view all the answers

Qu'est-ce que l'architecture SIMD permet de réaliser?

<p>Éxécuter des instructions à la fois sur des processeurs différents. (A)</p> Signup and view all the answers

Quel est un des inconvénients des traitements parallèles dans le Transputer ?

<p>Routage effectué par le Transputer (D)</p> Signup and view all the answers

Quelle formule représente le speedup d'un algorithme ?

<p>$S_{p}(A) = T_{1} / T_{p}(A)$ (C)</p> Signup and view all the answers

Dans le contexte des machines SIMD, que sont les éléments de traitement (PE)?

<p>Des unités capables d'exécuter des instructions en parallèle. (B)</p> Signup and view all the answers

Quel est l'effet de l'utilisation d'un bit d'inhibition dans une boucle?

<p>Il permet d'éviter des opérations inutiles. (A)</p> Signup and view all the answers

Quelle est la durée maximale d'un traitement impliquant q processeurs, selon le résultat général pour une machine parallèle parfaite ?

<p>$N_{p}/q + T_{p}$ (A)</p> Signup and view all the answers

Quel est l'impact du parallélisme sur les unités fonctionnelles?

<p>Il augmente le nombre d'instructions pouvant être exécutées simultanément. (B)</p> Signup and view all the answers

Comment décrire le concept d'efficacité d'un algorithme ?

<p>$E_{p}(A) = S_{p}(A) / p$ (B)</p> Signup and view all the answers

Quel est le rôle de l'unité de traitement flottante dans l'Inmos T800 ?

<p>Améliorer la vitesse de traitement (B)</p> Signup and view all the answers

La formule $T(n) = 1/r_{∞}(n + n_{1/2})$ sert à calculer quoi?

<p>Le temps d'exécution d'une séquence d'opérations. (A)</p> Signup and view all the answers

Quel facteur n'est pas pris en compte pour les métriques de complexité des algorithmes parallèles ?

<p>Coût de la mémoire (C)</p> Signup and view all the answers

Quel est le temps requis par un algorithme sur $p$ processeurs pour effectuer une tâche C appelée $T_{p}(A)$ ?

<p>Un temps qui varie selon le nombre de processeurs (C)</p> Signup and view all the answers

A[1; N; 2] = B[3; N; 1] + d C[5; N; 3] se traduit par quelle équation ?

<p><em>A</em>(2 * <em>i</em> - 1) = <em>B</em>(2 + <em>i</em>) + <em>d</em> <em>C</em>(3 * <em>i</em> + 2) (B)</p> Signup and view all the answers

Quel est le rôle du masque VM dans les opérations vectorielles ?

<p>Il détermine si une opération doit être effectuée pour chaque élément. (A), Il exécute toutes les opérations, mais ne modifie que certaines composantes. (D)</p> Signup and view all the answers

L'instruction c = SUM(A[1; N; 2]) initialise c à quelle valeur ?

<p>0 (B)</p> Signup and view all the answers

Comment les opérations vectorielles sont-elles exécutées lorsqu'un masque est utilisé ?

<p>Toutes les opérations sont effectuées comme si le masque n'était pas présent. (A), Seules les opérations dont le masque est activé sont effectuées. (D)</p> Signup and view all the answers

Quel est l'effet du traitement des branches conditionnelles dans une boucle avec le masque ?

<p>Il permet d'exclure rapidement des opérations non nécessaires. (B)</p> Signup and view all the answers

Quelle est la bonne description de l'exécution des instructions vectorielles en séquence ?

<p>Chaque instruction est stockée et exécutée étroitement l'une après l'autre. (C)</p> Signup and view all the answers

Le comportement d'un vecteur de masque indique que si VM(i) = 1, alors que se passe-t-il ?

<p><em>C</em>(<em>i</em>) reçoit la valeur résultante de <em>A</em>(<em>i</em>) + <em>B</em>(<em>i</em>). (A)</p> Signup and view all the answers

Quel est le principal avantage d'utiliser des instructions vectorielles avec un masque ?

<p>Cela permet de réduire les besoins en temps de calcul. (C)</p> Signup and view all the answers

Flashcards

Architecture des calculateurs massivement parallèles

Structure générale impliquant un réseau d'interconnexion, des processeurs, et une mémoire partageant les données et instructions.

SIMD

Architecture où une seule instruction est exécutée sur plusieurs données simultanément.

MIMD

Architecture où plusieurs instructions sont exécutées sur plusieurs données simultanément.

Mémoire partagée

Une mémoire unique accessible par tous les processeurs.

Signup and view all the flashcards

Mémoire distribuée

Chaque processeur dispose de sa propre mémoire.

Signup and view all the flashcards

Pipeline (calcul)

Décomposition d'une opération complexe en étapes élémentaires exécutées en série.

Signup and view all the flashcards

Processeur (PE)

Un élément de traitement dans un système parallèle.

Signup and view all the flashcards

Réseau d'interconnexion

Le système de communication entre les processeurs (PE) et la mémoire.

Signup and view all the flashcards

Temps de démarrage (α)

Le temps nécessaire pour initialiser une séquence d'opérations dans un pipeline.

Signup and view all the flashcards

Vitesse asymptotique (r)

La vitesse maximale d'un pipeline, atteinte lorsque la longueur de la séquence d'opérations est infinie.

Signup and view all the flashcards

Longueur de la suite à mi-performance (n1/2)

La longueur de la séquence d'opérations nécessaire pour atteindre la moitié de la vitesse asymptotique.

Signup and view all the flashcards

Parallélisme fonctionnel

L'utilisation de plusieurs unités fonctionnelles indépendantes pour exécuter des instructions simultanément.

Signup and view all the flashcards

Machines SIMD

Architectures où une seule instruction est exécutée sur plusieurs données simultanément.

Signup and view all the flashcards

Banques de mémoire indépendantes

Plusieurs blocs de mémoire pouvant être accédés simultanément dans une machine SIMD.

Signup and view all the flashcards

Bit d'inhibition

Un bit utilisé pour éviter des opérations inutiles dans un circuit SIMD, en désactivant certaines unités de traitement.

Signup and view all the flashcards

Courbe de performance SIMD

Une courbe qui montre comment la performance d'un système SIMD change avec le nombre d'itérations. La performance augmente linéairement jusqu'à un certain point, puis atteint un plateau.

Signup and view all the flashcards

Mémoire locale

Chaque processeur élémentaire (PE) a sa propre mémoire locale, utilisée pour stocker des données locales. Cela permet d'accéder rapidement aux données et réduit le trafic sur la mémoire partagée.

Signup and view all the flashcards

Avantages des premières machines SIMD

Ces machines étaient simples, répétitives, modulaires et adaptables à un grand nombre de processeurs. Elles utilisaient des processeurs élémentaires simples et un parallélisme à grain fin.

Signup and view all the flashcards

MIMD avec mémoire partagée

Un type d'architecture où chaque processeur a accès à une mémoire partagée unique. Cela permet aux processeurs de partager les données et de communiquer facilement.

Signup and view all the flashcards

MIMD avec mémoire distribuée

Chaque processeur a sa propre mémoire, qui est accessible uniquement par ce processeur. Les données doivent être transférées explicitement entre les processeurs.

Signup and view all the flashcards

Grille 2D

Une topologie de réseau pour les machines à mémoire distribuée, où les processeurs sont disposés sur une grille 2D.

Signup and view all the flashcards

Hypercube 3D

Une topologie de réseau pour les machines à mémoire distribuée, où les processeurs sont disposés sur les nœuds d'un hypercube 3D.

Signup and view all the flashcards

Transputer

Un microprocesseur conçu pour le calcul parallèle, offrant une commutation de processus rapide et une communication parallèle.

Signup and view all the flashcards

Communication Transputer

Les Transputers communiquent via des connexions point à point, le routage des messages étant géré par le Transputer lui-même.

Signup and view all the flashcards

Algorithme parallèle

Un algorithme conçu pour être exécuté sur plusieurs processeurs simultanément, afin d'accélérer le calcul.

Signup and view all the flashcards

Vitesse de l'algorithme parallèle

La vitesse d'un algorithme parallèle dépend de la taille du problème, de l'efficacité de la parallélisation et du nombre de processeurs utilisés.

Signup and view all the flashcards

T1

Le temps requis par le meilleur algorithme séquentiel pour effectuer un calcul C.

Signup and view all the flashcards

Tp(A)

Le temps requis par l'algorithme A pour effectuer un calcul C en utilisant p processeurs.

Signup and view all the flashcards

Vitesse (Sp(A))

Le rapport entre le temps de calcul séquentiel (T1) et le temps de calcul parallèle (Tp(A)).

Signup and view all the flashcards

Efficacité (Ep(A))

La vitesse (Sp(A)) divisée par le nombre de processeurs utilisés (p).

Signup and view all the flashcards

Vecteur: Adresse de début

L'adresse du premier élément d'un vecteur.

Signup and view all the flashcards

Vecteur: Pas

La distance entre chaque élément consécutif dans un vecteur.

Signup and view all the flashcards

Vecteur: Longueur

Le nombre d'éléments dans un vecteur.

Signup and view all the flashcards

Vecteur bidimensionnel

Un vecteur à deux dimensions, défini par une séquence d'adresses dans un plan.

Signup and view all the flashcards

Machine vectorielle: Unités scalaires

Ces unités exécutent des instructions sur des valeurs simples (scalaires) une par une.

Signup and view all the flashcards

Machine vectorielle: Unités vectorielles

Ces unités sont conçues pour exécuter des instructions sur des vecteurs de données.

Signup and view all the flashcards

Opérations vectorielles: Composante par composante

Chaque élément d'un vecteur est traité individuellement.

Signup and view all the flashcards

Opérations vectorielles: Réduction

Opération vectorielle qui réduit une série de données à une seule valeur.

Signup and view all the flashcards

Opération vectorielle

Opération effectuée simultanément sur tous les éléments d'un vecteur.

Signup and view all the flashcards

Masque vecteur (VM)

Vecteur de bits qui contrôle l'exécution d'une opération vectorielle.

Signup and view all the flashcards

Comportement du masque

Si VM(i)=1, le i-ème élément du résultat est modifié par l'opération. Si VM(i)=0, il reste inchangé.

Signup and view all the flashcards

Traitement des instructions conditionnelles

Utiliser un masque pour simuler un test conditionnel dans une boucle vectorielle.

Signup and view all the flashcards

Avantages du masquage

Permet d'optimiser les opérations vectorielles en effectuant seulement les opérations nécessaires.

Signup and view all the flashcards

Calculs vectoriels synchrones

Les opérations sont effectuées de manière séquentielle, chaque opération attend le résultat de la précédente.

Signup and view all the flashcards

Ordre d'évaluation des opérandes

Les opérandes à droite sont évalués en entier avant l'exécution de l'opération.

Signup and view all the flashcards

Coût du masquage

Le temps d'exécution est proportionnel à la dimension du vecteur, même si le masque est utilisé.

Signup and view all the flashcards

Study Notes

Architectures de calculateurs massivément parallèles

  • Différents types d'architectures sont étudiés: SIMD/MIMD
  • Les calculateurs massivément parallèles ont trois composants de base : processeur, réseau d'interconnexion et mémoire.

Structure générale d'un calculateur (massivément) parallèle

  • La mémoire contient des données et des instructions
  • Le réseau d'interconnexion relie les processeurs et la mémoire.
  • Les processeurs (PE) sont interconnectés pour le traitement parallèle des données.

Plan de l'étude

  • L'introduction est incluse dans le plan
  • Le principe des architectures SIMD/MIMD est abordé
  • Un processeur élémentaire est expliqué
  • Le rôle du réseau d'interconnexion est détaillé
  • L'organisation de la mémoire est décrite
  • Quelques exemples de machines sont présentés

Classification (1)

  • La classification de Flynn est une approche de base pour les architectures SIMD/MIMD.
  • SISD : Un seul flux d'instruction, un seul flux de données
  • SIMD : Un seul flux d'instruction, multiple flux de données
  • MIMD : Multiple flux d'instruction, multiple flux de données

Organisation de la mémoire

  • La mémoire partagée partage un espace d'adressage unique par tous les processeurs
  • La mémoire distribuée : Chaque processeur possède sa propre mémoire.

Pipelines

  • Une opération dans une unité fonctionnelle est divisée en plusieurs étapes élémentaires.
  • L'exemple donné est l'additionneur flottant (4 étapes).
  • Le pipeline est applicable aux opérations flottantes, aux opérations de lecture/écriture mémoire, et à l'unité de contrôle.
    • Des tableaux illustrent la séquence d'exécution dans un pipeline.

Pipelines (suite)

  • Le temps de traversée de l'étage i du pipeline est noté Ti
  • Le temps d'exécution d'une séquence de n opérations noté T(n)
    • T(n) = temps de startup (α) + nombre d'étapes (η) x temps par étape (τ)
  • La vitesse d'exécution V(n) est donnée par : V(n) = n / T(n) = n / (α + ητ)

Parallélisme entre unités fonctionnelles

  • Plusieurs unités fonctionnelles peuvent exécuter différentes instructions en parallèle.
  • Les exemples incluent additionneur, multiplieur, unité lecture/écriture mémoire.
  • Le parallélisme est applicable avec des unités de pipeline.

Machines SIMD

  • Chaque instruction est diffusée à tous les processeurs.
  • Chaque processeur exécute l'instruction ou reste inactif (bit d'inhibition).
  • Structure mémoire en bancs indépendants
  • Le réseau d'interconnexion est un permuteur synchrone.

Machines SIMD (suite)

  • Les vecteurs sont divisés en tranches de P éléments au plus.
  • L'algorithme DO i = 1, n c(i) = a(i) + b(i) est une illustration.
  • Des diagrammes/exemples de l'implantation des données dans les bancs mémoire illustrent les conflits de bancs.

Machines SIMD (suite)

  • Des exemples d'implantations mémoire différentes sont données.
  • L'implantation des données dans les mémoires pose le problème des conflits de bancs.
  • Le réseau d'interconnexion devient crucial pour réaliser le parallélisme.

Machines SIMD (suite)

  • Les performances des machines SIMD sont en plateau.

Variante à mémoire locale

  • Il n'y a pas de différence fondamentale avec le cas mémoire commune.
  • Le nombre de processeurs est égal (ou peut être différent) au nombre de bancs mémoire.
  • Se préter mieux à l'intégragion.
  • Nécessité de faire transiter les données par la mémoire locale.

Premier bilan des machines SIMD

  • Les avantages incluent une architecture simple, répétitive, modulaire, les processeurs élémentaires simples et le fonctionnement synchrone.
  • Les inconvénients incluent les possibilités de parallélisme trop réduites et une architecture spécialisée.

Architectures MIMD mémoire commune

  • Les processeurs sont autonomes et s'assurent de leur synchronisation.
  • Un espace d'adressage unique est utilisé.
  • Le réseau d'interconnexion fonctionne comme un commutateur téléphonique.
  • Le mouvement explicite des données entre processeurs n'est pas nécessaire.

Machines MIMD à mémoire distribuée

  • Les processeurs et la mémoire sont autonomes.
  • L'espace d'adressage est distribué, limité au banc mémoire associé.
  • Le réseau fonctionne par échanges de messages.
  • Le mouvement explicite des données est nécessaire entre les processeurs.

Topologies des machines à mémoire distribuée

  • Machines à mémoire distribuée peuvent avoir des topologies de grille 2D, 3D ou tore
  • L'hypercube est une autre topologie possible
  • Les liens de communication sont explicités pour chacune des topologies

Premier bilan : machine MIMD à mémoire partagée

  • Les avantages incluent une programmation simple et l'absence de migrations inutiles des données.
  • Les inconvénients incluent la difficulté de la réalisation et les performances du réseau qui impactent la performance globale.

Premier bilan : machine MIMD à mémoire distribuée

  • Les avantages incluent la facilité d'extension et les bonnes performances mémoire.
  • Les inconvénients incluent une programmation qui gère les communications entre processeurs, les problèmes de performances en accès mémoire non locaux.
  • Une tendance est de fournir un espace d'adressage unique au programmeur.

Processeurs élémentaires (machines SIMD)

  • Les processeurs spécialisés sont possibles sans séquenceur complet.
  • Exemples : processeurs 1 bit (DAP, Connection Machine 1 & 2), processeurs 4 bits (Maspar), couplage avec des opérateurs flottants (CM2).

Processeurs élémentaires (machines MIMD)

  • Les microprocesseurs standards peuvent être utilisés (peu de contraintes).
  • Nécessité de synchronisations et de gestion des communications.
  • Le processeur peut assurer le routage des données.
  • Les exemples incluent le transputer (solution partielle).

Algorithmique parallèle

  • L'impact du parallélisme sur les performances est variable et dépendant de l'application.
  • Nouvelles mesures de complexité sont introduites : longueur de vecteurs, largeur du parallélisme et volume de communication.

Algorithmique parallèle (suite)

  • Définitions des notions de T₁, Tp(A), Speedup Sp(A) et Efficiency Ep(A) sont données
  • Les propriétés Sp(A) ≤ p et Ep(A) ≤ 1 sont présentées

Un résultat général sur la machine parallèle

Propriété des vecteurs

Machines vectorielles

  • Les machines vectorielles incluent des unités scalaires et des unités vectorielles.
  • Elles permettent le traitement de données scalaires et vectorielles.
  • L'exemple de la machine CRAY est cité comme exemple d'unité matérielle capable d'opérer sur des scalaires et des vecteurs.

Opérations vectorielles

  • Les opérations vectorielles étendent les opérations arithmétiques classiques aux opérations sur les vecteurs.
  • Des exemples d'opérations vectorielles composantes à composante et de réduction sont donnés.

Exemples

  • Des exemples de manipulation de vecteurs et d'instructions vectorielles sont détaillés.

Vue logicielle des opérations vectorielles

  • La vue logicielle des opérations vectorielles décompose l'exécution en phases de chargement, d'opérations synchrones, de rangement et d'exécution séquentielle.

Exemple

  • L'exemple montre une boucle dont la formulation vectorielle est équivalente
  • L'importance du masque pour les opérations conditionnelles est soulignée.

Intérêt de la notion de masque

  • Les branchements conditionnels peuvent être traités efficacement à l'aide de masques.
  • Un exemple montre comment un code avec branchements IF peut être transformé en opérations vectorielles utilisant un masque.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Parallel Architectures PDF

More Like This

Use Quizgecko on...
Browser
Browser