Distributed Computing - Das Netzwerk ist der Computer

netplanet Werbung

Hinter dem harmlos und eher hochtechnisch klingenden Begriff "Distributed Computing" steckt vermutlich eine der größten Faszinationen, die das Internet bieten kann. Seien Sie mit Ihrem eigenen Computer ein Teil eines riesigen Computerverbundes, der jeden Superrechner auf dieser Welt locker in den Schatten stellt!

Was ist Distributed Computing?

"Distributed Computing" steht für Verteiltes Rechnen oder, anders ausgedrückt, der Möglichkeit, mehrere eigenständige Computer durch entsprechende Softwareprogramme an einem einzigen, großen Rechenprojekt rechnen zu lassen.

Die Idee dabei ist, die Leerlaufzeit der teilnehmenden Rechner zu nutzen. Die meisten Rechner sind nämlich die längste Zeit ihres Betriebes im so genannten "Idle-Mode", es werden also nicht alle Rechenressourcen genutzt. Ein normaler Bürocomputer, der Tag und Nacht in Betrieb ist, steht zwar (wenn man von normalen Arbeitszeiten ausgeht) täglich acht bis zehn Stunden als Arbeitsmittel für seinen Benutzer bereit, ist aber effektiv nur wenige Minuten, maximal nur wenige Stunden wirklich ausgelastet. Erfassen Sie beispielsweise zwei Stunden lang Text mit einer Textverarbeitungssoftware, so sind Sie zwar zwei Stunden lang voll damit beschäftigt, der Computer aber normalerweise nur mit dem Empfangen Ihrer Eingaben aus der Tastatur und dem Anzeigen am Bildschirm, effektiv nur wenige Minuten. Noch deutlicher wird diese Verschwendung an Rechenleistung, wenn Sie sich einmal vorstellen, wie viele Rechner in Mittagspausen oder nachts mit sinnlosen Bildschirmschonern beschäftigt sind. Und genau hier setzt das verteilte Rechnen an und nutzt diese brachliegenden Rechenressourcen.

Bei computergestützten Forschungsprojekten unterscheidet man zwischen zwei Komponenten: Dem Forschungsprogramm und den Forschungsdaten. Das Forschungsprogramm enthält Algorithmen und Methoden, um aus den Forschungsdaten die Ergebnisse zu errechnen, die für das Ziel des Forschungsprojekts notwendig sind. Bei herkömmlichen Forschungsprojekten übernimmt ein institutseigener oder auch angemieteter Großrechner die Aufgabe, das Forschungsprogramm auszuführen und Forschungsdaten zu verarbeiten. Dies jedoch ist auch heute noch ein sehr teures Unterfangen, zudem entstehen bei komplexen Forschungsprojekten immer häufiger riesige zu verarbeitende Datenmengen, die in immer kürzerer Zeit verarbeitet werden müssen. Der Ansatz eines Distributed-Computing-Projekts verschiebt die Aufgabe, mit dem Forschungsprogramm Forschungsdaten zu verarbeiten, weg vom Forschungsinstitut, hin zu einzelnen Computern, die an diesem Projekt teilnehmen und ihre Rechenleistung zur Verfügung stellen.

Das Schema sieht dabei wie folgt aus:

  1. Das Forschungsprojekt erzeugt Forschungsdaten, teilt diese in kleine, genau bezeichneten "Datenhäppchen" auf und stellt sie dem Verteilungssystem des Distributed-Computing-Projekts zur Distribution zur Verfügung.
  2. Das Verteilungssystem überträgt einzelne Datenhäppchen an Teilnehmer des Distributed-Computing-Projekts. Dazu installieren die Teilnehmer ein spezielles Programm, das zum einen das Forschungsprogramm enthält, aber auch Bestandteile zum Herunter- und Hochladen von Forschungsdaten und -ergebnissen und zur Sicherstellung der Authentizität der Forschungsdaten. Die Rechner der Teilnehmer beginnen nun, die einzelnen Datenhäppchen mit dem Forschungsprogramm zu verarbeiten.
  3. Hat das Forschungsprogramm auf einem teilnehmenden Rechner die Verarbeitung beendet, so wird das Forschungsergebnis an das Verteilungssystem zurückgesendet und weitere Datenhäppchen abgerufen. Das Verteilungssystem überprüft die Authentizität der zurückgesendeten Daten und schreibt dem Teilnehmer seine aufgewendete Rechenzeit in einer projekteigenen Statistik gut.

