Agregado de cálculo em Python

seria possível fazer um cluster python, escrevendo um servidor de telnet, em seguida, telnet-ing os comandos e saída de ida e volta? Alguém tem uma ideia melhor para um cluster de cálculo python? SALMO. De preferência para o python 3.x, se alguém souber como.

Author: Anony-Mousse, 2009-10-21

7 answers

O Python wiki hospeda uma lista muito abrangente de bibliotecas e ferramentas de computação de clusters em Python . Você pode estar especialmente interessado em Python paralelo .

Edit: existe uma nova biblioteca que é IMHO especialmente boa em agrupamento: execnet . É pequeno e simples. E parece ter menos bugs do que, digamos, o módulo padrão multiprocessing.

 17
Author: Andrey Vlasovskikh, 2010-07-23 23:14:19

Você pode ver a maioria dos pacotes de terceiros disponíveis para Python 3 listado aqui; relevantes para o cluster de computação é mpi4py -- a maioria dos outros computação distribuída ferramentas como o pyro são ainda Python-2 apenas, mas MPI é um padrão de condução para o cluster de computação distribuída e bem olhar para (eu não tenho nenhuma experiência direta usando mpi4py com o Python 3, mas, mas por boatos que eu acredito que é uma boa aplicação).

A principal alternativa é o próprio Python embutido. multiprocessamento , que também aumenta muito bem se não tiver interesse em interligar os nós existentes que respeitam as normas MPI, mas que não podem ser codificados em Python.

Não há valor acrescentado real em rolar o seu próprio (como Atwood diz, Não reinvente a roda, a menos que o seu propósito seja apenas compreender melhor as rodas!- ) -- use uma das soluções sólidas, testadas, generalizadas, já testadas, depuradas e otimizadas em seu nome!-)
 14
Author: Alex Martelli, 2009-10-21 17:16:21

Olha para estes

Http://www.parallelpython.com/

Http://pyro.sourceforge.net/

Usei ambos e ambos são exelentes para computação distribuída
para uma lista mais detalhada de opções veja http://wiki.python.org/moin/ParallelProcessing

E se quiser executar automaticamente algo na máquina remota, a melhor alternativa ao telnet é ssh como em http://pydsh.sourceforge.net/

 5
Author: Anurag Uniyal, 2009-10-21 17:14:26
Que tipo de coisas queres fazer? É melhor ires ver o hadoop. O backend, heavy lifting é feito em java, mas tem uma interface python, para que você possa escrever scripts python criar e enviar a entrada, bem como processar os resultados.
 4
Author: nstehr, 2009-10-21 17:10:05

Se precisar de escrever programas administrativos, dê uma vista de olhos na Biblioteca de ClusterShell Python também, ou / e na sua linha de comandos paralela clush . É útil ao lidar com conjuntos de nós também (man nodeset).

 2
Author: Yan Hu, 2011-07-06 14:29:51

Acho que IPython.paralelo é o caminho a seguir. Tenho-o usado extensivamente durante o último ano e meio. Ele permite que você trabalhe interativamente com todos os nós de trabalhadores que você quiser. Se você está em AWS, O brilho estelar é uma ótima maneira de obter IPython.paralelo para cima e correr rápido e facilmente com o maior número de nós EC2 que você pode pagar. (Ele também pode instalar automaticamente o Hadoop, e uma variedade de outras ferramentas úteis, se necessário. Há alguns truques para usá-lo. (Por exemplo, você não quer enviar grandes quantidades de dados através do IPython.interface paralela em si. É melhor distribuir um script que irá retirar pedaços de dados em cada motor individualmente.) Mas no geral, eu achei que era uma maneira notavelmente fácil de fazer o processamento distribuído (maneira melhor do que Hadoop!)

 1
Author: user2913120, 2013-10-23 20:43:17

"seria possível fazer um cluster python"

Sim. Adoro perguntas de sim / não. Mais alguma coisa que queiras saber?

(Note que o Python 3 ainda tem poucas bibliotecas de terceiros, por isso talvez queira ficar com o Python 2 neste momento.)

 -2
Author: Lennart Regebro, 2009-10-21 17:33:21