TP6 (Broadcast et produit Matriciel)

Broadcast

MPI offre une primitive (MPI_Bcast) permettant d'envoyer un message à tous les processeurs.

  1. Écrivez un programme MPI qui permet à un processeur (par exemple 0) d'envoyer une valeur à tous les autres.

All-to-All

On considère p processus possédant un tableau tab de taille p tel que tab[rang]=rang et tab[i]=0 pour i!=rang.

  1. Écrire un programme MPI implementant une communication all-to-all (via l'intermédiaire de MPI_Bcast) telle qu'à la fin, tous les processus possèdent le même tableau.

Produit Matrice-Vecteur

  1. Implémentez le produit Matrice-Vecteur sur un anneau.
    • On considère une matrice de taille NxN
    • Chaque noeud de l'anneau aura une copie du vecteur
    • La matrice initiale sera découpée en blocs de ligne (N/P)
    • Chaque noeud calculera le produit de sa sous matrice avec le vecteur
    • Les calculs seront ramenés sur le processus de rang 0 et le résultat final affiché.

Produit Matrice-Matrice

  1. Implémentez le produit Matrice-Matrice sur un anneau avec circulation des lignes.