Вычислительный кластер Python

Можно ли создать кластер python, написав telnet-сервер, затем telnet-команды и вывод туда и обратно? У кого-нибудь есть лучшая идея для вычислительного кластера Python? PS. Желательно для python 3.x, если кто знает как.


person Joe    schedule 21.10.2009    source источник
comment
Для интерактивного использования или в качестве простой отправной точки попробуйте ipython.   -  person Andrew Wagner    schedule 30.10.2009


Ответы (7)


Вики Python содержит очень полный список библиотек и инструментов кластерных вычислений Python. Вас может особенно заинтересовать Parallel Python.

Изменить: существует новая библиотека, которая, ИМХО, особенно хороша для кластеризации: execnet. Он маленький и простой. И кажется, что в нем меньше ошибок, чем, скажем, в стандартном модуле multiprocessing.

person Andrey Vlasovskikh    schedule 21.10.2009

Вы можете увидеть большинство сторонних пакетов, доступных для Python 3, перечисленных здесь; к кластерным вычислениям относится mpi4py. по-прежнему только Python-2, но MPI является ведущим стандартом для кластерных распределенных вычислений и хорошо изучается (у меня пока нет прямого опыта использования mpi4py с Python 3, но по слухам я считаю, что это хорошая реализация).

Основной альтернативой является собственная встроенная в Python многопроцессорность, который также довольно хорошо масштабируется, если вы не заинтересованы в взаимодействии с существующими узлами, которые соблюдают стандарты MPI, но могут не быть закодированы на Python.

Нет никакой реальной добавленной стоимости в том, чтобы кататься самостоятельно (как говорит Этвуд, не изобретайте велосипед, если только ваша цель не состоит в том, чтобы просто лучше понять колеса!-) - используйте одно из надежных, проверенных, распространенных решений, уже протестированных, отлажены и оптимизированы от вашего имени!-)

person Alex Martelli    schedule 21.10.2009

Посмотрите на эти

http://www.parallelpython.com/

http://pyro.sourceforge.net/

Я использовал оба варианта, и оба они отлично подходят для распределенных вычислений
более подробный список параметров см. на http://wiki.python.org/moin/ParallelProcessing

и если вы хотите автоматически выполнить что-то на удаленной машине, лучшей альтернативой telnet является ssh, как в http://pydsh.sourceforge.net/

person Anurag Uniyal    schedule 21.10.2009

Что ты хочешь делать? Вы можете проверить hadoop. Бэкенд, тяжелая работа выполняется на java, но имеет интерфейс python, поэтому вы можете писать скрипты python для создания и отправки ввода, а также для обработки результатов.

person nstehr    schedule 21.10.2009

Если вам нужно написать административный скрипт, взгляните также на библиотеку Python ClusterShell или/и ее параллельную оболочку < сильно>сжимать. Это также полезно при работе с наборами узлов (man nodeset).

person Yan Hu    schedule 06.07.2011

Я думаю, что IPython.parallel — правильный путь. Активно использую последние полтора года. Это позволяет вам работать в интерактивном режиме с любым количеством рабочих узлов. Если вы работаете на AWS, StarCluster — отличный способ быстро и легко настроить и запустить IPython.parallel. с таким количеством узлов EC2, которое вы можете себе позволить. (Он также может автоматически установить Hadoop и множество других полезных инструментов, если это необходимо.) Есть некоторые хитрости в его использовании. (Например, вы не хотите отправлять большие объемы данных через сам интерфейс IPython.parallel. Лучше распространить сценарий, который будет получать фрагменты данных для каждого механизма отдельно.) Но в целом я обнаружил, что это быть удивительно простым способом распределенной обработки (НАМНОГО лучше, чем Hadoop!)

person adfgagliardi    schedule 23.10.2013

«Можно ли сделать кластер Python»

Да.

Я люблю да/нет вопросов. Что-нибудь еще вы хотите знать?

(Обратите внимание, что в Python 3 пока мало сторонних библиотек, так что на данный момент вы можете остаться с Python 2.)

person Lennart Regebro    schedule 21.10.2009