4 réponses
Houla :)
MPI signifie Message Passing Interface et permet d'executer un programme en parallele en distribuant des "jobs" sur divers CPU.
Dans mon cas, je cherche une méthode simple pour implementer çà avec Python.
Si vous avez des bases de Python et MPI, toute aide est plus que bienvenue! ;)
Merci.
MPI signifie Message Passing Interface et permet d'executer un programme en parallele en distribuant des "jobs" sur divers CPU.
Dans mon cas, je cherche une méthode simple pour implementer çà avec Python.
Si vous avez des bases de Python et MPI, toute aide est plus que bienvenue! ;)
Merci.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
14 nov. 2012 à 00:29
14 nov. 2012 à 00:29
Je pourrais t'aider à faire des algorithmes en parallèle, mais en pseudo MPI car je ne connais pas Python... Pour l'implémentation en naviguant un peu j'ai trouvé pyMPI.
Quand je regarde ton code j'ai quand même un gros doute sur la parallélisation, car si c'est le temps d'écriture qui est long tu ne pourras rien faire car de toute façon ton fichier final devra être lu et écrit sur l'ordinateur maître. La parallélisation va de plus demander un certain nombres de ressources puisque tu vas devoir envoyer sur le réseau les fichiers de départ, puis les fichiers d'arrivées.
En revanche si c'est le temps des calculs qui est long alors tu as tout intérêt à paralléliser, par exemple avec 1 fichier par ordinateur (processeur en fait) :
Ça c'est la première idée (assez naïve) de la parallélisation. Mais il peut-être intéressant d'utiliser la parallélisation aussi dans les calculs, mais là il nous faut plus d'infos sur ce que tu veux faire !
Quand je regarde ton code j'ai quand même un gros doute sur la parallélisation, car si c'est le temps d'écriture qui est long tu ne pourras rien faire car de toute façon ton fichier final devra être lu et écrit sur l'ordinateur maître. La parallélisation va de plus demander un certain nombres de ressources puisque tu vas devoir envoyer sur le réseau les fichiers de départ, puis les fichiers d'arrivées.
En revanche si c'est le temps des calculs qui est long alors tu as tout intérêt à paralléliser, par exemple avec 1 fichier par ordinateur (processeur en fait) :
Maître : Pour chaque i, envoyer le fichier f[i] sur l'ordinateur i. Maître : Pour chaque i, recevoir le fichier f'[i] de l'ordinateur i. Ordinateur [i] : recevoir le fichier f du maître Ordinateur [i] : faire le calcul de f et enregistrer le résultat dans f' Ordinateur [i] : envoyer le fichier f' au maître
Ça c'est la première idée (assez naïve) de la parallélisation. Mais il peut-être intéressant d'utiliser la parallélisation aussi dans les calculs, mais là il nous faut plus d'infos sur ce que tu veux faire !
Merci KX.
"Pour chaque i, envoyer le fichier f[i] sur le CPU i" C'est exactement ça que je veux.
Et j'utilise une seule machine multi-core donc pas de souci pour l'ecriture etc.
J'aurais juste besoin de savoir comment implementer ça en Python (en utilisant pyMPI par exemple comme tu le suggeres).
"Pour chaque i, envoyer le fichier f[i] sur le CPU i" C'est exactement ça que je veux.
Et j'utilise une seule machine multi-core donc pas de souci pour l'ecriture etc.
J'aurais juste besoin de savoir comment implementer ça en Python (en utilisant pyMPI par exemple comme tu le suggeres).
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
14 nov. 2012 à 14:02
14 nov. 2012 à 14:02
Si tu utilises une seule machine, je ne vois pas l'intérêt d'utiliser MPI. Alors je ne sais pas ce qui existe en Python mais l'utilisation de plusieurs threads ou processus (type fork) est certainement plus judicieux, car ça permettrait d'équilibrer la charge sur les différents processeurs. Mais MPI paraît inutiles ici, car il s'adresse avant tout à l'utilisation sur plusieurs machines pas une seule...
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
14 nov. 2012 à 23:56
14 nov. 2012 à 23:56
Ok, mais pour l'implémentation en python je ne peux pas t'aider... Je ne connais pas.
flo88
Messages postés
27007
Date d'inscription
dimanche 15 mai 2005
Statut
Contributeur
Dernière intervention
1 décembre 2024
Ambassadeur
4 638
Modifié par flo88 le 13/11/2012 à 10:54
Modifié par flo88 le 13/11/2012 à 10:54
Salut
MPI est un protocole de transfert de données industriel............
Il faut toujours précisé.
Bonjour chez vous
MPI est un protocole de transfert de données industriel............
Il faut toujours précisé.
Bonjour chez vous
14 nov. 2012 à 10:38
Simplement, que dans certain domaine professionnel, certaine abréviation ne veulent pas dire la même chose.
14 nov. 2012 à 23:42