Aktionen

BOINC

Aus SETI.Germany Wiki

BOINC .. BOINC installieren .. Boincsteuerung .. Boincfinetuning .. Remotezugriff


BOINC ist die Abkürzung für Berkeley Open Infrastructure for Network Computing.

BOINC-Logo


Mit BOINC stellt Berkeley eine Plattform für Distributed Computing zur Verfügung, worüber verschiedene wissenschaftliche Projekte mittels des verteilten Rechnens untersucht werden können.


Den aktuellen BOINC-Client kann man hier herunterladen.

Bestandteile

Teilnehmerseitig

  • Core-Client: Der Core-Client ist ein auf dem Teilnehmerrechner im Hintergrund laufendes Kommandozeilen-Programm. Er steuert und überwacht die wissenschaftlichen Anwendungen gemäß den Vorgaben des Teilnehmers, puffert Arbeitspakete und kommuniziert mit den Schedulern und Datenservern der Projekte. Er kann alleine, also ohne Manager oder dergleichen laufen, also auch völlig im Hintergrund und weitgehend unsichtbar. Der Core-Client kann theoretisch auf jedes Unix-artige Betriebssystem portiert werden, ist für sich allein genommen jedoch recht nutzlos, wenn für die jeweilige Plattform keine wissenschaftlichen Anwendungen zur Verfügung stehen.
  • BOINC Manager: Der BOINC Manager ist eine grafische Oberfläche zur Konfiguration und Überwachung des Core-Clients. Er basiert auf dem WxWidgets-Toolkit und ist damit auf allen Plattformen lauffähig, die von WxWidgets unterstützt werden. Über die Netzwerkschnittstelle verbindet er sich zu dem Core-Client. Er bietet einfach zu bedienende Funktionen um beispielsweise die einzelnen Projekte zu steuern (anhalten, entfernen) sowie neue hinzuzufügen, ebenso wie eine Liste der WUs und dem Speicherverbrauch. Er ist quasi ein optionales Programm und wird für den normalen Betrieb nicht benötigt.
Da die Schnittstelle zum Core-Client offengelegt ist, wurden auch alternative Manager-Programme entwickelt.
  • BOINC-Commandline-Interface: das Programm boinccmd erlaubt es, den Core-Clienten über die Kommandozeile zu steuern, beispielsweise wenn keine grafische Oberfläche verfügbar ist (wie bei Servern).

Projektseitig

Das vom jeweiligen Projekt zur Verfügung gestellte Backend basiert auf einem Webserver, PHP als Skriptsprache und einer MySQL-Datenbank. Bei großen Projekten können die Backend-Dienste auf mehrere Server verteilt sein.

  • Scheduler: Der Scheduler ist ein CGI-Programm auf dem Webserver des Projekts. Er teilt den Teilnehmer-Clients ihre Arbeitspakete zu und nimmt nach getaner Arbeit eine kurze Meldung über Erfolg/Misserfolg entgegen. Über alle Aktivitäten führt er in der Datenbank Buch.
  • Datenserver: Ein einfacher HTTP-Server, von dem die Clients ihre vom Scheduler zugeteilten Arbeitspakete herunterladen und die Ergebnisdateien hochladen.
  • Validator: Der Validator (ein für jedes Projekt unterschiedliches Programm) prüft die von den Clients zurückgelieferten Ergebnisdateien auf Korrektheit. Meist geschieht dies dadurch, dass ein Arbeitspaket von mehreren Teilnehmern redundant bearbeitet wird. Der Validator vergleicht dann die Ergebnisse. Idealerweise sind sie identisch.
  • Assimilator: Ein projektspezifisches Programm. Nimmt validierte Ergebnisdateien und bereitet sie zur weitergehenden wissenschaftlichen Analyse auf. Dazu können die Ergebnisse beispielsweise in eine weitere Datenbank archiviert werden.
  • File-Deleter: Nachdem die Ergebnisse „assimiliert“ wurden sind die Input- und Output-Dateien der Clients unnötiger Ballast für den Datenserver, die durch ihre Anzahl auch seine Performance beeinträchtigen können. Mit dem File-Deleter werden nicht mehr benötigte Dateien vom Server gelöscht.
  • Splitter: Projektspezifisches Programm. Sorgt für den Nachschub an Arbeitspaketen. Bei Projekten, die einen finiten Datenbestand analysieren, teilt er den Datenbestand in handliche Arbeitspakete auf. Bei anderen Projekten erzeugt der Splitter anhand bestimmter Parameter automatisch immer neue Arbeitspakete. Der Arbeitsvorrat ist bei solchen Projekten potenziell unendlich.
  • Transitioner: Der Transitioner überwacht den Fortschritt der Arbeitspakete entlang einer gedachten „Pipeline“. So stößt er beispielsweise den Validator an, wenn er feststellt, dass zu einem Arbeitspaket genügend redundante Ergebnisse vorliegen, so dass mit der Validierung begonnen werden kann.

