Vous êtes sur la page 1sur 6

Université Alger 1

Faculté des sciences


Définition et architecture
Département Informatique  L’architecture SIMD est une architecture dont toutes les unités de
traitement exécutent le même flux d’instructions qui opèrent sur des flux
2ème année Master RSE de données différents,
2022/2023
 Ce modèle est l’un des premiers modèles d’architecture parallèle,

UT1 ML

Architectures parallèles
« L’architecture SIMD » UC UT2 ML

1 UT3 ML

Flux d’instructions Flux de données


Dr HALFAOUI Fadhila
UC Unité de contrôle
UT Unité de traitement
M Mémoire locale

L’architecture SIMD L’architecture SIMD


 L’architecture SIMD est désormais utilisée essentiellement pour des applications très
 Chaque processeur exécute la même opération que les autres mais sur des
spécialisées.
données différentes.

 Le modèle SIMD a tiré sa popularité de sa simplicité pour le programmeur et pour


 Chaque processeur possède une petite mémoire locale.
l’architecte et le constructeur de machine.

 Ce modèle convient principalement pour des calculs numériques réguliers


 Le modèle SIMD n’exploite que le parallélisme de données.
(comme le traitement d’images).
 Il s’agit d’appliquer la même opération à une très grande quantité d’informations -
Machines spécialisées dans les traitements des tableaux (ARRAY Processors).
 Exemples : Cray-1 (1976), NEC SX-5, Tera/Cray SV1, Connection Machine CM -
 Modèle d’exécution fortement synchrone.
1(1985),…
 Actuellement GPUs (processeur graphique)
Caractéristiques Exemple de machine SIMD
 Une seule unité de contrôle,
 Plusieurs unités de traitement,
 Registres et mémoires locale Institution Nom NB de FPU Bande Bits par Année
processeur passante processeur
 Les unités de calcul totalement synchronisées. MB/s
 Un seul cycle d’horloge par traitement et un seul compteur ordinal.
 Une instruction unique contrôle l’exécution simultanée de plusieurs éléments de
calcul. Univ. Illinois ILLiac IV 64 64 2560 64 1972

 Les unités d’exécution parallèles sont synchronisées et chaque unité a son propre
registre d’adresses,
 Les processeurs vectoriels sont souvent considérés comme des architectures de Thinking CM2 65536 2048 16384 1 1987
type SIMD. machines

Maspar MP1216 16384 0 23000 4 1989

Avantages et inconvénients Processeurs vectoriels: SIMD à


mémoire partagée
Les avantages

 Calculateurs SIMD qui peuvent opérer sur des vecteurs en exécutant


 Meilleur avec le parallélisme à grand volume de données; simultanément la même instruction sur des paires d’éléments vectoriels et, donc,
chaque instruction est exécutée par un élément de calcul séparé.
 Amortit le coût du contrôle à travers les nombreuses unités d’exécution;
 Les processeurs vectoriels ont généralement des registres vectoriels qui peuvent
 Réduit la taille de la mémoire de programme; stocker de 64 à 128 mots chacun
 Ils exécutent des opérations sur des scalaires et des instructions opérant sur des
vecteurs,
L’inconvénient principal de l’architecture SIMD est :
 Dans une architecture SIMD, chaque traitement est exécuté sur un ensemble
différent de données par unité de traitement différente.
 Peu adaptés à des instructions très variées,  Les processeurs sont hautement spécialisés pour les problèmes numériques
 Les architectures SIMD sont utilisées dans le cadre spécifique de machines exprimés sous forme de matrice ou de vecteur, c’est à dire ils opèrent sur des
dédiées vecteurs de données d’où le nom de processeurs vectoriels.
 La communication entre processeurs est prise en charge par le programmeur en
utilisant un mécanisme d’échange de messages qui sert à traduire les transferts
d’informations et les nécessaires synchronisations entre processeurs. Il existe
plusieurs outils standards à utiliser pour cela, tels que: MPI, PVM, etc.
Machines vectorielles Machines vectorielles
 Les architectures vectorielles sont des machines très coûteuses mais très
performantes pour certaines applications. Ces applications utilisent principalement
 Des algorithmes d’algèbre linéaire,

 Exemple la machine CRAY (1976) est née suite à la nécessité d’exécuter les  Des méthodes de résolution de système d’équations aux dérivés partielles
applications numériques plus rapidement que sur une machine séquentielle de  Des méthodes de résolution de systèmes d’équations différentielles
l’époque.
 Des transformées (Fourier,…)
 Architecture dédiée au traitement numérique.
