archiparallele2012.pdf

2
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

Upload: soula11

Post on 28-Jan-2016

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ArchiParallele2012.pdf

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

Page 2: ArchiParallele2012.pdf

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