Bonjour,

Je suis actuellement en train d'essayer de paralléliser un jeu de la vie écrit en C à l'aide d'openMPI.
J'ai une matrice de 1200 lignes et 800 colonnes que je répartis entre 4 machines, donc chaque machine s'occupe du calcul d'une zone de 75 lignes par 800 colonnes.

J'ai eu beaucoup de mal à essayer de lancer openMPI sur plusieurs machines (tout marche en local), il a fallu régler un oubli de ma part concernant la transmission de la clé publique ssh vers le dossier des clés autorisées des machines distantes, et autres...

La commande utilisée est la suivante:
mpirun -np 16 --hostfile hostfile --tune tune jdlv

Quand j'exécute cette commande, j'obtiens un prompt infini, et rien ne se passe.
Jusqu'à aujourd'hui je pensais avoir trouver comment faire en plaçant le nom du programme "jdlv" juste à la suite du nombre de processus, donc comme suit:
mpirun -np 16 jdlv --hostfile hostfile --tune tune

Avec cette méthode ça marche, mais je me suis rendu compte que ça marche aussi pour un hostfile avec ces 4 lignes:
localhost slots=1 max-slots=1
machine2 slots=1 max-slots=1
machine3 slots=1 max-slots=1
machine4 slots=1 max-slots=1


Alors que cela ne devrait pas pour 16 processus. C'est alors que je me suis aperçu que le hostfile n'était pas pris en compte en plaçant "jdlv" juste après mpirun -np 16 ! Et par conséquent, le programme n'a jamais tourné sur les machines distantes, mais toujours en local en round-robin...

Je ne vois vraiment pas pourquoi le programme n'affiche rien et reste bloquer en tapant la bonne commande => mpirun -np 16 --hostfile hostfile --tune tune jdlv
Surtout que tout marche bien en local pour 4 processus, cela ne vient donc pas du code (pas de problème avec les send et receive donc).

Je viens de lancer le programme en mode debug avec "-d" comme suit: mpirun -np 16 --hostfile hostfile --tune tune -d jdlv

Et j'obtiens la sortie suivante:

[uds-505154:32513] procdir: /tmp/openmpi-sessions-112889@uds-505154_0/46542/0/0
[uds-505154:32513] jobdir: /tmp/openmpi-sessions-112889@uds-505154_0/46542/0
[uds-505154:32513] top: openmpi-sessions-112889@uds-505154_0
[uds-505154:32513] tmp: /tmp
[uds-505154:32513] sess_dir_cleanup: job session dir does not exist
[uds-505154:32513] procdir: /tmp/openmpi-sessions-112889@uds-505154_0/46542/0/0
[uds-505154:32513] jobdir: /tmp/openmpi-sessions-112889@uds-505154_0/46542/0
[uds-505154:32513] top: openmpi-sessions-112889@uds-505154_0
[uds-505154:32513] tmp: /tmp


Je ne comprends pas trop ce que cela signifie, mais j'imagine qu'il y a un soucis avec un dossier s'occupant des sessions openMPI on dirait.

Pourriez-vous m'aider s'il vous plaît, cela fait deux semaines que je suis bloqué sur ce point.

Je vous remercie !