Volunteer-Computing

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. September 2006 um 17:38 Uhr durch 163.1.246.183 (Diskussion) (Konkrete Projekte). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Verteiltes Rechnen (auch Dezentralisiertes Rechnen, Verteilte EDV; engl. Distributed Computing) ist eine Technik der Anwendungsprogrammierung, bei der die einzelnen Prozesse einer verteilten Anwendung ein gemeinsames Ergebnis berechnen.

Idee

Hintergrund ist die Überlegung, dass die CPU vieler Rechner zeitweise oder sogar meist nicht ausgelastet sind. Der Anwender arbeitet mit einer Applikation, die nur einen Teil der CPU-Leistung beansprucht. Diese ungenutzten Ressourcen möchte man nutzbar machen. Hierzu wird eine entsprechende Clientsoftware auf dem betroffenen Rechner installiert, die diese Aufgaben meist weitgehend übernimmt.

Prinzip

Verteiltes Rechnen muss organisiert werden. Dazu stellt jemand - oft auf einer Webseite - die Software zur Verfügung, die auf den Clients zur Lösung der speziellen Aufgabe laufen muss. Weiterhin verwaltet er die Aufgaben, die abgearbeitet sind bzw. gerade bearbeitet werden bzw. noch verteilt werden müssen.

Will man sich nun an der Problemlösung beteiligen, d.h. die ungenutzte Rechenleistung eines Computers zur Verfügung stellen, dann lädt man zunächst die Clientsoftware auf den Computer, installiert diese und testet die Installation mittels vorgegebener Testdaten. Danach meldet man sich an der Webseite an und lässt sich Daten zuteilen, die bearbeitet werden sollen. Mit diesen Daten füttert man die Clientsoftware. Nach Berechnung des Datenpaketes - dieses kann einige Stunden bis mehrere Wochen Rechenzeit in Anspruch nehmen - meldet man das Ergebnis an die Webseite zurück und kann sich neue Daten geben lassen.

Einsatzgebiete

Distributed Computing wird in vielen Bereichen der Forschung eingesetzt, vor allem bei sehr rechenintensiven Anwendungen (z.B. Docking-Simulationen für das Design künftiger Medikamente, die Berechnung von Proteinfaltungsvorgängen, die Suche nach Primzahlen oder die Widerlegung von mathematischen Vermutungen), für deren Bearbeitung die Performance von herkömmlichen Supercomputern nicht ausreicht oder für die nur ungenügende finanzielle Mittel zur Verfügung stehen. Distributed Computing Projekte finden sich demnach sehr häufig bei von Universitäten, Stiftungen oder kleinen, bzw. mittelständischen Firmen durchgeführten Projekten.

Konkrete Projekte

Eines der ersten Projekte, welches die Technik des verteilten Rechnens nutzte, war das SETI@home-Projekt der University of California, Berkeley, das somit die Rechenkraft eines teueren Supercomputers erzielte. Viele Projekte folgten, so z. B. medizinische Projekte wie Folding@home zur Simulation der Proteinfaltung, der Suche nach Gravitationswellen und Planeten, die CuboidSimulation zur Entschlüsselung der Statistik asymmetrischer Würfel, oder Find-a-Drug zur Behandlung diverser Krankheiten (inzwischen beendet), z. B. Tuberöser Sklerose durch das TSC-Rothberg-Institut, ein Projekt zur Modellierung der Klimaentwicklung im 21. Jahrhundert (climateprediction.net) und Projekte, die sich der Lösung von mathematischen Problemen verschrieben haben (GIMPS für Mersenne-Primzahlen, GFPS für Fermatsche Primzahlen ) oder MoneyBee (www.moneybee.de) zur Berechnung von Aktienkursprognosen. Funksprüche, die mit Enigma verschlüsselt wurden, wurden durch das M4 Projekt entschlüsselt.

Heute gibt es fast in allen naturwissenschaftlichen Bereichen verteilte Rechenprojekte, sogar die Industrie bedient sich bereits der Technik: Bei Microsofts Passport-System werden die Berechnungen teilweise auf dem System des Endkundens, teilweise auf zentralen Microsoft-Servern und teilweise auf den Systemen eines Drittanbieters ausgeführt.

Siehe auch

Firmen