Exercices Avec Solution MPI
Exercices Avec Solution MPI
Remarques :
Exercice 1 :
Ecrire un programme en MPI qui calcule le rang du processeur courant, le nombre total de
processeurs et le temps du déroulement du programme.
Il affiche le message suivant « processeur numéro (le rang du processeur courant) sur la
machine (le nom de la machine courante) parmi (le nombre de processeurs) processeurs.
Si le nombre de processeurs est différent de 4, affiche le message suivant «il faut avoir 4
processeurs ».
Solution Exercice 1 :
include < studio.h >
Debut_temps = MPI_Wtime();
1
MPI_Get_processor_name (nom_proc, nom_long);
fin_temps = MPI_Wtime() ;
MPI_Finalize () ;
return 0;
Exercice 2 :
Calculer la moyenne des nombres avec MPI_Gather() et MPI_Scatter() .
Solution Exercice 2 :
include < studio.h >
If (rang == 0) {
2
nbrs_alea = creer_nbrs_alea (element_par_paroc, nbr_proc) ;
// Création d’un buffer qui va contenir le sous ensemble des nombres aléatoires
// Diviser et envoyer les nombres aléatoires du processeur 0 vers tous les autres processeurs
if ( rang == 0) {
MPI_Finalize () ;
return 0;
3
Exercice 3 :
Calculer la moyenne des nombres avec MPI_Reduce ().
Solution Exercice 3 :
include < studio.h >
float som_locale = 0 ;
int i ;
printf (“la somme locale pour le processeur %d est : %f \n“, rang, som_locale) ;
// Afficher le résultat
La racine 4
If (rang==0)
printf (“ somme totale = %f , la moyenne totale est :%f \n“, som_globale, moy_globale) ;
MPI_Finalize () ;
return 0;
Exercices additionnelles :
- Ecrire un programme MPI permettant de réaliser les calculs
matricielles entre deux matrices A et B en utilisant 10
processeurs (addition, soustraction, multiplication, matrice
inverse, transposé, etc …).
- Expliquer la différence entre MPI, Cuda et OpenMP par un
exemple de programmation.
- Ecrire un programme en MPI permettant de résoudre un
problème d’intelligence artificielle (en imagerie, robotique,
détection d’objets, réseaux de neurone, etc…)