Ces algorithmes sont caractérisés par :
 Des calculs en représentation à virgule flottante
 Un même calcul est appliqué à un très grand nombre de données
 Le jeu d’instructions comprend des instructions vectorielles qui s’appliquent à tous les
éléments stockés dans les registres vectoriels opérandes.
 Instructions de sémantique forte (type CISC), c’est l’équivalent d’une boucle.
 Architecture de type LOAD/STORE, uniquement ces instructions référencent la mémoire
le reste s’appliquent sur les registres vectoriels.
 L’addition est pipelinée.

Machines vectorielles Performance

 L’exploitation pipelinée est la source des performances des architectures vectorielles.


 Si le temps de traversé de chaque étage = 1 cycle, il faut 4 cycles pour exécuter une
addition dans le cas séquentiel.
 En cas de pipeline, un résultat est produit à chaque cycle (4 fois plus rapide).
 Les 4 premiers cycles correspondent au démarrage de l’instruction vectorielle.

 Les instructions LOAD/STORE sont aussi pipelinées


Exécution d’une instruction vectorielle Architecture d’un processus vectoriel

L’exécution d’une instruction vectorielle se résume dans les étapes suivantes :

Unité de calcul
 Chargement de vecteur depuis la mémoire vers le registre vectoriel. Mémoire
vectorielle
 Opérations arithmétiques et logiques entre des vecteurs.
 Opérations entre des vecteurs et des scalaires.
 Placements des résultats dans la mémoire
Unité de
lecture/écritur Registres vectoriels
e

Programmation Multithreading

 Le paradigme de programmation Multithreading est le plus utilisé dans les


architectures SIMD à mémoire partagé.  La programmation parallèle la plus simple consiste à avoir plusieurs threads ou flots
 Un thread est défini comme étant une courte séquence d'instructions pouvant être d’instruction qui s’exécutent en manipulant des données stockées dans une
exécutée comme une seule unité par un processeur, mémoire commune.

 La difficulté de ce modèle de programmation est la synchronisation des accès à la


mémoire entre les tâches concurrentes.  Elle est donc naturellement le type de programmation le plus employé sur les
architectures à mémoire partagées.
 Le Multithreading peut être vu comme un parallélisme d’instructions. Il consiste
donc à décomposer un programme en plusieurs tâches (threads) qui peuvent alors
être exécutées simultanément. Ce type de threads est souvent appelé des threads
utilisateurs.
Multithreading Exemple:
Soit l’ensemble de 16 nombres, les étapes du calcul de l’addition de
ces nombres sur 4 processeurs en utilisant une architecture SIMD sont les suivants

 Le principal avantage du Multithreading est que cette solution est utilisable sur des Étape 1: l’unité de contrôle divise les nombres en 4
architectures à mémoire partagée ce qui améliore efficacement les performances sous-ensembles, un seul ensemble par processeur
particulièrement en termes de temps de communication

 l’inconvénient majeur dans ce cas est le surcoût relatif au basculement entre threads.
En effet, on doit enregistrer l’environnement d’exécution du thread qu’on veut mettre N1,N2,N3,N4 N5,N6,N7,N8
en attente et chargé les registres du processeur avec le contexte d’exécution du
nouveau thread à exécuter

UC

N9,N10,N11,N12 N13,N14,N15,N16

Exemple: Exemple:
Soit l’ensemble de 16 nombres, les étapes du calcul de l’addition de Soit l’ensemble de 16 nombres, les étapes du calcul de l’addition de
ces nombres sur 4 processeurs en utilisant une architecture SIMD sont les suivants ces nombres sur 4 processeurs en utilisant une architecture SIMD sont les suivants

Étape 2: calcul des sommes partielles sur les processeurs individuels; Étape 1: La moitié des processeurs envoie les données, l’autre moitié les
calcul sériel sur chaque unité reçoit et effectue une addition. Le réseau d’interconnexion est utilisé pour communiquer
les données

R1=somme(N1,N2 R2=somme(
R5=R1+R2 R2
,N3,N4) N5,N6,N7,N8)

UC UC

R 3=somme( R4=somme(
R6=R3+R4 R4
N9,N10,N11,N12) N13,N14,N15,N16)
Exemple: Exemple:
Soit l’ensemble de 16 nombres, les étapes du calcul de l’addition de
ces nombres sur 4 processeurs en utilisant une architecture SIMD sont les suivants

Étape 4: Étape 4: Additionner à nouveau les sommes partielles.


Le résultat final est donc obtenue

R7=R5+R6

UC

R6

Références

 Cours Dr. BENHAMIDA Nadjette : architectures parallèles

Vous aimerez peut-être aussi