Raspberry Pi für die Wissenschaft – Teil 1: BOINC und SETI@Home

Raspberry Pi für die WissenschaftDie Tatsache, dass es jetzt den RasPi 3 gibt, ist noch kein Grund, einen alten Raspberry Pi 2 in der Schublade verstauben zu lassen. Der kann leicht noch seine Rechenleistung in den Dienst der Wissenschaft stellen.

Mit der Teilnahme am BOINC-Netzwerk kann ein privater Rechner nicht benötigte Rechenzeit verschiedenen wissenschaftlichen Projekten zur Verfügung stellen. BOINC ist die Berkeley Open Infrastructure for Network Computing, eine Software- und Netzwerkplattform für verteiltes Rechnen (parallel computing). Über BOINC stehen viele verschiedene wissenschaftliche Projekte zur Verfügung, die man mit Rechenzeit unterstützen kann. Darunter auch sehr bekannte, wie SETI@Home, das nach außerirdischen Funksignalen sucht, oder Einstein@Home, das sich dem Nachweis von Gravitationswellen widmet.

BoincManagerBereits Mitte der 2000er Jahre hatte ich schon mal an SETI@Home teilgenommen. Damals war das noch eine eigene Software, nur für SETI allein. Später wurde mit BOINC dann eine Plattform geschaffen, die heute um die 60 Projekte unterstützt. In diesem Artikel werde ich kurz BOINC selbst und seine Bestandteile vorstellen, sowie SETI@Home. In den nachfolgenden Artikeln dieser Reihe geht es dann darum, Raspbian, BOINC und SETI@Home auf einem Raspberry Pi 2 zu installieren, Projekte hinzuzufügen und zu überwachen.

BOINC

Die Berkeley Open Infrastructure for Network Computing ist – wie der Name schon andeutet – an der University of California in Berkeley angesiedelt. BOINC ist also ein Universitätsprojekt und mit rund 307.000 aktiven Helfern, 1.138.000 Computern und einer durchschnittlichen Rechenleistung von 13.000 PetaFLOPS in 24 Stunden (Stand: März 2016) das weltweit größte Netzwerk für verteiltes Rechnen.

Die Projekte, die auf BOINC aufsetzen, nutzen die zur Verfügung gestellte Rechenzeit zum Beispiel um mathematische Probleme zu lösen, um Krankheiten zu heilen, zum Studium der globalen Klimaerwärmung, um Pulsare, Gravitationswellen oder außerirdisches Leben zu entdecken oder für viele andere Arten von wissenschaftlicher Forschung.

Wer kann teilnehmen?

Jeder der über einen eigenen Computer verfügt, der mit dem Internet verbunden ist. Dabei lässt sich BOINC so einstellen, dass nur in Leerlaufzeiten für die Wissenschaft gearbeitet wird, wenn der Anwender den Rechner gerade nicht benötigt. BOINC macht also nicht den Rechner langsamer, wenn man ihn selbst braucht. Unterstützt werden Windows, Linux und Mac-Rechner ab Pentium 500MHz, sowie Android-Geräte.

Die Vorgehensweise ist dabei sehr einfach:

  1. BOINC-Software herunterladen und installieren,
  2. Projekte auswählen,
  3. bei den ausgewählten Projekten mit Mailadresse und Passwort anmelden.

Und schon kann man dabei zusehen, wie Arbeitspakete heruntergeladen und abgearbeitet werden. (Siehe Bild.)

Nicht jedes Projekt eignet sich allerdings für jedes Betriebssystem und jede Hardware. Speziell für den Raspberry Pi stehen im Moment offiziell nur 8 Projekte zur Verfügung. Das liegt daran, dass die Projektbetreiber ihre Software extra für jede mögliche Client-Plattform bereitstellen müssen, die unterstützt werden soll. Da fällt ein Exote mit Linux auf ARM-Prozessor-Basis leider oft durchs Raster.

Zum Verständnis von BOINC will ich als nächstes die wichtigsten Software-Komponenten kurz vorstellen, mit denen wir es zu tun bekommen werden.

BOINC Client

Der BOINC Client oder auch Core Client ist die Software, die am eigenen Rechner im Hintergrund die BOINC Aufgaben verrichtet. Sie hat kein User Interface und eignet sich daher sehr gut um auf einem Raspberry Pi ohne Monitor und Tastatur zu laufen. Der BOINC Client kümmert sich um die Vergabe der Rechenzeit an verschiedene Applikationen.

BOINC Manager

Das ist das User Interface, mit dem der Anwender den BOINC Client und die Applikationen steuern und überwachen kann. (Siehe Bild weiter oben.) Der BOINC Manager kann auch BOINC Clients steuern, die auf einem anderen Rechner laufen. Damit ist es möglich, von einem Windows PC aus per BOINC Manager auf den BOINC Client am RasPi zuzugreifen.

Boinccmd

Boinccmd ist quasi ein abgespeckter BOINC Manager als Commandline-Tool. Nicht komfortabel aber praktisch um per SSH den BOINC Client am Raspberry zu steuern.

Applikationen

