1
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.
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
est n° de la tache
3 est le coût de
la tache n° 1
2 est le coût de
communication entre
la tache 5 et la tache 7
2
2 1 1 0 0 0 0 0
x1
3
1 2 1 1 0 0 0 0
x2
4
1 1 2 1 1 0 0 0
x3
=
5
0 1 1 2 1 1 0 0
x4
5
0 0 1 1 2 1 1 0
x5
5
0 0 0 1 1 2 1 1
x6
5
0 0 0 0 1 1 2 1
x7
4
0 0 0 0 0 1 1 2
x8
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 pour i =3,4,…,6
x7 = ( 4 - x5 - x6 - x8)/2
x8 = (3 - x6 - x7)/2
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 :
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !