LO06

TP de programmation parallèle avec PVM


Travail à faire : évaluation de performance

Le code de multiplication d'une matrice par un vecteur fonctionne mais n'a aucune utilité pratique.
Vous allez découvrir pourquoi.
 

Pour faire vos essais vous retrancherez 25% de mémoire centrale des 384 Mo, refaites le calcul.
Cette valeur vous servira de limite pour la taille maximale que prendra la matrice.

Copier dans votre compte les scripts pour la visualisation scilab : les données et la visualisation.

Lancer scilab puis taper sous scilab la commande :  exec TP01_LO06_plot_scilab.sce ;
(à condition que le script porte ce nom !)
Vous disposez maintenant de quoi visualiser vos temps de traitements.
 

NB : vous pouvez exporter en format postscript (par exemple) les graphiques. Voir menu "file" option "export" de la
          fenetre graphique.

NB : en mode debug de pvm_spawn (flag=4) il faut avoir initialisé correctement la variable d'environnement PVM_EXPORT
         avec ceci : setenv PVM_EXPORT DISPLAY
         de cette façon le script de debuggage déclenchera un xterm qui s'affichera sur votre écran puis lancera le debugger
          sur le code exécutable qui a été "spawné"

Quand on applique un schéma itératif pour traiter un système matriciel, on effectue plusieurs multiplication
de la matrice par un vecteur.

A cette étape vous pouvez paramétrer la multiplication du bloc reçu par la portion de vecteur.

Mon conseil :

essayez d'abord de faire passer un "argv" via un spawn sur un programme simple par exemple entre hello.c et hello_other.c

Il ne reste plus qu'à encapsuler la boucle dont le commentaire est  "/* Do calculations with data */"
par une boucle sur nb_iter.

Mener ensuite une campagne d'essais et tracer des courbes.

Existe-t-il toujours un temps de calcul minimum pour une taille n de matrice et un nombre nb_iter en faisant
varier le nombre de sous-domaines ?
 
 

ê &