Préparation de l'environnement
- Faites afficher la valeur de la variable d'environnement
PVM_ROOT avec la commande echo $PVM_ROOT. Si
cette variable n'est pas définie ou si sa valeur est différente de
/usr/local/pvm3 alors chargez le fichier
~/.tcshrc dans emacs et ajoutez-y la ligne setenv
PVM_ROOT /usr/local/pvm3.
- Dans votre répertoire personnel, créez les répertoires
pvm3, pvm3/exemples, pvm3/bin et
pvm3/bin/LINUX.
- Copiez le fichier Makefile.pvm
dans ~/pvm3.
- Copiez le fichier Makefile ainsi que
les fichiers d'exemple master1.c et slave1.c dans ~/pvm3/exemples.
Compilation et exécution parallèle
- Compilation des exemples : placez vous dans le répertoire
pvm3/exemples et taper la commande make. Pour savoir
où vont aller les fichiers exécutables, étudiez le fichier
Makefile qui contient les règles de compilation des
sources de l'exemple.
- Configuration de la machine virtuelle : tapez la commande
/usr/local/pvm3/lib/LINUX/pvm, vous obtenez le prompt
pvm>. Affichez la configuration courante de la machine
virtuelle, ajoutez des machines et quittez la console sans arrêter
la machine virtuelle. Pour réaliser ceci, allez voir la page
Gestion de la machine virtuelle.
- Exécutez les programmes de l'exemple : quelle commande doit-on
taper ?
- Chargez dans emacs les sources de l'exemple et étudiez-les.
Pour les exercices ci-dessous, vous placerez les fichiers source dans
le répertoire ~/pvm3/exemples. Pour les compiler, vous devrez
- ajouter au fichier Makefile précédemment utilisé, les lignes
correspondant aux règles de compilation de vos nouveaux programmes
- utiliser la commande make.
Ex. pvm-1
Écrivez une application PVM composée de deux tâches. Une des 2 tâches
est la tâche parente, son rôle est de créer la seconde tâche, d'attendre
que celle-ci lui envoie une chaîne de caractères et de l'imprimer.
Ex. pvm-2 : estimation de pi
On cherche à calculer une approximation de la valeur de pi en
intégrant numériquement la fonction f(x) = 4/(1+x*x) de 0 à 1. Le
programme séquentiel vous est donné. Vous devez en faire une version
capable d'être exécutée en parallèle par n processus PVM,
n étant un paramètre du programme.
Le source du programme ``maître'' pi_master.c est fourni intégralement ; le
source du programme ``esclave'' pi_slave.c est à compléter. Pour cela,
vous avez besoin d'étudier les messages que le maître envoie à ses
esclaves ou reçoit d'eux.
[Systèmes informatiques distribués]