Volunteer-Computing
Verteiltes Rechnen (engl. Distributed Computing) ist eine Technik der Anwendungsprogrammierung, bei der eine Applikation nicht nur auf verschiedene Prozesse aufgeteilt, wird, sondern auf verschiedene Rechner.
Idee
Hintergrund ist die Überlegung, dass viele Rechner zeitweise nicht ausgelastet sind. Beispielsweise nachts werden viele PCs nicht genutzt. Oder der Anwender arbeitet mit einer Applikation, die nur einen Teil der CPU-Leistung beansprucht. Diese ungenutzten Ressourcen möchte man nutzbar machen.
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 Software 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 Ende des Programmlaufes - oftmals kann das mehrere Wochen dauern - meldet man das Ergebnis an der Webseite zurück.
konkrete Projekte
Eines der ersten Projekte, die die Technik des verteilten Rechnens nutzten, war das SETI@home-Projekt der Berkeley Universität, das somit die Rechenkraft eines teueren Supercomputers erzielte. Viele Projekte folgten, so z.B. medizinische Projekte wie Folding@home und Projekte, die sich der Lösung von mathematischen Problemen verschrieben haben (GIMPS für Mersenne-Primzahlen, GFPS für Fermatsche Primzahlen ). 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: Grid-Computing
Weblinks
- http://www.rechenkraft.net/ - Übersicht über die meisten aktuellen und abgeschlossenen Projekte des verteilten Rechnens