Rueckblick: Meine verteilten Projekte

Da ich mittlerweile schon jahrelang an verteilten Projekten mitrechne, habe ich mir gedacht, dass es endlich mal Zeit wird, das bisher erreichte zusammenzufassen und mal einen Rückblick über die letzten Jahre meiner Arbeit am verteilten Rechnen zu geben. Wie ich schon beim Stichpunkte zusammenschreiben bemerkt habe, wird das wohl mal ein etwas längerer Blogbeitrag, weshalb ich zum ersten Mal hier im Blog den Beitrag teile.

Was ist verteiltes Rechnen überhaupt? Verteiltes Rechnen funktioniert so, dass man sich auf seinem Rechner einen Client installiert, der von einem Server im Internet Arbeitspakete abholt und dann in der Zeit auf dem eigenen Rechner durchrechnet, in der der eigene Rechner nicht verwendet wird. Nachdem anfangs von den verschiedenen Projekten eigenständige Clients und Server entwickelt wurden, wurde von der Berkeley Universität im Rahmen von Seti@Home ein Framework unter dem Namen BOINC für verteiltes Rechnen entwickelt, wodurch ein Netzwerk entstanden ist, das mittlerweile die meisten Projekte vereint. Das Schöne am verteilten Rechnen ist aber, dass jeder, der einen Computer besitzt, aktiv an den Projekten mit teilnehmen kann.

Begonnen hat mein Interesse am verteilten Rechnen ungefähr 1997 als ich auf das RC5-56 Projekt von distributed.net aufmerksam wurde. Distributed.net hat es sich damals zur Aufgabe gemacht, zu zeigen, dass damals aktuelle Verschlüsselungsalgorithmen zu unsicher sind. Speziellen Anreiz bot dabei außerdem, dass die RSA Labs einzelne Wettbewerbe ausgeschrieben hatten, die im Falle der Entschlüsselung einer RC5 Nachricht, einen Geldpreis für den erfolgreichen Finder abgaben. Distributed.net schaffte die Entschlüsselung der Nachricht nach 250 Tagen am 19. Oktober 1997 und begann danach direkt mit dem RC5-64 Projekt, dazu später mehr. Zum damaligen Zeitpunkt war außerdem das DES Verschlüsselungsverfahren im Internet sehr weit verbreitet und wurde auch in sicherheitskritischen Anwendungsbereichen, wie dem Online-Banking, verwendet. In diesem Bereich startete distributed.net sein DES-II Projekt und konnte die Nachricht nach gerade mal 39 Tagen am 23. Februar 1998 die Nachricht entschlüsseln, wobei über 90% des Suchraumes abgesucht werden mussten. Das danach gestartete DES-III Projekt wurde zusammen mit der Electronic Frontier Foundation (EFF) durchgeführt und verwendete neben dem distributed.net Netzwerk außerdem noch den von der EFF entwickelten Deep Crack, der speziell auf das Entschlüsseln von DES Nachrichten ausgelegt wurde. Ziel der ganzen Aktion war es, eine mit DES verschlüsselte Nachricht innerhalb eines Tages zu entschlüsseln und damit endgültig zu zeigen, dass die Verschlüsselung mit 56-bit unsicher ist. Nach 22 Stunden und 15 Minuten wurde am 19. Januar 1999 der Schlüssel der Nachricht gefunden. An diesen Wettbewerb kann ich mich noch gut erinnern, da ich extra für diesen Zweck ein Linux-System aufgesetzt hatte, das sich kurz in per Modem ins Internet einwählte, neue Arbeitspakete von distributed.net abholte bzw. berechnete einsendete und sofort die Verbindung wieder trennte (Flatrates gab es zu dem Zeitpunkt noch nicht). Nach dem DES-III Projekt folgte noch ein Wettbewerb um die CS Communications & Systemes, der aber auch schon nach nur 62 Tagen am 16. Januar 2000 zu Ende war. Hier ging es wieder um 56-bit Verschlüsselungsverfahren. Während diese Projekte liefen, wurde schon wieder eifrig am RC5-64 Projekt gerechnet. Mit der 64-bit langen Verschlüsselung hat es insgesamt 1800 Tage gedauert, bis am 14. Juli 2002 endlich der Schlüssel gefunde wurde. Nachdem allerdings RC5-72 begonnen wurde und das Projekt in meiner Lebenszeit eigentlich gar nicht mehr abgeschlossen werden dürfte, habe ich mich anderen Projekten zugewand, auch wenn ich die Stabilität der Clients von distributed.net immer sehr geschätzt habe. Ein besonders großes Interesse hatte ich an den Optimal Golomb Rulers, den optimalen Golomb Linealen, nicht, das kam dann erst später wieder mit BOINC. Dazu aber später mehr…

