Ce travail est à rendre pour fin janvier 2010 par mail à

publicité
Master 2 Matis Année 2009-2010, MIS 7
Sujet d’étude n°2
Ce travail est à rendre pour fin janvier 2010 par mail à : [email protected]
Traiter deux Problèmes au choix.
Problème 1
On dispose de p processeurs organisés linéairement. C'est-à-dire que chaque processeur dispose d'une zone
de mémoire propre qui ne peut être écrite que par lui-même. De plus, cette zone ne peut être lu que par son
voisin de droite, ou celui de gauche :
…
On veut utiliser l’architecture précédente pour multiplier une matrice A de dimension n.n par un
vecteur x à n composantes (Pour simplifier, on suppose que la taille de la matrice est divisible par p).
1/ Proposer une décomposition données et un algorithme permettant de calculer A.x sur réseau de
processeurs précédent.
Remarque : Exprimer votre algorithme par un pseudo-code. En annexe on propose un langage de
pseudo-code permettant d’exprimer un programme séquentiel. Ajouter à ce langage les commandes
permettant d’exprimer le parallélisme sur architecture précédente. (Indication : Des instructions de type
send, receive sont envisageables)
2/ Quelle est la complexité de votre algorithme ? Quelle est son efficacité (speedup) ?
Problème 2.
On considère le graphe de taches ci-dessous. On veut applique l’algorithme Colin-Chrétienne pour obtenir un
ordonnancement optimal.
Donner les bornes correspondant aux dates au plutôt possibles.
Donner le diagramme de Gantt correspondant à cet ordonnancement optimal.
1 est n° de la tache
2 est le coût de
communication entre
la tache 5 et la tache 7
3 est le coût de
la tache n° 1
Problème 3.
On cherche à résoudre un système linaire A.x = b par une méthode itérative, le système linaire considéré
est le suivant :
1
2
1
1
0
0
0
0
0
1
2
1
1
0
0
0
0
1
1
2
1
1
0
0
0
0
1
1
2
1
1
0
0
0
0
1
1
2
1
1
0
0
0
0
1
1
2
1
1
0
0
0
0
1
1
2
1
0
0
0
0
0
1
1
2
x1
x2
x3
x4
x5
x6
x7
x8
=
3
4
5
5
5
5
4
3
La méthode est basée sur l’itération suivant :
x1 =
(3 - x2 - x3)/2
x2 =
(4 - x1 - x2 - x3)/2
xi =
(5 - xi-2 - xi-1 - xi+1 - xi+2) / 2
x7 =
( 4 - x5 - x6 - x8)/2
x8 =
(3 - x6 - x7)/2
pour i =3,4,…,6
On suppose que le teste de la convergence est assuré par une fonction t(x,y) qui retourne vrai si la
distance (métrique) entre x(x1,.. xi , …x8) et y(y1,... yi , …y8) est suffisamment petite sinon faux.
A/ Dans le cas où l’on voudrait utiliser une méthode itérative asynchrone avec 5 processeurs un maître et 4
esclaves, décrire un graphe de taches correspondant au calcul d’une itération en indiquant à chaque
sommet son coût de calcul (nombre d’opérations) et chaque arc le coût de communication.
B/ Écrire un pseudo-code de type MPI résolvant ce problème.
Annexe : Pseudo-code
Un programme est une suite d’actions composées comme suite :
debut action1; action2; … actionn; fin ;
Une action peut être :
un appel d’une fonction ou d’une procédure (une procédure est un programme);
une opération arithmétique.
la création par le processus maître d’un processus esclave
une opération de communication (envoyer, recevoir) ;
une opération d’entré/sortie (read/write)
une structure de choix : si condition alors action1 sinon action2 fin_si ;
une structure itérative qui est une des 3 structures suivantes :
pour i = 1 à n faire
action
fin_pour;
tantque condition faire
action
fin_tantque;
repeter
action
jusq_a condition;
La structure de données qui est souvent manipulée est la structure de tableau sur cette structure on admet les
opérations suivantes :
2
Téléchargement