Python-Rechencluster

7

Wäre es möglich, einen Python-Cluster zu erstellen, indem man einen Telnet-Server schreibt, die Befehle telnet und dann hin und her gibt? Hat jemand eine bessere Idee für einen Python-Computing-Cluster? PS. Vorzugsweise für Python 3.x, wenn jemand weiß wie.

    
Joe 21.10.2009, 17:00
quelle

7 Antworten

16

Das Python-Wiki enthält eine sehr umfangreiche Liste von Python-Cluster-Computing-Bibliotheken und -Tools . Sie könnten besonders an Parallel Python interessiert sein.

Bearbeiten: Es gibt eine neue Bibliothek, die IMHO besonders gut im Clustering ist: execnet . Es ist klein und einfach. Und es scheint weniger Bugs zu haben als beispielsweise das Standard-Modul multiprocessing .

    
Andrey Vlasovskikh 21.10.2009, 17:16
quelle
14

Sie können die meisten Pakete von Drittanbietern, die für Python 3 verfügbar sind, hier anzeigen ; relevant für die Clusterberechnung ist mpi4py - die meisten anderen verteilten Computerwerkzeuge wie Pyro sind nur noch Python-2 , aber MPI ist ein führender Standard für die verteilte Berechnung von Clustern und sieht gut darin aus (Ich habe noch keine direkten Erfahrungen mit mpi4py mit Python 3, aber vom Hörensagen glaube ich, dass es eine gute Implementierung ist).

Die Hauptalternative ist Pythons eigene integrierte Mehrfachbearbeitung , die ebenfalls verfügbar ist skaliert ziemlich gut, wenn Sie kein Interesse daran haben, vorhandene Knoten zu verbinden, die die MPI-Standards respektieren, aber in Python möglicherweise nicht codiert sind.

Es gibt keinen echten Mehrwert beim Rollen Ihrer eigenen (wie Atwood sagt, erfinden Sie das Rad nicht neu, es sei denn, Ihr Zweck ist einfach Räder besser zu verstehen!) - Verwenden Sie eine der soliden, getesteten, weit verbreiteten Lösungen, bereits getestet, debugged und optimiert für Sie! -)

    
Alex Martelli 21.10.2009 17:16
quelle
5

Sieh dir diese an

Ссылка

Ссылка

Ich habe beide verwendet und beide sind hervorragend für verteilte Computer geeignet für eine ausführlichere Liste der Optionen siehe Ссылка

und wenn Sie etwas automatisch auf einem entfernten Rechner ausführen möchten, ist eine bessere Alternative zu Telnet ssh wie in Ссылка

    
Anurag Uniyal 21.10.2009 17:14
quelle
4

Was willst du machen? Vielleicht möchtest du hadoop ausprobieren. Das Backend, Heavy Lifting ist in Java, aber hat eine Python-Schnittstelle, so dass Sie Python-Skripte erstellen und senden Sie die Eingabe, sowie die Ergebnisse verarbeiten können.

    
nstehr 21.10.2009 17:10
quelle
2

Wenn Sie Verwaltungsskripts schreiben müssen, sehen Sie sich auch die ClusterShell Python-Bibliothek oder / und ihre parallele Shell an überblenden . Dies ist auch nützlich, wenn Sie mit Knotensätzen arbeiten ( man nodeset ).

    
Yan Hu 06.07.2011 14:29
quelle
1

Ich denke IPython.parallel ist der richtige Weg. Ich benutze es seit den letzten anderthalb Jahren ausgiebig. Sie können interaktiv mit beliebig vielen Worker-Nodes arbeiten. Wenn Sie sich auf AWS befinden, ist StarCluster eine großartige Möglichkeit, IPython.parallel schnell und einfach mit so vielen EC2-Knoten zu starten wie du dir leisten kannst. (Es kann auch automatisch Hadoop und eine Vielzahl anderer nützlicher Tools installieren, falls erforderlich.) Es gibt einige Tricks, um es zu benutzen. (Sie möchten beispielsweise keine großen Datenmengen über die IPython.parallel-Schnittstelle selbst senden. Lieber ein Skript verteilen, das Datenblöcke für jede einzelne Engine einzeln abruft.) Aber insgesamt habe ich es gefunden ist eine bemerkenswert einfache Möglichkeit, verteilte Verarbeitung zu machen ( WAY besser als Hadoop!)

    
user2913120 23.10.2013 20:43
quelle
-2

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

Ja.

Ich liebe ja / nein Fragen. Möchten Sie noch etwas wissen?

(Beachten Sie, dass es in Python 3 noch wenige Bibliotheken von Drittanbietern gibt, also möchten Sie vielleicht im Moment bei Python 2 bleiben.)

    
Lennart Regebro 21.10.2009 17:33
quelle