[Programmation parallèle MPI] Astuce exec???

Fermé
chaponinho - 14 févr. 2008 à 10:06
lounes147 Messages postés 5 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 7 décembre 2008 - 5 nov. 2008 à 13:03
Bonjour,
Mon problème est le suivant: je souhaite savoir s'il est possible de commencer l'exécution d'un programme, contenant des directives MPI, sur un seul processeur, pour ensuite lorsque l'utilisateur le désire (par une interface graphique simple par exemple), lancer d'autre processeur pour éxécuter un bou du programme en parallèle.
Je souhaite en fait réaliser un programme avec une légère interface graphique pour résoudre des système linéaires. L'utilisateur aurait le choix entre plusieurs solveurs numériques pour résoudre son système, certains séquentiels, d'autres parallèles. En fait ce qui m'embête c'est le mpirun du début. Je souhaite lancer mon programme principale sur un seul processeur, et lorsque l'utilisateur décide d'utiliser un solveur numérique parallèle, je lance plusieurs processeurs qui interpreteront les directives mpi de ce solveur.
J'espère avoir été assez clair.
Merci par avance!!!

3 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
14 févr. 2008 à 14:35
tu es obligé de faire ton mpirun au début du main ??
0
En fait c'est dans le shell, pour exécuter le programme que je fais mpirun.
Par exemple pour lancer le programme sur 4 processeurs.: $ mpirun -np 4 monprogramme
Si je fais un ./monprogramme, il ne se lancera que sur un seul processeurs.
J'ai deux solutions pour l'instant. Soit lancer dès le départ mon programme en mpirun sur plusieurs processus. Dans ce cas si je choisis un solveur qui utilise une implémentation parallèle c'est bon, mais si je choisi un solveur qui utilise une implémentation série, il sera exécuté par chaque processeur indépendamment, ce qui ne sert à rien. Soit lancer mon programme en ./ sur un seul processeur, mais dans ce cas la si je choisit un solveur parallèle, ça reviendra à faire du série.
Ce que je souhaiterais donc c'est lancer le programme principal sur un seul processeur et lorsque l'option solveur parallèle est choisit, pouvoir lancer sur plusieurs processeurs ce solveur.
J'espère avoir été clair. Pas sur...
Merci
0
lounes147 Messages postés 5 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 7 décembre 2008
5 nov. 2008 à 13:03
Bonjour, si quelqun peut m'aider à débuter en mpi.net (le premier pas à faire )
0