Ob der Rechner eines Teilnehmers nun ein superschnelles oder ein hoffnungslos altes Modell ist, spielt in erster Linie in einem Distributed-Computing-Projekt keine Rolle; theoretisch hat jeder teilnehmende Rechner die gleiche Möglichkeit, die Nadel im Heuhaufen zu finden und genau das macht die Teilnahme an einem Distributed-Computing-Projekt so faszinierend und aufregend zugleich. Zwar vergüten die wenigsten Projekten die Strom- und Verbindungskosten der teilnehmenden Rechner, dennoch ist es ein erbauender Gedanke, Besitzer eines Rechners zu sein, der Teil eines gigantischen Superrechners ist und diesen großspurig klingenden Satz meine ich ausnahmsweise ernst. :-)

Einzelne Projekte

  • distributed.net
    Das distributed.net ist eine Projektgruppe, die sich ständig mit Rechenprojekten beschäftigt, die nur via Distributed Computing bewältigt werden können. Ständig werden hier Projekte zum Knacken von Verschlüsselungssystemen absolviert, bei denen alle möglichen Schlüsselkombinationen einfach ausprobiert werden. Auf diese Weise soll anhand der Zeiträume, die zum Auffinden des richtigen Schlüssels notwendig waren, gezeigt werden, ab welcher Schlüssellänge Verschlüsselungssysteme zum derzeitigen Zeitpunkt noch als sicher einzustufen sind und wann nicht.
  • SETI@home
    SETI@home hat sich seit 1999 der Aufgabe verschrieben, nach außerirdischen Signalen im Weltall zu suchen. Dazu werden mit Radioteleskopen Aufnahmen des elektromagnetischen Feldes von bestimmten Himmelsregionen angefertigt und diese auf den teilnehmenden Rechnern nach außergewöhnlichen Signalformen analysiert. Aufgrund der faszinierenden Idee erreichte SETI@home einen hohen Bekanntheitsgrad.
  • BOINC ("Berkeley Open Infrastructure for Network Computing")
    Das BOINC-Projekt ist genau genommen kein eigenes Distributed-Computing-Projekt, sondern stellt eine einheitliche Plattform dar, mit der Distributed-Computing-Projekte betrieben werden können. Entwickelt wurde es ursprünglich an der University of Berkeley in den USA aus dem dort betriebenen SETI@home-Projekt heraus.

BOINC - Berkeley Open Infrastructure for Network Computing

Das BOINC-Projekt stellt im Bereich der Distributed-Computing-Projekte eine Neuerung dar, weil es eine einheitliche und offene Plattform für Distributed-Computing-Projekte bereitstellt. Für den Teilnehmer hat dies den Vorteil, dass die Teilnahme an Projekten, die auf der BOINC-Plattform aufsetzen, grundsätzlich ähnlich ist und er nur einmal das BOINC-Programm benötigt. Mit diesem BOINC-Client kann er sich an allen BOINC-Projekten anmelden und muss nichts weiter installieren. Forschungsprogramme und -daten werden direkt vom BOINC-Client geladen, ebenso übernimmt dieser jegliche Kommunikation mit dem Distributed-Computing-Projekt. Diese einheitliche Plattform macht es für Forschungsinstitute relativ einfach, eigene Projekte auf Basis von BOINC zu entwickeln, weil gerade bei der Client-Entwicklung auf ein bereits bewährtes System zurückgegriffen werden kann.

