Problème de soumission d'un job en parallèle sur qsub
Bonjour,
Je ne sais pas vraiment où poster cette question. J'ai cherché mais n'ai pas vraiment trouvé de place adaptée donc désolé si ce fil de discussion n'est pas au bon endroit :?
Je vais vous exposer mon problème. J'ai un job en parallèle à soumettre à un centre de calcul (un code en fortran parallélisé avec du openMPI).
Or pour le lancer le code en fortran, je lance un script python qui étudie un fichier (de maillage) et écrit dans un autre fichier les résultats de qu'il lit (python.res). Puis ce script python lance le code fortran en parallèle à la toute fin du script :
Code:
1 2 3 4 5
|
import os
....
os.system("mpirun -np {0} exe".format(nbSsDomains+1)) |
où nbSsDomains a été crée par python à la lecture du premier fichier (celui de maillage).
Jusqu'ici tout se passe bien.
Mais lorsque les jobs se lancent en parallèle ils disent tous qu'il manque le fichier "python.res". En fait ce qu'il se passe (en tout cas j'ai l'impression) c'est que la dernière ligne du code python est lancée avant que python ne crée le fichier python.res. Pire encore, d'après mes tests, j'ai l'impression que le processeur qui gère ce script Python attend que tous les autres proc aient fini leur travail avant d'écrire quoi que ce soit. En effet je fais un "print" dans le script python et il ne s'affiche qu'après la fin du code fortran.
Pour l'instant je suis donc obligé de m'assurer de bien crée le fichier python.res avant de lancer le job sur le serveur de calcul.
Des idées pour s'affranchir de ceci ou bien du pourquoi du comment ? :mrgreen:
Voilà, j'espère avoir été clair. Et merci de votre aide !