Aktionen

Distributed Computing

Aus SETI.Germany Wiki

(Weitergeleitet von Verteiltes Rechnen)

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

Idee

Bei vielen Rechnern sind (u. a.) die Hauptprozessoren zeitweise nicht ausgelastet, da der Anwender meistens nur mit wenigen Programmen arbeitet, welche nur einen Teil der gesamten CPU-Leistung beanspruchen. Diese ungenutzten Ressourcen möchte man beim verteilten Rechnen nutzbar machen. Hierzu wird eine entsprechende Client-Software auf dem betroffenen Rechner installiert, die diese Aufgaben meistens weitgehend im Hintergrund übernimmt.

Prinzip

Beim Distributed Computing arbeitet eine Server-Anwendung mit teils weltweit verteilt stehenden Client-Rechnern zusammen, um bestimmte, normalerweise sehr aufwändige Berechnungen in kürzerer Zeit durchzuführen.

Vor allem wissenschaftliche Anwendungen sind oft sehr rechenintensiv. Eine Universität oder gar nur ein Team von Forschern hat meist nicht die Rechenleistung zur Verfügung, die sie z.B. zur Widerlegung oder dem Beweisen von mathematischen Vermutungen, der Suche nach Primzahlen, Simulation von Proteinfaltung benötigen würden. Selbst die Leistung heutiger Supercomputer wird beim verteilten Rechnen (teilweise bei weitem) übertroffen.

Verteiltes Rechnen muss organisiert werden. Dazu wird eine Software zur Verfügung gestellt, die auf den Clients zur Lösung der speziellen Aufgabe laufen muss. Weiterhin müssen die Aufgaben, die abgearbeitet sind, gerade bearbeitet werden, oder noch verteilt werden müssen, verwaltet werden.

Will man sich nun an der Problemlösung beteiligen, d. h. die ungenutzte Rechenleistung eines Computers zur Verfügung stellen, lädt man zunächst die Client-Software auf den Computer, installiert diese und testet die Installation mittels vorgegebener Testdaten. Danach meldet man sich an der Webseite des Projektes an und lässt sich Daten zuteilen, die bearbeitet werden sollen. Nach Berechnung des Datenpaketes, die einige Stunden bis mehrere Wochen Rechenzeit in Anspruch nehmen kann, wird das Ergebnis an die Webseite zurückgemeldet, und man 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 sehr häufig bei von Universitäten, Stiftungen oder kleinen, bzw. mittelständischen Firmen durchgeführten Projekten.

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.

Als offene Plattform für zukünftige Projekte wurde an der Universität Berkeley das Programm BOINC entwickelt. Die diversen BOINC-Projekte nutzen das Internet, um ihre Projekt-Applikationen an die beim jeweiligen Projekt angemeldeten Rechner zu verteilen. Ein Benutzer, der an einem Projekt teilnimmt, installiert auf seinem PC diese frei verfügbare Software als Basisprogramm und meldet sich mit diesem bei dem Projekt seiner Wahl an.

Anmerkung: Distributed Computing hat nichts mit dem Industriestandard Distributed Computing Environment (DCE) zu tun, über den man bei Wikipedia nachlesen kann.

Weblinks zu Distributed Computing

Liste der Projekte verteilten Rechnens

Single Sign On provided by vBSSO