8

Así que recientemente comencé a aprender Scala y he estado usando gráficos como una especie de proyecto para mejorar mi Scala, y está yendo bien. Desde entonces logré paralelizar fácilmente algunos algoritmos de gráficos (que se benefician de los datos paralelización), cortesía del sorprendente soporte de Scala 2.9 para colecciones paralelas.¿Distribuir Scala sobre un clúster?

Sin embargo, quiero llevar esto un paso más allá y hacerlo en paralelo no solo en una sola máquina sino en varias. ¿Scala ofrece alguna manera limpia de hacer esto como lo hace con colecciones paralelas, o tendré que esperar hasta llegar al capítulo de mi libro sobre Actores/aprender más sobre Akka?

Gracias! -kstruct

Respuesta

11

Hubo un intento de crear distributed collections (actualmente el proyecto está congelado).

alternativas serían Akka (que recientemente obtuvo además muy cool: Akka Cluster), que ya se ha mencionado, o motores de racimo de pleno derecho, es decir nocolecciones paralelas en ningún sentido y más como la distribución de racimo sobre la scala, pero podría utilizarse en su tarea de alguna manera, como Scoobi para Hadoop, Storm o incluso Spark (específicamente, Bagel para el procesamiento de gráficos). También hay Swarm que se compiló encima de continuaciones delimitadas. Por último, pero no menos importante es Menthor - autores que afirman que es especialmente adecuado para el procesamiento de gráficos y utiliza Actores.

Dado que su objetivo es trabajar con gráficos, también puede considerar mirar Cassovary que fue abierto recientemente por twitter.

Signal-collect es un marco para el procesamiento paralelo de datos respaldado con Akka.

+0

Revisa [Scrunch] (https://github.com/cloudera/crunch/tree/master/scrunch) también para Hadoop – dhg

+0

También hay [Escaldado] (https://github.com/twitter/scalding) para Hadoop –

+0

sí, he comprobado cassovary, realmente genial – adelbertc

2

Puede utilizar Akka (http://akka.io) - que siempre ha sido el actor y concurrencia marco más avanzado y potente para la Scala, y la recién horneado versión 2.0 permite una agradable transparente actor remoting, hierarchies y supervision. La forma canónica de hacer cálculos paralelos es crear tantos actores como partes paralelas en su algoritmo, opcionalmente separándolos en varias máquinas, enviarles datos para procesarlos y luego recopilar los resultados (consulte here).

Cuestiones relacionadas