Logo

Distributed 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.

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 der Beweis/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ändigen Firmen durchgeführten Projekten.

Boinc

Die Berkeley Open Infrastructure for Network Computing (BOINC) ist eine Softwareplattform für verteiltes Rechnen. Die BOINC-Plattform wird an der Universität Berkeley entwickelt und ermöglicht es, die ungenutzte Rechenleistung von vielen tausend Computern über das Internet verfügbar zu machen. Bei der Entwicklung wurden Erfahrungen des Distributed-Computing-Projekts SETI@home genutzt. Das Hauptziel der Plattform ist die Trennung der Projektverwaltung von den wissenschaftlichen Inhalten. Anwender dieser Plattform installieren sich ein Clientprogramm und können damit ihre freie Rechenzeit auf mehrere Projekte verteilen. Dies stellt eine wichtige Verbesserung gegenüber an nur ein Projekt gebundenen Clients dar, da viele Distributed-Computing-Projekte nicht über genügend Arbeit verfügen, um eine große Benutzerbasis ausreichend zu versorgen. Wenn ihre Rechner leerlaufen, werden die teilweise sehr enthusiastischen Teilnehmer unzufrieden. SETI@home "classic" umging dieses Problem, indem manche Arbeitspakete bis zu zwölfmal zur Berechnung herausgegeben wurden, obwohl zur Sicherung von akkuraten wissenschaftlich verwertbaren Resultaten nur drei Ergebnisse notwendig wären. Mit einem an mehreren Projekten teilnehmenden BOINC-Client kann die zur Verfügung stehende Rechenleistung somit effektiver verwendet werden. Seit dem 18. November 2003 steht BOINC unter der GNU General Public License. Das Ziel der Freigabe des Programmcodes ist eine noch breitere Unterstützung verschiedener Plattformen durch aktive Mithilfe der freien Softwaregemeinde und eine erhöhte Sicherheit.

Da mich der Boinc Client von Anfang an faziniert hat, habe ich im Sommer 2004 das erste deutschsprachige Boinc Forum ins Leben gerufen

Boinc-Foren.de powered by Realtec.de Logo Boinc Forum

Meine Boinc-Statistik:

Boinc-Stats


Valid XHTML 1.0! Valid CSS!