Das sind die Programme, welche die Projektarbeit erledigen. Normalerweise werden die Applikationen automatisch vom BOINC Client auf den eigenen Rechner geladen, sobald wir über den BOINC Manager einem neuen Projekt beitreten. Die Applikation, also zum Beispiel SETI@Home holt sich dann vom Projekt-Server Datenpakete ab. Die werden dann von der Applikation berechnet und das Ergebnis Stunden oder Tage später an den Projekt-Server zurück gegeben.

Boinc BerechnungseinstellungenWie arbeiten BOINC und die Applikationen?

BOINC Client, BOINC Manager, Boinccmd und die Applikationen sind also die Softwarebestandteile, die auf unserem Rechner zum Einsatz kommen. Dabei werden in der Regel die ersten drei in einem Zug als BOINC Software installiert und die Applikationen dann nach Bedarf automatisch nachgeladen.

Als Windowsanwender steuern wir BOINC über den BOINC Manager. Beim Hinzufügen eines neuen Projekts, also zum Beispiel SETI@Home müssen wir beim Projekt ein Konto anlegen. Auch das passiert im BOINC Manager. Dabei ist nur eine E-Mail Adresse und ein Passwort anzugeben. Diese Anmeldung ist bei jedem Projekt erforderlich, an dem wir teilnehmen wollen, es kann jedoch immer die selbe Mailadresse und das selbe Passwort verwendet werden. Im BOINC Manager können dann bei Bedarf Anpassungen an den Berechnungseinstellungen vorgenommen werden. Der BOINC Client nimmt jetzt Kontakt mit dem Projekt-Server von SETI@Home auf und lädt sowohl das SETI Berechnungsprogramm (die Applikation) als auch das erste Datenpaket herunter und startet die Berechnung. Der Fortschritt kann über den BOINC Manager verfolgt werden. Bei Fertigstellung der Berechnung – dass kann durchaus Stunden oder Tage später sein – wird das Ergebnis an den Projekt-Server zurückgegeben und ein neues Datenpaket angefordert.

BOINC Statstat2Der Projekt-Server honoriert die geleistete Berechnungsarbeit durch die Vergabe von so genannten Credits. Für diese Credits (auf Deutsch „Punkte“) kann man sich zwar nichts kaufen, sie dienen aber dazu, den Anwender und seine Rechner, sowie Teams von Anwendern in globale Ranglisten einzuordnen, die öffentlich im Internet zu sehen sind. Und man kann sich auf der eigenen Webseite mit BOINC Statistik Bannern schmücken, die zeigen, wie viel Arbeit man für welches Projekt geleistet und welchen weltweiten Rang man erreicht hat. Denn wir sind bei BOINC keineswegs auf ein einziges Projekt beschränkt, wir können an mehreren Projekten teilnehmen, deren Arbeitspakete BOINC dann nacheinander abarbeitet. Auf Rechnern mit mehreren CPU-Kernen, wie dem Raspberry Pi 2 geht das auch parallel.

SETI@Home

SETI (Search for Extra-Terrestrial Intelligence) ist ein Projekt zur Suche von Radiosignalen aus dem All, die nicht natürlichen Ursprungs sind und damit auf eine Intelligenz hindeuten. Die @Home Variante von SETI erhält eine Unmenge von Daten des Arecibo Radioteleskops in Puerto Rico und des Green-Bank-Observatoriums in West-Virginia USA, die während anderer Beobachtungen quasi nebenbei abfallen. Die Analyse der Daten erfolgt nun nicht auf leistungsstarken Großrechnern, wie das in der Wissenschaft oft üblich ist, sondern auf unzähligen verteilten Privatcomputern des BOINC-Netzwerks. Ebenso wie BOINC ist SETI@Home an der Berkeley Universität beheimatet.

SETI@Home gibt es seit 1999 und im Jahre 2004 wurde es auf die BOINC-Plattform übernommen. Das ursprüngliche SETI@Home-Classic-Projekt wurde dann 2005 eingestellt, so dass es SETI@Home heute nur noch über BOINC gibt.

Besonderheiten beim Raspberry Pi

So weit die Theorie. Leider ist es beim Raspberry Pi nicht ganz so einfach. Gerade SETI@Home unterstützt offiziell den ARM-Prozessor mit Linux als Betriebssystem leider nicht. Ein einfaches Hinzufügen des SETI@Home Projekts wird also nicht funktionieren. Was aber nicht bedeutet, dass wir es nicht trotzdem zum Laufen bringen können. Allerdings müssen wir die Software im Quellcode herunterladen und selbst für den Raspberry Pi compilieren. Dazu habe ich im Internet eine schöne Anleitung gefunden, die auch funktioniert. Im nächsten Artikel geht es aber zuerst um die Vorbereitungen. Der Raspberry Pi muss Raspbian als Betriebssystem verpasst bekommen und wir müssen eine rudimentäre Grundeinrichtung vornehmen.

Nachtrag: Ab Version 8 unterstützt SETI@Home auch den Raspberry Pi, so dass die Installation wesentlich einfacher geworden ist.


Weitere Artikel in dieser Kategorie:

Schreiben Sie einen Kommentar

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