Académique Documents
Professionnel Documents
Culture Documents
Et
celles de 10 nanomètres n’étaient pas prêtes
avant 2017.
- au niveau algorithmique
L’algorithmique
parallèle consiste à réduire la
complexité de certains problèmes en les rendant
parallèles.
Pr. M. Alaoui Talibi 13
De plus, le niveau technologique atteint est tel
qu’il est maintenant possible de construire des
architectures multiprocesseurs et de les utiliser
efficacement :
un niveau technologique,
par un mode d’exploitation et de traitements,
par les langages utilisées
et par les objets traités.
1950 :
premier ordinateur avec programme enregistré
Technologie mécanique ou électromécanique
UAL séquentielle
Langage binaire
Mémoire magnétique
UAL évoluée
Langage assembleur, puis fortran et Algol.
Exécution par batch d’un seul programme
Multiprocesseurs parallèles
Parallélisme massif
ou au niveau algorithmique.
Ce
type de parallélisme est traité au niveau du
matériel.
S(n,p)≤1/(f+(1-f)/p)
Processus :
Un protocole réseau
Exemples :
Définition:
Un entrelacement de deux séquences s et t est une
séquence U construite à partir des événements de s
et de t, de telle sorte que les événements de s
préservent leur ordre dans U ainsi que ceux de t.
A:a;b
Z:x;y;z
a doit se produire avant b, mais x y z étant dans un autre thread peuvent se produire
dans n'importe quel ordre relativement à a et b. Il en est de même pour x, y et z...
parallélisme de données,
parallélisme de contrôle
et parallélisme de flux.
Et
ou les différentes phases peuvent évidemment
manipuler des collections différentes.
Multi-processeurs
Les
instructions peuvent être réarrangées afin
d’améliorer le rendement (out of order execution).
Pr. M. Alaoui Talibi 80
Cœur :
Unité exécutant les instructions dans un processeur
Multi-cœur : plusieurs unités exécutant des
instructions en parallèle.
- Le deuxième : Tianhe-1A
- 14 336 processeurs
- 7 168 processeurs graphiques
Disponibilité et flexibilité :
– Web (http)
Calculsindépendants
Modèle plus distribué que parallèle
Application cible
– Applications parallèles dans les systèmes
parallèles :
Communication, synchronisation, …
Pr. M. Alaoui Talibi 95
Classification des
Architectures parallèles
Des pipelines,
Des processeurs vectoriels,
Des machines SIMD,
Des réseaux systoliques
Les PRAM
Celle-ci,
a pour critère de sélection :
le mode de contrôle des suites d’opérations
élémentaires effectuées par les différents processeurs.
Figure.
Architecture
synchrone
- ILLIAC IV
- BSP
- STARAN
- MPP
- Et plus récemment les DAP de AMT
Extensions :
Sp = t1/tp
Loi d’Amdahl
Loi de Minsky
Table de Stone
Définition :
1. Une expression de taille n est un problème
possédant n données (variables ou atomes) et
fournissant un seul résultat, et dont toutes les
opérandes sont binaires.
Pr. M. Alaoui Talibi 147
L’expression est simple si chacune des variables
n’est utilisée qu’une seule fois comme opérande.
L’arbre
étiqueté conduit à un algorithme d’évaluation
avec p processeurs : chaque nœud représente une
opération et l’étiquette du nœud la date d’exécution
de cette opération.
Lemme :
1. Tout algorithme parallèle d’évaluation d’une
expression de taille n avec p processeurs peut être
représenté par un élément de A(p) admettant au
moins n feuilles.
Définition :
Espace d’adressage
Code (instructions du programme)
Pile
Compteur ordinal
Registres
Variables
…
Un programme peut être exécuté par plusieurs processus.
Processus A
B est
T T2 bloqué T3 T4
1
temps
2018-2019 185
Plusieurs manières d’assurer l’exclusion mutuelle
Le sommeil et l’activation
Les sémaphores
…
Si le verrou est déjà à 1, ce qui signifie qu’un autre processus se trouve dans la
section critique le processus doit attendre que le verrou passe à 0
Le processus remet le verrou à 0 quand il termine la section critique
Problème :
La variable verrou est partagée pour y accéder, les conditions de concurrence
peuvent se produire
Un processus qui a testé le verrou et le trouve à 0, perd le processeur avant
Processus 1 Processus 2
Enter_region :
TSL REGISTER, LOCK |copie lock dans le registre et
|la positionne à 1
CMP REGISTER, #0
JNE enter_region; on stocke la valeur de lock dans
;RX, on entre donc dans la SC
RET
leave_region :
MOV LOCK, #0
RET
Moniteurs
L’échange de message
send(destination, &message)
Envoie un message vers une destination (porte d’un processus)
receive(source, &message)
Reçoit un message d’une source donnée.
En l’absence du message, le récepteur peut se bloquer jusqu’à
ce que celui-ci arrive.
Attendre le dernier
B B B
barrière
barrière
barrière
C C C
D D D
temps
Les processus A, B, C et D doivent tous atteindre la
barrière avant que le groupe puisse poursuivre la suite
de l’exécution
Elle concerne :
L’une des utilisations les plus fréquentes du p2p est le partage des fichiers
entre les différents clients (serveurs).
Fonctionnement de Hadoop
Fonctionnement de HDFS
Ainsi
chaque nœud est constitué de machines
standard regroupées en grappe.
Pr. M. Alaoui Talibi 240
HDFS (Hadoop Distributed File System)
Par exemple :
Par exemple :
ou faiblement synchrones
d’envoi de messages :
de réception de messages :
Les inconvénients :
comportement du programme.
http://www.mcs.anl.gov/research/projects/mpich2/
http://www.open-mpi.org/
http://www.mpi-forum.org/
http://www.lam-mpi.org/using/docs/
http://www.lam-mpi.org/tutorials/
http://www.open-mpi.org/doc/
http://www-unix.mcs.anl.gov/mpi/tutorial
Pr. M. Alaoui Talibi 265
Concepts de l’échange de messages :
le type de la donnée;
sa longueur;
Environnement :
Environnement :
Environnement :
6 144 nœuds
16 processeurs POWER A2 à 1,6 GHz par nœud
98 304 cœurs
393 216 cœurs logiques
96 Tio ( 16 Go par nœud)
1 258 Tflop/s crête
1 073 Tflop/s (linpack)
493 kWatt
2 176 MFLOPS/watt
tandis que
Version 1.2 : en 1997, avec des changements mineurs pour une meilleure
cohérence des dénominations de certains sous-programmes
Version 1.3 : septembre 2008, avec des clarifications dans MPI 1.2, en
fonction des clarifications elles-mêmes apportées par MPI-2.1
Concernant le C/C++ :
Concernant le C/C++ :
1- MPI_Xxxx(),
2- MPI_Xxxx_xxx().
MPI_COMM_WORLD