2009-10-21 14 views
7

¿Sería posible crear un clúster de python, escribiendo un servidor de telnet, luego haciendo una telnet con los comandos y dando salida de un lado a otro? ¿Alguien ha tenido una idea mejor para un clúster de cálculo python? PS. Preferiblemente para Python 3.x, si alguien sabe cómo.Clúster de cálculo de Python

+1

Para uso interactivo, o como un punto de partida fácil, pruebe ipython. –

Respuesta

16

La wiki de Python alberga una lista muy completa de Python cluster computing libraries and tools. Es posible que esté especialmente interesado en Parallel Python.

Edit: Hay una nueva biblioteca que es en mi humilde opinión especialmente buena en la agrupación: execnet. Es pequeño y simple. Y parece tener menos errores que, por ejemplo, el módulo estándar multiprocessing.

4

¿Qué tipo de cosas quieres hacer? Es posible que desee comprobar hadoop. El backend, el trabajo pesado se realiza en java, pero tiene una interfaz de python, por lo que puede escribir scripts de python para crear y enviar la entrada, así como para procesar los resultados.

14

Puede ver la mayoría de los paquetes de terceros disponibles para Python 3 enumerados here; relevante para el cómputo del clúster es mpi4py - la mayoría de las demás herramientas informáticas distribuidas como pyro todavía son Python-2, pero MPI es un estándar líder para el cómputo distribuido de clúster y bien estudiado (no tengo experiencia directa con mpi4py con Python 3, , pero de oídas, creo que es una buena implementación).

La principal alternativa es el propio multiprocessing de Python, que también se adapta bastante bien si no tiene interés en conectar nodos existentes que respetan los estándares MPI pero que no pueden codificarse en Python.

No hay ningún valor agregado real en el propio (como dice Atwood, no reinvente la rueda, a menos que su propósito sea solo para entender mejor las ruedas) -) - use una de las soluciones sólidas, probadas y generalizadas que han sido probados, depurado y optimizado en su nombre! -)

+0

+1 por mencionar 'multiprocesamiento'. –

-2

"¿sería posible hacer un racimo pitón"

Sí.

Me encantan las preguntas sí/no. ¿Algo más que quieras saber?

(Tenga en cuenta que Python 3 tiene pocas bibliotecas de terceros, sin embargo, por lo que es posible que quiera quedarse con Python 2 en el momento.)

2

Si necesita escribir scripts administrativos, echar un vistazo a la biblioteca ClusterShell Python también, o/y su shell paralelo clush. También es útil cuando se trata de conjuntos de nodos (hombre nodeset).

1

Creo que IPython.parallel es el camino a seguir. Lo he estado usando extensamente durante el último año y medio. Le permite trabajar interactivamente con tantos nodos de trabajadores como desee. Si está en AWS, StarCluster es una excelente forma de ejecutar IPython.parallel de forma rápida y fácil con tantos nodos EC2 como pueda. (También puede instalar automáticamente Hadoop, y una variedad de otras herramientas útiles, si es necesario). Hay algunos trucos para usarlo. (Por ejemplo, no desea enviar grandes cantidades de datos a través de la interfaz IPython.parallel. Mejor distribuir una secuencia de comandos que reducirá trozos de datos en cada motor individualmente). Pero, en general, he encontrado que ser una forma notablemente fácil de hacer un procesamiento distribuido (WAY mejor que Hadoop!)

Cuestiones relacionadas