Frage

Wäre es möglich, einen Python-Cluster zu machen, durch einen Telnet-Server zu schreiben, dann Telnet-ing der Befehle und Ausgang zurück und nach vorne? Hat jemand eine bessere Idee für einen Python-Compute-Cluster? PS. Vorzugsweise für Python 3.x, wenn jemand weiß, wie.

War es hilfreich?

Lösung

Das Python-Wiki beherbergt eine sehr umfassende Liste von Python-Cluster-Computing-Bibliotheken und Tools . Sie könnten vor allem daran interessiert sein Parallel Python .

Edit: Es gibt eine neue Bibliothek, die meiner Meinung nach vor allem bei Clustering gut ist: execnet . Es ist klein und einfach. Und es scheint, weniger Fehler zu haben, als, sagen wir, die Standard multiprocessing Modul.

Andere Tipps

Sie können die meisten der Pakete von Drittanbietern zur Verfügung sehen für Python 3 aufgelistet hier ; relevant clustern Berechnung ist mpi4py - die meisten anderen Distributed Computing-Tools wie pyro sind noch Python-2 nur, aber MPI ist ein führender Standard für die Berechnung Cluster verteilt und gut schaut in (ich habe keine direkte Erfahrung mit Python mpi4py 3, noch nicht, aber durch Hörensagen ich glaube, es ist eine gute Umsetzung).

Die wichtigste davon ist der Python eigenen Einbau- Multiprozessing , die Waage auch ziemlich gut, wenn man kein Interesse an der Schnittstelle vorhandene Knoten hat, die die MPI-Standards respektieren, aber nicht in Python codiert werden.

Es gibt keinen wirklichen Mehrwert Ihre eigenen in rollen (wie Atwood sagt, setzen Sie das Rad nicht neu erfinden, es sei denn, Ihr Ziel nur besser zu verstehen Räder ist zu! -) - Verwenden Sie eine der festen, getestet, weit verbreiteten Lösungen, bereits getestet, getestet und in Ihrem Namen optimiert! -)

Schauen Sie in diese

http://www.parallelpython.com/

http://pyro.sourceforge.net/

Ich habe beide verwendet und beide sind exellent für verteiltes Rechnen
Weitere detaillierte Liste der Optionen finden http://wiki.python.org/moin/ParallelProcessing

und wenn Sie die automatische wollen etwas auf Remote-Rechner ausführen, eine bessere Alternative zu Telnet ist ssh wie in http: // pydsh .sourceforge.net /

Welche Art von Sachen möchten Sie tun? Sie könnten hadoop prüfen wollen. Das Backend ist schweres Heben in Java getan, hat aber eine Python-Schnittstelle, so können Sie Python-Skripte schreiben erstellen und den Eingang, sowie Verfahren, die Ergebnisse senden.

Wenn benötigen Sie administrative Skripte zu schreiben, werfen Sie einen Blick auf die ClusterShell Python-Bibliothek zu, oder / und seine parallel Shell clush . Es ist sinnvoll, wenn mit Knotenmengen auch ( Mann nodeset ) handelt.

Ich denke, IPython.parallel ist der Weg zu gehen. Ich habe es ausgiebig für das letzte Jahr und eine Hälfte mit. Es ermöglicht Ihnen, interaktiv mit so vielen Arbeiter Knoten zu arbeiten, wie Sie wollen. Wenn Sie auf AWS sind, Starcluster ist eine gute Möglichkeit, IPython.parallel und läuft schnell und einfach zu bekommen mit so vielen EC2 Knoten wie Sie sich leisten können. (Es kann auch automatisch installieren Hadoop, und eine Vielzahl von anderen nützlichen Werkzeugen, falls erforderlich.) Es gibt einige Tricks, um es zu benutzen. (Zum Beispiel wollen Sie nicht große Mengen an Daten über die IPython.parallel Schnittstelle selbst senden. Besser ein Skript zu verteilen, die einzeln Datenblocks auf jedem Motor nach unten ziehen werden.) Aber alles in allem habe ich festgestellt, es zu sein eine bemerkenswert einfache Möglichkeit, verteilte Verarbeitung zu tun ( WAY besser als Hadoop!)

"Wäre es möglich, einen Python-Cluster zu machen"

Ja.

Ich liebe Ja / Nein-Fragen. Alles, was Sie wollen wissen?

(Beachten Sie, dass Python 3 einige Bibliotheken von Drittanbietern hat noch so können Sie mit Python 2 zur Zeit bleiben wollen.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top