Open Source im professionellen Einsatz

© Arpad Radoczy, 123RF.com

Public Resource Computing mit Boinc

Scheibchenweise

,

Forschungsprojekte wie Seti@home haben es vorgemacht: Das freie Framework Boinc tranchiert aufwändige Rechenaufgaben zu handlichen Arbeitspaketen, passend für viele einzelne Computer. Dieser Artikel zeigt, wie man eine verteilte Anwendung für Boinc selbst schreibt.

Komplexe Berechnungen oder Simulationen verlangen große Rechnerleistung. Mit dem Framework Boinc lassen sich vorhandene Computer-Ressourcen mit vergleichsweise geringem Aufwand in ein leistungsfähiges Clustersystem verwandeln. Hinter der Abkürzung Boinc verbirgt sich die Berkeley Open Infrastructure for Network Computing [1].

Dabei handelt es sich um eine Sammlung kleinerer Anwendungen, die zusammen eine Kommunikationsinfrastruktur bereitstellen, die einzelne Rechner zu Clustern nach den Prinzipien des Public Resource Computing (PRC) zusammenschaltet (Abbildung 1). Die bekannteste Boinc-Anwendung stammt von dem Projekt Seti@home [2], das außerirdische Radiosignale auswertet und das freie Framework seit 2004 einsetzt.

Abbildung 1: Client- und Serverkomponenten: Kommunikationsinfrastruktur und Anwendungen innerhalb des Boinc-Framework.

Abbildung 1: Client- und Serverkomponenten: Kommunikationsinfrastruktur und Anwendungen innerhalb des Boinc-Framework.

Nach dem Motto "Teile und herrsche" verteilt Boinc die Lösung einer komplexen Aufgabe, etwa die Bearbeitung von Filmsequenzen, auf viele Rechner. Einzige Voraussetzung: Das Problem ist in voneinander unabhängige Arbeitspakete, die so genannten Workunits, aufteilbar. Die Ablaufsteuerung und Verteilung der Arbeitspakete übernehmen die Softwarekomponenten von Boinc.

Manager und Client

Es gibt Komponenten für die Server- und für die Client-Seite. Die Client-Seite installiert mit dem Boinc-Manager automatisch auch den Boinc-Client. Der Manager ist ein erweitertes grafisches Dashboard (Abbildung 2). Über diese Oberfläche konfiguriert der Anwender, an welchen Rechenprojekten er teilnehmen möchte. Daneben kann er hier Ressourcen-Einstellungen vornehmen, die Bearbeitung eines Projekts unterbrechen oder wieder aufnehmen sowie den Fortschritt der Verarbeitung ablesen.

Abbildung 2: Der Boinc-Manager zeigt den Bearbeitungsstand aller Workunits und erlaubt es dem Anwender, Jobs zu pausieren oder abzubrechen.

Abbildung 2: Der Boinc-Manager zeigt den Bearbeitungsstand aller Workunits und erlaubt es dem Anwender, Jobs zu pausieren oder abzubrechen.

Der Client ist das Herzstück eines Boinc-Projekts. Er verwaltet die eigentlichen Berechnungsroutinen. Der Boinc-Client ist eine Terminalanwendung und für die Kommunikation mit einem Boinc-Projektserver zuständig. Er lädt die für das ausgewählte Projekt anstehenden Arbeitspakete sowie das auszuführende Programm per HTTP vom Server herunter. Nach der Bearbeitung der Workunits schickt der teilnehmende Computer die Ergebnisse per HTTP wieder an den Boinc-Server zurück.

Die Server-Seite besteht aus den Komponenten Feeder, Transitioner, Validator, Assimilator, File Deleter und kleineren Applikationen, die Einträge in einer Datenbank periodisch aktualisieren. Mit Hilfe dieser Komponenten überprüft das System die Rechenergebnisse und führt sie zusammen.

Das Rückgrat der Infrastruktur bildet eine MySQL-Datenbank. Diese speichert die gesamten Informationen über die im Cluster registrierten Computer und Anwender, die verfügbaren Projekte, den Berechnungsstand einer Aufgabe und eventuell die Ergebnisse.

Bunnys bearbeiten

Dieser Artikel beschreibt eine Anwendung, die das Prinzip von Boinc exemplarisch vorführt. Sie modifiziert eine Filmsequenz durch Effekte. Als Beispiel kommt dazu der Animationsfilm "Big Buck Bunny" [3] zur Verwendung, der unter einer Creative-Commons-Lizenz verfügbar ist (Abbildung 3).

Abbildung 3: Ein Bild aus der Original-Filmsequenz (oben links) und die von der Beispielanwendung modifizierten Versionen: Kantendetektion (oben rechts), Ölgemälde (unten links) und Negativbild (unten rechts).

Zunächst teilen Skripte die gesamte Filmsequenz in kleine Teilsequenzen auf. Jeder Clientrechner lädt sich eine oder mehrere Teilsequenzen herunter und modifiziert diese mit verschiedenen Algorithmen der Bildverarbeitung. Am Ende führt ein Skript auf dem Server die Teilsequenzen wieder zu einem Film zusammen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook