Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

http://www.parallelpython.com/

http://pyro.sourceforge.net/

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

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

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

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

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

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

Да.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top