Nachdem die Verschlüsselungsprojekte nun endültig den Reiz für mich verloren hatten, versuchte ich eine geeignete Alternative zu finden. Zum damaligen Zeitpunkt gab es da im Prinzip nur noch Seti@home der Berkeley Universität, das auch heute noch das wahrscheinlich bekannteste Projekt im Bereich verteilten Rechnens ist und sich mit der Suche nach außerirdischen, intelligenten Leben beschäftigt, und Folding@home der Stanford Universität, das sich mit Proteinfaltung beschäftigt und damit beim Verständnis von Krankheiten wie BSE, Alzheimer, Huntington, Parkinson, uvm. weiterhilft. Hier habe ich lange mitgerechnet und bin auch stolz darauf, dass ich an so vielen Ergebnissen beteiligt sein durfte. Während der Zeit bei Folding@home gab es für mich dennoch sporadisch Projekte, an denen ich noch mitgearbeitet habe. Da wären zum Beispiel Zetagrid, das Nullstellen der Riemann’schen Zeta Funktion berechnen wollte, aber irgendwie unspektakulär zu Ende ging, ohne, dass man etwas nennenswertes erfahren konnte und dem Projekt Chessbrain.

Chessbrain war, genauso wie damals die Entschlüsselung von DES innerhalb von 24 Stunden, eines der Highlights der Projekte, an denen ich teilgenommen habe. Chessbrain war ein Schachcomputer, der seine Zugberechnung per Internet über verteiltes Rechnen durchführen ließ. Das wäre alles noch nicht unbedingt etwas besonderes für so ein Projekt, aber am 30. Januar 2004 wurde ein Weltrekorversuch gestartet, der dann in der Ausgabe 2005 des Guiness-Buchs auch mit eingetragen wurde. An diesem Tag spielte der dänische Schachgroßmeister Peter Heine Nielsen gegen Chessbrain, das von 2070 PCs unterstützt wurde. Schade, dass aus Chessbrain-II, eine Weiterentwicklung, die nach dem Duell erfolgen sollte, nichts mehr wurde. Selbst die Webseite ist mittlerweile nicht mehr erreichbar.

Zurück zu Folding@home (FAH)… Irgendwann wurde bei FAH dann ein Client für die Playstation 3 und für Grafikkarten vorgestellt. Nachdem diese dann ein Vielfaches der Leistung eines normalen Prozessors geschafft haben, habe ich beschlossen, mich einem neuen Projekt zuzuwenden, da meine Rechenleistung ohne GPU nicht mehr viel erreichen konnte. Mein Wechsel zu BOINC (Berkeley Open Infrastructure for Network Computing) stand jetzt an. BOINC ist ein Framework, mit dem Projekte, die eine Verteilung ihrer Arbeit über das Internet ermöglichen wollen, relativ einfach eine Client/Server Architektur aufbauen können. Man braucht sich im Prinzip nur noch um die Entwicklung einer eigenen Arbeitsanwendung kümmern, das Verteilen der Aufgaben, das Scheduling, die Bewertung der Arbeit, etc. ist alles schon implementiert. Eines meiner ersten Projekte innerhalb BOINCs war Climate Prediction zur Klimaberechnung, allerdings schreckte mich gleich das erste Arbeitspaket (engl. Workunit und im Allgemeinen WU genannt) ab, denn die Berechnung dieses Arbeitspaketes hat sage und schreibe ein ganzes Jahr bei mir gedauert. Entschieden zu lange, da man ja auch selbst irgendwie einen Fortschritt sehen möchte. Es mussten also andere Projekte her und so kam es, dass ich mittlerweile mit Einstein@home auf der Suche nach Gravitationswellen bin, mit LHC@home versuche die Flugbahn der Teilchen im Teilchenbeschleuniger im CERN zu berechnen, bei QMC@home versuche molekulare Reaktivität vorherzusagen, bei POEM@home wieder Proteinvorhersagen mache, bei BURP ein paar Renderings vornehme, mal kurz mit SETI nach Außerirdischen gesucht habe und bei SIMAP eine Ähnlichkeitsmatrix von Proteinen auf dem aktuellen Stand halte. Über Yoyo@home bin ich dann auch wieder bei distributed.net aktiv geworden und habe erfolgreich beim Durchrechnen von OGR-25 und OGR-26 geholfen. Alle Ergebnisse hier aufzulisten würde entschieden zu lange dauern, aber ich bin froh, dass ich dafür meinen Rechner nicht sinnlos habe laufen lassen.

Noch ein kleines Projekt zum Abschluss: Im Februar 2008 habe ich dem DeFacto Team bei ihrer Teilnahme bei Jugend Forscht mit Rechenleistung geholfen. Beim Landeswettbewerb haben sie “nur” den zweiten Platz erreicht und sind dann nicht mehr weitergekommen. Dennoch hat auch hier die Unterstützung sehr viel Spaß gemacht.

Unterm Strich kann man sagen, dass es jede Menge Projekte gibt, die unterstützenswert sind. Sucht euch doch auch eins aus und helft mit Lösungen für diverse Probleme zu finden.

Hier ein Bild meiner aktuellen BOINC Statistik: