1. Démarrage
Pour démarrer PVM sur une machine il faut activer le démon pvmd
Pour cela deux solutions :
2. Arrêt
Pour arréter PVM, utilisez depuis la console
PVM la commande "halt". Dans vos codes utilisateurs, vous pouvez
utiliser la fonction pvm_halt() . Vous pouvez aussi utiliser
l'envois de signaux (commande kill) pour tuer le process pvmd, utilisez
toujours un signal 'attrappable" tel que SIGTERM.
MAIS si vous le faite ainsi, ou si le démon
pvmd plante pour tout autre raison, vérifiez qu'il ne reste pas
des fichiers de socket nommés /tmp/pvmd.<uid> ou
<uid> est votre "numerical user id" (voir votre variable d'environnement
$UID). SINON, si vous relancez un PVM le programme "pensera" qu'il
y a un déjà un démon pvmd en fonctionnent et cela
causera le redoutable message "Can't Start Pvmd". (et la c'est mal
!)
3. Choucroute garnie (traduction libre de "TROUBLESHOOTING")
Vous êtes toujours dans la choucroute pour démarrer ou ajouter une nouvelle machine hôte ?
$ rsh remote_host 'echo $PVM_ROOT'
et récuperer avec succès au retour la valeur correcte de $PVM_ROOT sur cette machine distante sans avoir besoin de taper votre password, c'est que vous avez ce type de problème.
Dans ce cas il faut modifier les permissions sur la machine distante pour permettre a "rsh" l'accès sans mot de passe.
Sur les systèmes UNIX on le fait en créant
le fichier $HOME/.rhosts sur la machine distante ce qui fournit
l'accès à la machine locale.
Le format du fichier $HOME/.rhosts sera alors le
suivant :
your_host_1
your_login_on_host_1
your_host_2
your_login_on_host_2
your_host_3
your_login_on_host_3
. . .
Si vous êtes vraiment dans la choucroute essayez la FAQ de PVM sur l'URL :
http://www.netlib.org/pvm3/book/node23.html#
rappels en vrac de commandes, utiles en cas de pépin :
$PVM_ROOT/lib/pvmd &
echo $uid
rm -i /tmp/pvmd.$uid
cat /tmp/pvmd.$uid
rm -i /tmp/pvml.$uid
4. Vos Programmes
Vos programmes C, C++ et Fortran DOIVENT être "linké"
avec la librairie principale de PVM ,
$PVM_ROOT/lib/$PVM_ARCH/libpvm3.a, et les programmes
Fortran DOIVENT aussi être
"liés" (défendons la langue française
... oui, bon d'accord oubliez ça ...) avec la librairie
$PVM_ROOT/lib/$PVM_ARCH/libfpvm3.a
Les sources doivent inclure le fichier d'en-tête
$PVM_ROOT/include/pvm3.h
pour les programmes C/C++ , pour définir
les constantes PVM et les prototypes de fonctions.
Le fichier d'en-tête correpondant pour le fortran
est
$PVM_ROOT/include/fpvm3.h.
Les exécutables doivent être installés
dans la directory PVM_ROOT/bin/$PVM_ARCH
pour un usage personnel, sinon si vous visez une diffusion
plus large installez-les dans la
directory $HOME/pvm3/bin/$PVM_ARCH.
Attention, dans ce cas l'utilisateur qui invoquera vos
codes n'aura pas forcément
l'accès a la directory $PVM_ROOT/bin/$PVM_ARCH
en écriture.
Cependant le chemin d'exécution pas défaut
du code peut être changé avec l'option "ep="
pour chaque machine de votre machine virtuelle dans le
fichier de configuration initiale de votre
machine virtuelle (le hostfile).
Quand un programme utilisateur est "spawné" par
PVM il s'exécute par défaut dans la
directory $HOME de l'utilisateur.
Toute entrée ou tout fichier de données
doit par conséquent résider
ou être lié (logiquement) à $HOME.
Cette directory de travail par défaut peut être
aussi changée dans le fichier de configuration de votre
machine virtuelle (le hostfile on vous dit) avec l'option
"wd=" voir les pages d'aides.