Features

Distributed Computing Features

BOINC erleichtert die Erstellung von Distributed Computing-Projekten und deren Verwaltung.

Flexible Arbeitsumgebung, auch für schon existierende Programme

Existierende Analyse-Programme bekannter Sprachen (C, C++, Fortran) können ohne oder mit nur geringen Änderungen unmittelbar als BOINC-Applikation laufen. Dabei darf ein solches existierendes Programm auch aus mehreren Dateien bestehen. Updates sind dabei ohne Zutun des Users möglich.

Gemeinsame Konten

BOINC wird über ein sicheres, betrugsresistentes Scoring verfügen, welches vergleichbar für verschiedene WUs und Projekte ein Maß für die geleistete Arbeit (Berechnungen) liefert. Es sollen nicht einfach WUs gezählt werden, die im nötigen Berechnungsaufwand sehr unterschiedlich sein können.

Sicherheit

BOINC ist abgesichert gegen verschiedene Attacken. So werden z. B. digitale Signaturen auf Basis der Verschlüsselung mit öffentlichen Schlüsseln verwendet um die Daten gegen die Verteilung von Viren zu schützen.

OpenGL Grafik

Einige Projekte bringen einen eigenen Bildschirmschoner mit, der verschiedene Stadien der Workunit-Berechnung darstellt, z. T. auch mit interessanten Zusatzinformationen.

Einsatz mehrerer Server möglich

Projekte können von mehreren Server bedient werden. Sollte ein Server mal nicht erreichbar sein versuchen die Clients automatisch einen nächsten, alternativen zu kontaktieren. Ist gar kein Server erreichbar verlängert sich die Wartezeit bis zum nächsten Verbindungsversuch exponentiell.

Open Source

BOINC ist Open Source, es steht unter der Mozilla Public License Version 1.0. Die Analyse-Programme brauchen dabei nicht Open Source zu sein. BOINC läßt sich so für private, kommerzielle oder auch öffentliche Projekte verwenden. Jedes Projekt muß seinen eigenen Server zur Verfügung stellen, die sich mit Open Source-Adminstrations-Tools (MySQL, PHP, Apache) warten und pflegen lassen.

Unterstützung umfangreicher Datenpakete und Berechnungssequenzen

BOINC unterstützt Analyse-Programme, die große Datenmengen verarbeiten oder erzeugen, oder die viel Arbeitsspeicher benötigen. Die Datenverteilung und -entgegennahme der Ergebnisse kann auf mehrere Server verteilt werden. Die User können dabei vorgeben, wieviel Speicherplatz auf den eigenen Rechnern benutzt werden darf. BOINC prüft dabei, ob die freigegebenen Resourcen für ein spezielles Projekt ausreichen, und verteilt die zu berechnenden Daten nur an Systeme mit ausreichenden Resourcen.

User Features

BOINC bietet den Usern:

Unterstützung verschiedener Plattformen

