2011-04-11 7 views
5

J'ai récemment découvert à quel point Pool.map() est génial pour des tâches de multitraitement simples, mais ma machine locale n'a que deux processeurs et j'espérais tirer parti de certaines ressources informatiques distantes.Est-ce que le multiprocessing.pool de Python prend en charge les sous-processus distants?

Un pool de traitement peut-il être construit pour utiliser des machines distantes ainsi que les machines locales de manière transparente?

Quel code Python devrais-je utiliser sur les machines distantes? Comment configurer le pool sur la machine locale (maître)?

Sur the documentation page for multiprocessing, il est dit que les gestionnaires doivent être utilisés pour les objets partagés, mais il n'est pas clair comment ils doivent être utilisés pour un pool distant. Rien d'autre que Managers ne semble faire référence aux ports et aux adresses, donc je suppose que toute activité à distance passe par cette classe.

+2

Peut-être est-ce utile: http://stackoverflow.com/questions/5181949/using-the-multiprocessing-module-for-cluster-computing –

+0

Merci, c'était très utile. Je pense que jug (un lien de cette page) est juste ce dont j'avais besoin. – Nathan

Répondre

1

multiprocessing.Pool semble pas conçu pour le traitement distribué - si c'est ce que vous voulez faire, je vous suggère de vérifier le paquet execnet à la place. Cela fonctionne sur les canaux SSH et envoie le code à l'interpréteur Python distant si nécessaire.

Questions connexes