Scala über einen Cluster verteilen?

8

Ich habe also vor kurzem begonnen, Scala zu lernen und habe Graphen als eine Art von meinem Projekt zur Verbesserung meiner Scala verwendet, und es läuft gut - seitdem habe ich es geschafft, einige Graphalgorithmen (deren Nutzen von Datenparallelisierung) dank der erstaunlichen Unterstützung von Scala 2.9 für parallele Sammlungen.

Ich möchte jedoch noch einen Schritt weiter gehen und ihn nicht nur auf einer einzigen Maschine, sondern auf mehreren parallelisieren. Bietet Scala eine saubere Methode wie bei parallelen Sammlungen, oder muss ich warten, bis ich zu dem Kapitel in meinem Buch über Schauspieler / mehr über Akka komme?

Danke! -kstrukt

    
adelbertc 11.03.2012, 04:32
quelle

2 Antworten

11

Es wurde versucht, verteilte Sammlungen zu erstellen (momentan ist das Projekt eingefroren).

Alternativen wären Akka (was vor kurzem wirklich cool wurde: Akka Cluster ) , das haben Sie bereits erwähnt, oder vollständige Cluster-Engines, das heißt nicht parallele Sammlungen in irgendeiner Weise und eher wie das Verteilen von Clustern über die Scala, aber in Ihre Aufgabe in irgendeiner Weise - wie Scoobi für Hadoop, Storm oder sogar Spark (speziell Bagel zur Graphenverarbeitung). Es gibt auch einen Schwarm , der auf abgegrenzten Fortsetzungen gebaut wurde. Last but not least ist Menthor - Autoren, die behaupten, dass es besonders für die Graph-Verarbeitung geeignet ist und Schauspieler verwendet.

Da Sie mit Graphen arbeiten möchten, können Sie sich auch den Cassovary ansehen, der kürzlich von twitter.com veröffentlicht wurde / p>

Signal-collect ist ein Framework für die parallele Datenverarbeitung, das mit Akka unterstützt wird.

    
om-nom-nom 11.03.2012, 05:27
quelle
2

Sie können Akka ( Ссылка ) verwenden - es war schon immer das fortschrittlichste und mächtigste Akteur- und Concurrency-Framework für Scala und das frisch gebackene Version 2.0 ermöglicht schöne transparente Remoting von Schauspielern , Hierarchien und Aufsicht . Die kanonische Methode, parallele Berechnungen durchzuführen, besteht darin, so viele Akteure wie parallele Teile in Ihrem Algorithmus zu erstellen, sie optional auf mehrere Maschinen zu verteilen, ihnen Daten zur Verarbeitung zu senden und dann die Ergebnisse zu sammeln (siehe hier ).

    
Oleg Kunov 11.03.2012 05:28
quelle