Czy można utworzyć klaster w Pythonie, pisząc serwer telnet, a następnie telnetując polecenia i wypuszczając dane w przód iw tył? Czy ktokolwiek ma lepszy pomysł na klaster obliczeń Pythona? PS. Najlepiej dla Pythona 3.x, jeśli ktoś wie jak.Klaster obliczeń w języku Python
Odpowiedz
Na wiki Pythona znajduje się bardzo obszerna lista Python cluster computing libraries and tools. Możesz być szczególnie zainteresowany Parallel Python.
Edytuj: Istnieje nowa biblioteka, która jest szczególnie dobra w zakresie tworzenia klastrów: execnet. Jest mały i prosty. Wygląda na to, że ma mniej błędów niż, powiedzmy, standardowy moduł multiprocessing
.
Jakie rzeczy chcesz robić? Możesz sprawdzić numer hadoop. Backend, podnoszenie ciężkich zadań odbywa się w języku Java, ale ma interfejs Pythona, więc możesz pisać skrypty Pythona, tworzyć i wysyłać dane wejściowe, a także przetwarzać wyniki.
zająć się tymi
http://www.parallelpython.com/
Używałem obu i oba są doskonała dla rozproszonego
dla bardziej szczegółowej listy opcji zobaczyć http://wiki.python.org/moin/ParallelProcessing
a jeśli chcesz automatycznie wykonać coś na zdalnej maszynie, lepszą alternatywą dla telnet jest ssh as w http://pydsh.sourceforge.net/
Możesz zobaczyć większość pakietów zewnętrznych dostępnych dla Pythona 3 wymienionych here; istotna dla obliczeń klastra jest mpi4py - większość innych narzędzi obliczeniowych, takich jak pyro, to wciąż tylko Python-2, ale MPI jest wiodącym standardem dla obliczeń rozproszonych w klastrze i dobrze się do niego zagląda (nie mam bezpośredniego doświadczenia przy użyciu mpi4py z Pythonem 3, , ale przez słyszenie uważam, że jest to dobre wdrożenie).
Główną alternatywą jest wbudowana w języku Python multiprocessing, która również bardzo dobrze się skaluje, jeśli nie interesuje Cię łączenie istniejących węzłów, które przestrzegają standardów MPI, ale może nie być kodowane w Pythonie.
Nie ma prawdziwej wartości dodanej przy toczeniu własnym (jak mówi Atwood, nie wymyślaj ponownie koła, chyba że twoim celem jest po prostu lepsze zrozumienie kół! -) - skorzystaj z jednego z solidnych, przetestowanych, szeroko rozpowszechnionych rozwiązań już przetestowany, debugowania i zoptymalizowany w Twoim imieniu! -)
+1 za wzmiankę o "wieloprocesowości". –
„Czy byłoby możliwe, aby klaster Pythona”
Tak.
Uwielbiam pytania tak/nie. Coś jeszcze chcesz wiedzieć?
(Zauważ, że Python 3 nie posiada jeszcze kilka bibliotek innych firm, więc może chcesz zostać z Pythona 2 na chwilę).
Jeśli trzeba pisać skrypty administracyjne, przyjrzeć Python biblioteki ClusterShell też lub jego równoległa skorupa clush. Przydaje się to również w przypadku zestawów węzłów (zestaw węzłów człowiek).
Myślę, że IPython.parallel jest drogą do zrobienia. Używam go intensywnie przez ostatnie półtora roku. Umożliwia interaktywną pracę z dowolną liczbą węzłów roboczych. Jeśli korzystasz z AWS, StarCluster to świetny sposób na szybkie i łatwe uruchomienie IPython. Działaj z tak wieloma węzłami EC2, na jakie możesz sobie pozwolić. (Może również automatycznie zainstalować Hadoop i wiele innych użytecznych narzędzi, jeśli zajdzie taka potrzeba.) Istnieje kilka sztuczek, aby go użyć. (Na przykład, nie chcesz wysyłać dużych ilości danych przez sam interfejs IPython.parallel. Lepiej rozprowadzić skrypt, który będzie pobierał porcje danych z każdego silnika indywidualnie.) Ale ogólnie rzecz biorąc, znalazłem to być niezwykle prostym sposobem na przetwarzanie rozproszone (WAY lepiej niż Hadoop!)
- 1. Klaster Markowa
- 2. Deskryptory w języku Python nie działają w języku Python 2.7
- 3. Pakiety w języku Python?
- 4. Wątki w języku Python
- 5. iteritems w języku Python
- 6. ++ operator w języku Python
- 7. Logowanie w języku Python?
- 8. sqlite3 w języku Python
- 9. Przerwa w języku Python
- 10. k-oznacza pusty klaster
- 11. Jak utworzyć klaster ServiceMix?
- 12. Jak skonfigurować niskokosztowy klaster
- 13. Jak skonfigurować klaster ES?
- 14. Python - Jak wyciąć napis w języku Python?
- 15. Czas obliczeń! =
- 16. Skrypty w języku Python: GUI?
- 17. Łańcuch wyjątków w języku Python
- 18. Zakres następnego() w języku Python
- 19. Emulacja listy w języku Python
- 20. Cel symboli @ w języku Python?
- 21. Drukowanie grafiki w języku Python
- 22. Pola alertów w języku Python?
- 23. Ograniczanie przepustowości w języku Python
- 24. Odpowiednik JavaBean w języku Python
- 25. Dokumentacja pakowania w języku Python
- 26. Regresja krokowa w języku Python
- 27. Rejestrowanie globalne w języku Python
- 28. Kolejka iteracyjna w języku Python
- 29. Selektor iteratora w języku Python
- 30. Robot Motion w języku Python
Do interaktywnego użytku lub jako łatwy punkt wyjścia wypróbuj ipython. –