Einige BOINC-Projekte seien an dieser Stelle kurz erwähnt:

  • SETI@home
    Auch weiterhin das "Flagschiff" der BOINC-Projekte, bei dem nach ausserirdischen Signalen gesucht wird.
  • Climateprediction.net
    Projekt zur Verbesserung von langfristigen Klimavorausberechnungen, das an der Oxford University in Großbritannien betrieben wird. Auch Climateprediction.net ist ein Projekt, dessen Client ursprünglich eigene Eigenlösung war und im Jahre 2004 auf die BOINC-Plattform gewechselt ist.
  • Einstein@home
    Projekt zur Suche nach Pulsaren im All.
  • LHC@home
    Projekt, bei dem das Design des im Bau befindlichen LHC-Teilchenbeschleunigers am CERN in Genf/Schweiz simuliert wird, um so gewonnene Erkenntnisse in die Planungen zu integrieren.
  • Predictor@home
    Projekt zur Lösung diverser biomedizinischer Fragen und zur Forschung an Protein-basierten Krankheiten.

Ein paar Zahlen ...

Die gewaltigen Dimensionen, in denen Superrechner und Distributed-Computing-Projekte sich bewegen, will ich durch einen Vergleich aufzeigen, bei dem sich beide Konkurrenten durchaus nicht verstecken müssen:

Der "echte" Superrechner in meinem Vergleich ist der im März 2002 installierte "NEC Earth Simulator", der am japanischen Yokohama-Institut errichtet wurde. Er besteht auf 3.250 Quadratmetern Gesamtfläche aus einem Verbund von 640 einzelnen Knotenrechnern, die in einem Verbund zusammenarbeiten. Jeder Knotenrechner besitzt 8 Prozessoren aus der Familie der NEC-SX6-Prozessoren, von denen jeder einzelne eine Rechenleistung von 8 GigaFLOPS ("FLOPS" = Fliesskommaoperationen pro Sekunde) aufweist. Zum Vergleich: Mein privater Computer mit einem Intel Pentium III 650 MHz leistet rund 20 MegaFLOPS. Der NEC Earth Simulator besitzt demnach eine maximale Rechenleistung von 40.960 GigaFLOPS beziehungsweise 40 TeraFLOPS und ist damit der derzeit größte Superrechner der Welt (siehe auch die weiterführende Links am Ende dieser Seite).

Das Distributed-Computing-Projekt in meinem Vergleich ist ein normaler Tag im SETI@home-Projekt, genau der 21. November 2002. Die Messung um 17 Uhr UTC ergeben für die vorherigen 24 Stunden einen Wert von genau 48,01 TeraFLOPS, also rund 20 % mehr als einer der größte Superrechner der Erde. In diesen 24 Stunden wurden insgesamt 1.063.694 Workunits in einer Gesamtrechenzeit von 1.355,382 Jahren (!) analysiert.

Weiterführende Links

http://www.distributed.net/
distributed.net englischsprachige Seite

http://boinc.berkeley.edu/
Berkeley Open Infrastructure for Network Computing englischsprachige Seite

http://www.boinc.de/
Inoffizielle, deutschsprachige Seite zu BOINC

http://setiweb.ssl.berkeley.edu/
SETI@home - The Search for Extraterrestrial Intelligence englischsprachige Seite

http://climateprediction.net/
Climateprediction.net englischsprachige Seite

http://www.physics2005.org/events/einsteinathome/index.html
Einstein@home englischsprachige Seite

http://athome.web.cern.ch/athome/
LHC@home englischsprachige Seite

http://predictor.scripps.edu/
Predictor@home englischsprachige Seite

http://www.top500.org/
TOP500 Supercomputer Sites englischsprachige Seite

http://www.es.jamstec.go.jp/
Earth Simulator Center englischsprachige Seite

WERBUNG
Zum Beginn dieser Seite