8

Così ho recentemente iniziato ad imparare Scala e ho usato i grafici come una sorta di mio progetto per migliorare la mia Scala, e sta andando bene - sono riuscito a parallelizzare facilmente alcuni algoritmi di grafi (che beneficiano dei dati parallelizzazione) grazie allo straordinario supporto di Scala 2.9 per le raccolte parallele.Distribuire Scala su un cluster?

Tuttavia, voglio fare un ulteriore passo avanti e farlo parallelizzare non solo su una singola macchina ma su diverse. Scala offre un modo pulito per farlo come fa con le raccolte parallele, o dovrò aspettare fino ad arrivare al capitolo nel mio libro su Attori/saperne di più su Akka?

Grazie! -trattato

risposta

11

Si è tentato di creare distributed collections (attualmente il progetto è bloccato).

Alternative sarebbero Akka (che recentemente ha ottenuto davvero cool Inoltre: Akka Cluster), che hai già accennato, o motori a grappolo a pieno titolo, cioè noncollezioni parallele in ogni senso e più come la distribuzione di cluster su scala ma potrebbe essere utilizzato in qualche modo nel tuo compito, come ad esempio Scoobi per Hadoop, Storm o anche Spark (in particolare, Bagel per l'elaborazione del grafico). C'è anche Swarm che è stato costruito su continuazioni delimitate. Ultimo ma non meno importante è Menthor - autori che sostengono che è particolarmente adatta all'elaborazione grafica e fa uso di attori.

Dato che il tuo obiettivo è lavorare con i grafici, potresti anche considerare Cassovary che è stato recentemente aperto da twitter.

Signal-collect è un framework per il trattamento dati parallelo supportato da Akka.

+0

Controllare [Scrunch] (https://github.com/cloudera/crunch/tree/master/scrunch) come pure per Hadoop – dhg

+0

C'è anche [Scalding] (https://github.com/twitter/scalding) per Hadoop –

+0

sì, ho controllato cassovary, davvero fantastico – adelbertc

2

È possibile utilizzare Akka (http://akka.io) - è sempre stato il quadro più avanzato e potente attore e la concorrenza per la Scala, e l'appena sfornato la versione 2.0 permette di bello trasparente actor remoting, hierarchies e supervision. Il modo canonico per eseguire calcoli paralleli è creare tanti attori quante sono le parti parallele nell'algoritmo, eventualmente distribuirle su più macchine, inviarle per elaborare e quindi raccogliere i risultati (vedere here).

Problemi correlati