Der BOINC Core Client ist verfügbar für die meisten Plattformen: (Mac OS X, Windows, Linux und andere Unix-Systeme). Der Client kann mehrere CPUs nutzen.

Benutzeroberfläche über Browser bedienbar

BOINC stellt für die Account-Einrichtung, das Setup und die Statusabfrage ein webbasiertes Interface zur Verfügung. Die Einstellungen die ein User vornimmt werden automatisch auf alle Hosts bertragen um die Adminstration in großen Netzwerken zu vereinfachen.

Datenpakete-Cache

Der Core Client kann Datenpakete puffern um ausreichend „Arbeit“ vorzuhalten damit der Client auch was zu tun hat wenn der Server mal nicht erreichbar sein sollte. Für welche Zeit Datenpakete heruntergeladen werden sollen kann der User dabei frei vorgeben. User können in ihren Voreinstellungen definieren wie BOINC ihren Computer nutzen darf:

Arbeitsvoreinstellungen (Work preferences)

  • Ob die Analyse und der Datentransfer laufen soll während am Computer gearbeitet wird (z.B. Maus- und Tastaturaktivitäten).
  • Ob während des Batteriebetriebes gerechnet werden soll.
  • Ob die Verbindung ins Netz selbstständig aufgebaut werden soll oder nicht.
  • Minimum und Maximum des bevorratenden Arbeitspensums (= "WU"-Cache). Dies wird durch die Werte X und Y vorgegeben. Der Client wird versuchen sicherzustellen daß für mindestens X Tage Arbeit auf der eigenen Festplatte ist, und höchstens für Y Tage. Wenn der Hosts immer gleichlang vom Internet getrennt ist sollte X typischerweise diesen Wert enthalten. Je größer die Differenz von X zu Y ist desto selterner wird der Client ins Interent verbinden.

Festplattenvoreinstellungen (Disk preferences)

BOINCs Festplattennutzung kann auf verschiedene Arten limitiert werden:

  • Maximum des durch BOINC benutzbaren Festplattensplatzes.
  • Maxmaler Prozentsatz des noch freien Plattenplatzes der von BOINC genutzt werden darf.
  • Minimum des noch frei zuhaltenden Plattenplatzes.

Projektvoreinstellungen (Project preferences)

  • Haupt- URL des Projektes
  • Email-Adresse
  • Account-ID
  • Aufteilung der Resourcen unter den verschiedenen Projekten:
  • Ob die EMail-Adresse auf der Web-Site gezeigt werden darf
  • Ob Emails an den User geschickt werden dürfen
  • Weitere projektspezifische Einstellungen Jeder User hat einen einzigen Satz Voreinstellungen. Sollten verschiedene Voreinstellungen gewünscht sein muß ein 2. Account angelegt werden.

Verteilung der Voreinstellungen

Der BOINC-Client speichert eine Kopie der Voreinstellungen. Jedesmal wenn ein Host einen Server kontaktiert wird das Datum von dem die Kopie stammt mit den Voreinstellungen auf dem Server verglichen. Ist die Voreinstellung auf dem Server jüngeren Datums als die Kopie übernimmt der Client diese. Natürlich muß man der Verteilung ein wenig Zeit lassen damit auch alle Clients sich die neuen Voreinstellungen abholen können bevor man sie wieder überschreibt. Die sicherste Methode ist die die Voreinstellungen nur auf einer einzigen Web-Site zu ändern.

Weiterführende Links

Artikel

Anleitungen zur Installation:

Remotezugriff

BOINC (von einem entfernten Rechner aus) mit Hilfe von boinccmd bedienen.

Virenscanner

Hilfestellungen und Benutzerhinweise zu Virenscanner.

Nutzen einer GPRS/UMTS-Verbindung

Hinweise für Nutzer von Verbindungen über das Mobilfunknetz.

Offline crunchen

BOINC auf Rechnern OHNE Internetverbindung nutzen.

BOINC selber bauen

Wie kompiliere ich mir die BOINC-Libs selber.

Weblinks