Pergunta

Seria possível fazer um cluster python, escrevendo um servidor telnet, em seguida, telnet-ing os comandos e saída de vai-e-vem? Alguém tem uma idéia melhor para um cluster de computação python? PS. De preferência para 3.x python, se alguém sabe como.

Foi útil?

Solução

O Python wiki anfitriões uma lista muito abrangente de Python conjunto de bibliotecas e ferramentas de computação . Você pode estar interessado especialmente em Paralelo Python .

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

Outras dicas

Você pode ver a maior parte do terceiro pacotes disponíveis para Python 3 listados aqui ; relevantes para cluster de computação é mpi4py - a maioria das outras ferramentas de computação distribuída, como Pyro são ainda Python-2 apenas, mas MPI é um padrão líder para conjunto distribuído computação e bem olhar para (não tenho experiência direta usando mpi4py com Python 3, ainda, mas por ouvir dizer que eu acredito que é uma boa implementação).

A principal alternativa é de Python própria base de multiprocessamento , que também dimensiona-se muito bem se você não tem interesse em interface nós existentes que respeitam as normas MPI, mas não podem ser codificados em Python.

Não há verdadeiro valor acrescentado no seu próprio material circulante (como diz Atwood, não reinventar a roda, a menos que seu objetivo é apenas para entender melhor as rodas! -) - Use um dos sólidos, testados, soluções generalizadas, já testado, depurado e otimizado em seu nome! -)

olhar para estes

http://www.parallelpython.com/

http://pyro.sourceforge.net/

Eu tenho usado os dois e ambos são exellent para distribuídos
computação para uma lista mais detalhada das opções Ver http://wiki.python.org/moin/ParallelProcessing

e se você quiser auto executar algo no computador remoto, melhor alternativa para telnet é ssh como em http: // pydsh .sourceforge.net /

Que tipo de coisas que você quer fazer? Você pode querer verificar para fora hadoop . O backend, trabalho pesado é feito em java, mas tem uma interface Python, assim você pode escrever scripts python criar e enviar a entrada, bem como processar os resultados.

Se você precisa escrever scripts administrativos, dê uma olhada na ClusterShell biblioteca Python também, e / ou a sua shell paralela clush . É útil quando se lida com conjuntos nó também ( man nodeset ).

IPython.parallel é o caminho a percorrer. Eu tenho usado extensivamente para o último ano e meio. Ele permite que você trabalhe de forma interativa com o máximo de nós trabalhadores como você quer. Se você estiver em AWS, StarCluster é uma ótima maneira de obter IPython.parallel a funcionar rapidamente e facilmente com tantos EC2 nós como você pode pagar. (Ele também pode instalar automaticamente Hadoop, e uma variedade de outras ferramentas úteis, se necessário.) Existem alguns truques para usá-lo. (Por exemplo, você não quer enviar grandes quantidades de dados através da IPython.parallel própria interface. Melhor para distribuir um script que vai puxar para baixo blocos de dados em cada motor individualmente.) Mas no geral, eu achei que era ser uma maneira muito fácil de fazer o processamento distribuído ( WAY melhor do Hadoop!)

"Seria possível fazer um cluster python"

Sim.

Eu amo perguntas sim / não. Qualquer coisa que você quer saber?

(Note que Python 3 tem algumas bibliotecas de terceiros, no entanto, assim que você pode querer ficar com Python 2 no momento.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top