Les supports de cours se trouvent ici :
TP 1 : anneau à jeton

Le code se trouve ici.

Compilation :

mpicc -o tokenring tokenring.c

Exécution :

mpiexec --machinefile machinefile -n 8 tokenring
TP 2 : maître-esclave

On vous demande deux implémentations. La première utilise les deux routines MPI_Scatter et MPI_Gather. MPI_Scatter distribue les données d'un tableau vers les processus (y compris la racine). MPI_Gather récupère les résultats de tous les processus et les met dans un tableau de résultats.

Le code se trouve ici.

La deuxième implémentation est en mode pull : un maître a une file d'attente de données qu'il distribue aux esclaves. Lorsqu'un esclave est prêt à travailler, il demande des données au maître.

cette demande peut se faire en envoyant les résultats : lorsque le maître reçoit des résultats, c'est que l'esclave a fini son travail donc il lui envoie des nouvelles données. À la fin du calcul, il lui envoie des données bidons avec un tag particulier pour lui signifier la fin du calcul.

Le code se trouve ici.

TP3 : utilisation d'une ghost region

On effectue un calcul où les points d'une ligne sont calculés en fonction de la valeur des points de la ligne du dessus et de la ligne du dessous. Aux frontières du domaine on a donc besoin d'une ligne des domaines limitrophes.

Le code se trouve ici.

TP4 : topologie cartésienne et extraction de sous-communicateurs

On crée une topologie de grille de processus en 2D et on utilise des communicateurs extraits pour diffuser une valeur (par exemple le pid du processus racine) entre les processus d'une rangée.

Le code se trouve ici.

TP5 : utilisation de datatype
Le code se trouve ici.
Valid XHTML 1.0 Strict