Question

Serait-il possible de créer un cluster python en écrivant un serveur Telnet, puis en transmettant les commandes par telnet et en les affichant en sortie? Quelqu'un at-il une meilleure idée d'un cluster de calcul Python? PS De préférence pour Python 3.x, si quelqu'un sait comment faire.

Était-ce utile?

La solution

Le wiki Python héberge une liste très complète de outils et bibliothèques d'informatique en cluster Python . Python parallèle peut vous intéresser particulièrement.

Modifier: Il existe une nouvelle bibliothèque qui convient particulièrement à mon humble avis au clustering: execnet . C'est petit et simple. Et il semble avoir moins de bogues que, par exemple, le module standard multitraitement .

Autres conseils

Vous pouvez voir la plupart des packages tiers disponibles pour Python 3 répertoriés dans ici ; La mpi4py est pertinente pour le calcul des grappes. La plupart des autres outils informatiques distribués tels que pyro sont: Python-2 uniquement, mais MPI est une norme majeure en matière de calcul distribué par grappes et une analyse approfondie (je n'ai pas encore d'expérience directe de l'utilisation de mpi4py avec Python 3, mais, par ouï-dire, je pense que c'est une bonne implémentation).

L’alternative principale est le propre multitraitement , qui évolue également assez bien si vous n'avez aucun intérêt à interfacer des nœuds existants qui respectent les normes MPI mais ne peuvent pas être codés en Python.

Il n'y a pas de réelle valeur ajoutée à rouler soi-même (comme le dit Atwood, ne réinventez pas la roue, à moins que votre objectif soit simplement de mieux comprendre les roues! -) - utilisez l'une des solutions solides, testées et répandues, déjà testé, débogué et optimisé pour votre compte! -)

Regardez dans ces

http://www.parallelpython.com/

http://pyro.sourceforge.net/

J'ai utilisé les deux et les deux sont excellents pour l'informatique distribuée
pour une liste plus détaillée des options, voir http://wiki.python.org/moin/ParallelProcessing

et si vous voulez exécuter automatiquement quelque chose sur une machine distante, ssh est la meilleure alternative à telnet, comme indiqué dans http: // pydsh .sourceforge.net /

Quel genre de choses voulez-vous faire? Vous voudrez peut-être consulter hadoop . Le backend, gros travail est fait en java, mais a une interface python, vous pouvez donc écrire des scripts python créer et envoyer les entrées, ainsi que de traiter les résultats.

Si vous avez besoin d'écrire des scripts administratifs, consultez la ClusterShell , ainsi que / et ses fichiers. Coque parallèle Clush . Cela est également utile lorsque vous utilisez des ensembles de nœuds ( ensemble de nœuds man ).

Je pense que IPython.parallel est la voie à suivre. Je l'utilise beaucoup depuis un an et demi. Il vous permet de travailler de manière interactive avec autant de nœuds de travail que vous le souhaitez. Si vous êtes sur AWS, StarCluster est un excellent moyen de rendre IPython.parallel opérationnel rapidement et facilement. avec autant de nœuds EC2 que vous pouvez vous permettre. (Il peut également installer automatiquement Hadoop et divers autres outils utiles, si nécessaire.) Il existe quelques astuces pour l'utiliser. (Par exemple, vous ne souhaitez pas envoyer de grandes quantités de données via l'interface IPython.parallel elle-même. Mieux vaut distribuer un script qui extraira des morceaux de données sur chaque moteur individuellement.) Mais dans l'ensemble, je l'ai trouvé: être un moyen remarquablement facile de faire du traitement distribué ( WAY meilleur que Hadoop!)

"Serait-il possible de créer un cluster python"

Oui.

J'aime les questions oui / non. Voulez-vous savoir autre chose?

(Notez que Python 3 contient encore peu de bibliothèques tierces, vous pouvez donc rester avec Python 2 pour le moment.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top