TP11
TP11
TP11
Travaux Pratique 11
Ce sujet est en lien avec le cinquième chapitre du cours, et concerne la programmation
répartie. Les mêmes commentaires que ceux des derniers TP s’appliquent ici aussi.
Dans ce sujet, vous poursuivez votre découverte enchantée de MPI en utilisant une topologie
en grille de 𝒑 × 𝒑 processeurs au total, numérotés depuis 0. Ainsi, chaque processeur de
numéro 𝑞 peut envoyer et recevoir (mode bidirectionnel) un message aux processeurs de
numéro 𝑞 − 1, 𝑞 + 1, 𝑞 − 𝑝 et 𝑞 + 𝑝 (modulo 𝑝).
Toute communication vers un processeur qui n’est pas sur la même colonne ou la même ligne
est strictement interdite …
Votre travail est à rendre (il le sera à chaque fois) sous la forme du code (et uniquement la partie « student
») accompagnée d’un rapport au format PDF, le tout dans une archive compressée au format ZIP. Ne
respecter pas ces contraintes, et votre note en sera diminuée de quelques points.
Notez que chaque exercice vient avec un squelette, qui s’occupe de la ligne de commande, du lancement
de votre code (défini dans une classe particulière), et d’une vérification sommaire du résultat (lorsque
c’est possible). Utilisez l’option « -h » ou « --help » pour connaître le fonctionnement de la ligne de
commande …
Ensuite, étudiez le code fourni, afin de bien comprendre comment cette fonction est utilisée
pour construire une topologie logique en grille, en "découpant" un groupe de 𝑛 × 𝑛
processeurs en lignes et colonnes. Ce court programme affiche, pour chaque processeur, ses
deux rangs (un dans chaque groupe, donc l'un pour sa ligne et l'autre pour sa colonne).
Attention : suivant la solution vue en TD, vous ne devez utiliser que des SEND et des RECV
sur vos anneaux formant la grille ...
La classe matrice est nouvelle : elle propose une distribution par bloc de cellules et non plus
par bloc de lignes. En clair, au lieu d'avoir 𝑚 × 𝑛 éléments par processeur de la matrice, vous
avez maintenant 𝑏ℎ × 𝑏𝑤 éléments.