Académique Documents
Professionnel Documents
Culture Documents
Correction
Tseq du programme séquentiel = 100ms
programme parallèle P1
b) Pour un problème d’une certaine taille, on a déterminé que 5 % des instructions d’un
programme P2 étaient des instructions devant être exécutées séquentiellement par un
unique processeur. Par contre, tout le reste peut s’exécuter en parallèle. Avec quel nombre
de processeurs peut-on espérer obtenir une accélération supérieure ou égale à 10 en
traitant les mêmes données (c’est-à-dire en gardant la même taille de problème)?
1/2
Correction
Selon la loi d'Amdhal
p/ (1+ (a(p-1)) ≥ 10 ?
p ≥ 19
b) On peut demander à une marionnette de lever et baisser chacun de ses bras. Plusieurs
processus travaillant en concurrence se proposent de lever et baisser les mains de la
marionnette. Voici le programme :
void baisserMains(){
synchronized(o)
o.baisserMainDroite();
o.baisserMainGauche(); }
2/2
baisserMains(); } }
Comment gérer la synchronisation entre processus afin que la marionnette n’ait jamais un seul
bras en l’air. Autrement dit, si un processus dit à la marionnette de lever les mains, il ne faut
pas qu’un autre processus puisse lui demander de baisser les mains en même temps. Mais une
fois qu’un processus P a fini de demander de lever les mains, un autre processus peut venir
s’intercaler avant que le processus P demande à la marionnette de baisser les mains.
Exercice 3 : Programmation parallèle sous MPI. Calcul des maximums d'une matrice
Soit n un entier positif. On a une grosse matrice carrée, A, de taille n×n, et on veut
déterminer, pour chaque ligne et chaque colonne, la valeur maximum. De plus, ces maximums
devront être connus d'un seul et unique processus, disons uniquement le processus 0.
On travaille sur une machine parallèle à mémoire distribuée qui comporte p processeurs. On
suppose que n est divisible par p et p << n.
Par exemple, pour la matrice suivante 9 × 9 avec, à droite et en bas, les différents maximums,
qui doivent ultimement être tous connus du processus 0 :
15 23 34 36 74 81 91 11 2 | 91
46 74 24 14 95 52 31 42 18 | 95
21 29 38 33 34 32 35 36 37 | 38
48 55 69 77 86 11 14 22 13 | 86
24 22 36 58 65 73 77 79 71 | 79
71 21 13 29 22 24 28 25 26 | 71
79 76 71 75 73 37 22 18 14 | 79
2 8 7 4 1 9 16 13 5 | 16
93 24 25 22 28 26 21 27 29 | 93
----------------------------------
93 76 71 77 95 81 91 79 71
3/2
Exercice 4 : Grille de calcul.
4/2