BOINC – Spenden 2.0?

Dieser Artikel wird die Komponenten von BOINC vorstellen.

BOINC (Berkeley Open Infrastructure for Network Computing) ist eine Open Source – Plattform für verschiedene Distributed-Computing-Projekte.

„Hi my name is David Anderson, and I’m a research scientist based at the University of California, Berkeley. I run a project called BOINC, funded by the National Science Foundation, which develops software for volunteer computing (VC).“

Zunächst werde ich Ihnen die einzelnen Bestandteile des Frameworks näher bringen, damit ihr euch einen kleinen Überblick zu dem Framework schaffen könnt. Anschließend werden wir auf die Entstehungsgeschichte und ein paar aktuelle Projekte des Frameworks eingehen.

BOINC kann in zwei Hauptkomponenten eingeteilt werden.

1) Nutzerkomponente

Core-Client: Der Core-Client steuert und überwacht die wissenschaftlichen Aufgaben nach individualisierten Vorgaben des Teilnehmers. Mit der Pufferung von Arbeitspaketen und der Kommunikation mit den Schedulern und Datenservern der Projekte bildet dieser Client das Herzstück der Nutzerkomponente. Der Client läuft im Hintergrund und benötigt keine weiteren Programme, um voll funktionsfähig zu sein.

BOINC-Manager: Dieser Manager ist ein grafisches Interface für den Core-Client. Es konfiguriert und überwacht sämtliche Aktivitäten des im Hintergrund laufenden Clients. Mit seiner einfachen Bedienbarkeit spricht er vor allem Nutzer an, die den Client nicht mit dem Kommandozeilen-Programm steuern möchten.

BOINC-Commandline-Interface: Dieses Interface ermöglicht es, BOINC über die Kommandozeile zu bedienen und kommt vor allem bei Servern infrage.

2) Projektkomponente

Das Backend von jedem Projekt basiert aus der Kombination von Webserver, PHP als Skriptsprache und einer MySQL-Datenbank. Je nach Größe des Projektes können die Backend-Dienste auch über mehrere Server laufen.
Auf der Projektseite besteht es aus folgenden Komponenten:

Scheduler: Dieses CGI-Programm befindet sich auf dem Webserver des Projektes. Er verteilt die Arbeitspakete an die Teilnehmerrechner und gibt Auskunft über Erfolg und Misserfolg des Auftrags. Über alle Aktivitäten führt er zusätzlich Protokoll in der Datenbank.

Datenserver: Der Datenserver besteht aus einem HTTP-Server. Mit ihm kann der Client seine zugeteilten Arbeitspakete herunterladen und die Ergebnisse hochladen.

Validator: Der Validator überprüft die Ergebnisdateien auf Korrektheit. Normalerweise überprüfen dafür mehrere Teilnehmer des Frameworks das Ergebnis. Es gibt kein einheitliches Validator-Programm. Es ist durchaus üblich, dass Projekte verschiedene Validator nutzen.

Assimilator: Der Assimilator bereitet die validierten Ergebnisdateien für weitere wissenschaftliche Analysen vor.

File-Deleter: Nachdem die Ergebnisdateien für die weitere Nutzung verwertet wurden, löscht der File-Deleter die nicht mehr benötigten Daten vom Server.
Splitter: Auch dieses Programm ist projektspezifisch. Er splittet die Aufgaben in kleinere Teilaufgaben und ist für den Nachschub an weiteren Arbeitspaketen verantwortlich.

Transitioner: Der Transitioner leitet den Gesamtprozess. Er kann beispielsweise eingreifen, wenn genug validierte Ergebnisse vorliegen und verhindert so Doppelaufwendungen.

Entstehungsgeschichte:

Die Idee hinter BOINC ist es, ungenutzte Rechenleistung über das Internet für die Allgemeinheit zur Verfügung zu stellen, um die Forschung zu unterstützen.
Ursprünglich entstand die Plattform im Rahmen des SETI@home-Projektes . Auf der Suche nach außerirdischem Leben wurde 10 mal mehr Rechenleistung benötigt als eigentlich für das Projekt zur Verfügung gestanden hat. Der Projektleiter David Anderson kam damals auf die geniale Idee, mit Hilfe von dezentralisierter Rechenleistung dieses Problem zu lösen. Das war die Geburtsstunde von BOINC. 2003 wurde die erste Version getestet. Kurz darauf erfreute es sich immer größerer Beliebtheit. Bereits 2009 wurde die Grenze von 300000 aktiven Usern durchbrochen. Heute zählen über 400000 aktive Rechner zu der BOINC-Framework, die eine durchschnittliche Rechenleistung von über 9 Petaflops zur Verfügung stellen.

Doch welche Projekte unterstützt BOINC überhaupt?

BOINC unterstützt dabei Forschung aus sämtlichen Bereichen der Wissenschaft. Von Astronomie über Biologie bis hin zur Kryptographie werden so ziemlich alle Bereiche der Wissenschaft gedeckt. Es gibt zur Zeit über 80 aktive Projekte, die über BOINC unterstützt werden (http://boincstats.com/en/page/projectPopularity).

Drei interessante Projekte möchte ich euch im folgendem kurz beschreiben:

1) SETI@home
Dieses Projekt wurde bereits erwähnt. Mit Hilfe von BOINC werden Daten aus dem Radioteleskop vom Arecibo-Observatorium in Puerto Rico nach bestimmten Funksignalen durchsucht, die außerirdisches Leben belegen sollen.

2) Predictor@home
Bei der Proteinstrukturvorhersage wird die Struktur, die Faltung und die Form von Proteinen untersucht. Das Ziel ist die Entwicklung von Algorithmen zur Vorhersage von bekannten und unbekannten Proteinstrukturen. Diese Ergebnisse könnten wichtige Erkenntnisse zur Bekämpfung von neuen und bestehenden Krankheiten liefern.

3) Mindmodeling@home
Diese Forschung nutzt BOINC um das menschliche Gehirn besser zu erforschen. Durch kognitive Prozessmodellierung werden bisherige Ergebnisse über Mechanismen und Prozesse des menschlichen Körpers erweitert. Ziel des Projektes ist die Steigerung der menschlichen Leistungsfähigkeit.

Falls ihr mehr zu diesen und auch anderen Projekten erfahren wollt, empfehle ich euch folgenden Link:

http://boinc.berkeley.edu/wiki/Publications_by_BOINC_projects

Ich hoffe, dass ich euch mit diesem Artikel einen kleinen Einblick in das Framework BOINC geben konnte. Es ist eine wirklich vielversprechende Plattform und bietet ein riesiges Spektrum an Möglichkeiten.
Die Malariaforschung, die Suche nach E.T. oder die Digitalisierung der Milchstraße – Auch Sie haben die Möglichkeit, einen Beitrag dazu zu leisten und wirklich großes zu bewirken. Es ist Ihre Entscheidung!

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>