Ad-Hoc Grid Computing: Browser als virtueller Supercomputer

Die Idee ist an sich nicht neu: Durch die Kopplung vieler Ressourcen lassen sich leistungsfähige Ablaufumgebungen erzeugen, die auch komplexe Problemstellungen durch parallele Bearbeitung von Teilaufgaben meistern können. Man spricht in diesem Zusammenhang vom Grid Computing. Allerdings müssen derartige Grids meist aufwändig konfiguriert und implementiert werden.

Masterarbeit: Webbrowser als Knoten eines Ad-Hoc Grids

Michael Schneider, Absolvent des Master-Studiengangs Informationssysteme, hat in seiner Masterarbeit nachgewiesen, dass gängige Webbrowser ohne zusätzliche Konfiguration ein solches Grid spontan bilden und gemeinsam an der Lösung von Problemen arbeiten können. Er hat dazu eine JavaScript-Bibliothek entwickelt, die in herkömmliche Web-Seiten eingebettet dazu führt, dass der die Seite anzeigende Browser einem Ad-Hoc Grid beitritt und damit einerseits für die Abarbeitung übermittelter Aufgaben zur Verfügung steht, andererseits aber auch selbst Aufgaben an das Grid zur Lösung übergeben kann.

Parallelität a’la HTML5

Vor HTML5 war Nebenläufigkeit von im Browser ausgeführtem JavaScript nicht vorgesehen. Erst die mit HTML5 neu eingeführten Web Worker haben eine Möglichkeit eröffnet, in einer Web-Seite parallele Abläufe zu implementieren, die durch mehrere Threads des Browsers ausgeführt werden. Michael Schneider hat nun in seiner Arbeit den Distributed Web Worker entwickelt, der sich aus Sicht eines Entwicklers wie ein Web Worker verhält, den Programmcode aber an einen anderen Knoten des Grids zur Ausführung überträgt.

Mandelbrotmenge

Zur Überprüfung seiner Überlegungen und der Implementierung hat Herr Schneider u.a. den Algorithmus zur Bestimmung der Mandelbrot-Menge in JavaScript implementiert und die einzelnen Zeilen der Visualisierung an Distributed Web Worker zur Berechnung übergeben.

Mandelbrot

Ergebnisse

Natürlich erzeugt die Einbindung einer zusätzlichen Schicht zur Verteilung von Aufgaben in einem Grid zunächst einen Overhead. Herr Schneider zeigt aber in seiner Arbeit, dass in Abhängigkeit von der Anzahl der Grid-Teilnehmer und der Größe der verteilten Arbeitspakete durchaus Szenarien existieren, in denen das entwickelte Ad-Hoc Grid deutlich besser abschneidet als eine rein lokale Berechnung.

Messergebnisse zum Ad-Hoc Grid

Die Masterarbeit mit dem Titel

Konzeption und prototypische Implementierung
eines JavaScript-Frameworks zur dynamischen Distribution und Ausführung von Code in einem Netzwerk verteilter Webbrowser

wird in Kürze in der FHWS-Bibliothek zur Verfügung stehen.