archiparallele2012.pdf
TRANSCRIPT
1
Université de Sousse
Institut Supérieur des Sciences Appliquées et de Technologie de Sousse
Examen-Session Principale
Module : 7402-Algorithmique et architectures parallèles Documents : Non Autorisés
Enseignant responsable : Moez Ben Haj Hmida Date : 24 Mai 2012
Section : Ing-GL-A2 Durée : 1H30
Soyez clairs, précis et concis. Lisez bien l’énoncé. Justifiez vos réponses.
Barème Indicatif (Exercice 1 (4), Problème 1 (10), Problème 2 (6))
Exercice 1 :
Soit la boucle suivante :
for (i=1 ; i<5 ; i++)
A[i] = A[i] + 2 ;
B[i] = A[i-1] + A[i+1] ;
endfor
Initialement le tableau A est représenté ainsi
1. Déterminer les valeurs de B[1], B[2], B[3] et B[4] durant l’exécution de la boucle for.
2. Si on remplace la boucle for par une boucle forall, déterminer les valeurs de B[1],
B[2], B[3] et B[4] durant l’exécution de la boucle forall.
3. Si on remplace la boucle for par une boucle dopar, déterminer les valeurs de B[1],
B[2], B[3] et B[4] durant l’exécution de la boucle dopar.
Problème 1 :
Soit P le programme séquentiel suivant:
Pour i=1,n faire
t1(i) \* de coût 1*\
t2(i) \* de coût 2*\
t3(i) \* de coût 1*\
t4(i) \* de coût 4*\
t5(i) \* de coût 4*\
t6(i) \* de coût 1*\
t7(i) \* de coût 1*\
FinPour
On suppose qu’il n’y a aucune dépendance entre n’importe quel couple de tâches tj(i) et tk(i′)
pour j et k quelconques (entre 1 et 7) et pour des itérations différentes i et i′. Par contre, au
sein d’une même itération i, on considère les dépendances suivantes :
(t1(i)<<t3(i)) ; (t2(i) <<t4(i)) ; (t3(i) <<t6(i)) ; (t3(i) <<t7(i)) ; (t4(i) <<t5(i)) ;
(t4(i) <<t6(i)) et (t4(i) <<t7(i)).
On suppose aussi que les coûts de communication sont négligeables.
A[0] A[1] A[2] A[3] A[4] A[5]
1 2 3 4 5 6
2
1. Calculer les Temps séquentiels T1itération d’une itération de la boucle et T1 du
programme P.
2. On considère une seule itération de la boucle (i fixé) et on s’intéresse à la
parallélisation des 7 tâches de cette itération.
a. Représenter le graphe de précédence. Déterminer le temps parallèle minimal
Tmin, en justifiant la réponse.
b. On suppose que le nombre de processeurs est p=2. Proposer (à travers un
diagramme de Gantt : temps-processeurs) une exécution parallèle des tâches,
en optimisant le temps d’exécution.
c. Donner le temps d’exécution parallèle d’une itération T2itération et calculer
l’accélération S2itération et l’efficacité E2 itération correspondantes.
3. On considère maintenant le programme complet P.
a. Déduire de la question 2, une manière de parallélisation du programme P.
b. Déterminer le nombre de processeurs p nécessaires. Calculer les temps
parallèle Tp, l’accélération Sp et l’efficacité Ep.
c. Expliquer la source de parallélisme utilisée pour la parallélisation proposée
(données, flux, tâches ou mixte).
4. Proposer une méthode de parallélisation du programme P, basée uniquement sur du
parallélisme de données (on pourra expliquer la proposition à travers un schéma ou
une phrase explicative). Déterminer le nombre de processeurs p′ nécessaires. Calculer
les temps parallèle Tp′, l’accélération Sp′ et l’efficacité Ep′.
5. Proposer une méthode de parallélisation du programme P, basée uniquement sur du
parallélisme de flux (on pourra expliquer la proposition à travers un schéma).
Déterminer le nombre de processeurs p″ nécessaires. Calculer les temps parallèle Tp″,
l’accélération Sp″ et l’efficacité Ep″.
Problème 2 : Soit à calculer l’expression arithmétique suivante :
E= (x+y)*(z-t) +u/v
On supposera que toutes les variables du programme sont de type réel et que toute
opération arithmétique (+,-,* et /) coûte 1 unité de temps.
1. Calculer le temps T1 de calcul séquentiel de cette expression.
2. Ecrire un programme séquentiel P permettant de calculer l’expression E. Ce
programme doit contenir une suite d’instructions (qu’on notera S1,S2,S3,…)
faisant chacune une seule opération arithmétique (On utilisera des variables
intermédiaires qu’on appellera A1,A2,A3,…).
3. Déterminer le graphe de dépendances de P. Déduire le temps parallèle minimal
Tmin.
4. On supposera que les coûts de communication sont négligeables.
a. Proposer (à travers un schéma) une exécution parallèle de P.
Déterminer le nombre de processeurs nécessaires. Calculer le temps
parallèle, l’accélération et l’efficacité.
b. Déterminer le nombre de processeurs optimal Popt , en rappelant sa
définition.
Bon travail