Viele Projekte mit teilweise völlig verschiedenen Zielsetzungen ringen inzwischen um die ungenutzte Rechenleistung privater PCs. Wir bieten eine Übersicht der interessantesten.
Auch wenn diverse Computer- und Chip-Hersteller täglich die Notwendigkeit immer schnellerer Computer in der Werbung suggerieren, werden diese nur selten wirklich ausgenutzt. Den größten Teil der Zeit ist ein Durchschnitts-PC nur geringfügig ausgelastet. Neben CPU-Zyklen haben die meisten Computer außerdem noch ein wenig Bandbreite übrig, die es erlaubt, Rechenarbeit mit anderen PCs zu koordinieren. So ist es möglich, Millionen von PCs zusammenzuschließen und parallel Aufgaben zu lösen, für die sonst Superrechner zu exorbitanten Preisen nötig wären.
Fast alle hier vorgestellten distributed computing Projekte werden für Linux als tar.gz-Archiv angeboten und können wie gewohnt mit
tar -zxvf archiv.tar.gz
entpackt werden. Da die Clients leider meist nicht im Quelltext vorliegen, entfällt das sonst übliche Kompilieren – es reicht, einfach den Client zu starten. Selbst das Starten kann man aber einem anderen Programm namens Cron überlassen – mehr dazu im Kasten “Cron einrichten”.
Radio der Zylonen
Das wahrscheinlich prominenteste Distributed-Computing-Projekt mit über 3,9 Millionen Benutzern trägt den Namen SETI@Home [1] und hat sich nicht weniger als die Suche nach intelligentem, außerirdischem Leben als Aufgabe gewählt. Dazu analysiert der SETI@Home-Client eine auf 10 kHz Breite begrenzte und 100 Sekunden lange Aufnahme eines Radioteleskops in Puerto Rico auf Spuren einen intergallaktischen Radioübermittlung. Da sich das Teleskop mit der Erdrotation relativ zu einer außerirdischen Radioquelle dreht, sucht der Client nach einem Signal, das gemäß einer Gaußschen Glockenkurve stärker und schwächer wird. Außerdem muss die Software eventuelle Dopplereffekte herausrechnen, gepulste Signale erkennen und ganz allgemein mit der zunehmenden Anzahl irdischer Funkquellen kämpfen. Auf Grund der ernormen Anzahl freiwilliger Helfer hat SETI@Home die Möglichkeit, jedes Paket mehrmals auswerten zu lassen und so Fehler oder Betrugsversuche auszuschließen. Außerdem können inzwischen dank der vielen ausgewerteten Daten Radiosignale herausgefiltert werden, die eine konstante Position am Himmel einnehmen – leider entpuppt sich der Ursprung solcher bleibenden Signale meist als terrestrisch. Die SETI-Software läuft unter Linux standardmäßig im Textmodus, mit der Option -graphics können die Ergebnisse aber an das grafische xsetiathome weitergeben werden. Falls SETI@Home permanent im Hintergrund laufen soll, ist außerdem die Option -nice 19 nützlich, welche die Priorität des Programms heruntersetzt. “Nice” deshalb, weil der Client anderen Programmen aus “Freundlichkeit” den Vortritt beim Rechnen lässt. Neben xsetiathome existieren unzählige Programme, die die Ergebnisse grafisch aufarbeiten und zum Beispiel in das KDE-Panel einbinden können. Finden lassen sich solche Programme zum Beispiel über Freshmeat [2].
Knack den Code
Distributed.net [3] arbeitet gleichzeitig an mehreren mathematischen Aufgaben und kann im Gegensatz zu SETI@Home auch schon auf einige erfolgreich gelöste Probleme zurückblicken. So konnte das Projekt mit DES bzw. CSC verschlüsselte Nachrichten in Rekordzeit knacken. Aktuell nimmt Distributed.net am RC5-64 Wettbewerb teil – im Gegensatz zu den vorangehenden Wettbewerben müssen bei diesem Wettbewerb statt 2
56maximal 2
64mögliche Schlüssel getestet werden, was einen enormen Rechenaufwand bedeutet. Den richtigen Schlüssel auf Anhieb zu finden, ist wesentlich unwahrscheinlicher als sechs Richtige im Lotto – während man vom Blitz getroffen wird. Allerdings hat man die Möglichkeit, das Preisgeld von maximal $ 2000 auch tatsächlich auszugeben. Der Rest des von RSA ausgeschriebenen Preisgeldes verteilt sich auf Distributed.net, eine wohltätige Organisation und – falls man einer angehört – die eigene Distributed.net-Gruppe.
Das zweite aktive Projekt bei Distributed.net sucht nach einem optimalen Golomb-Maßstab mit 24 bzw. 25 Zahlen. Diese Zahlen dürfen nicht negativ sein und keines der möglichen Zahlenpaare darf die selbe Differenz aufweisen. Optimal wird der Golomb-Maßstab, wenn er – auf einem Zahlenstrahl dargestellt – so kurz wie möglich ist. Anwendungen finden die entdeckten Maßstäbe vor allen Dingen in der Kombinatorik oder im Zusammenhang mit Interferenzphänomenen.

Abbildung 2: Auf einem Golomb-Maßstab hat jeder der möglichen Abstände zwischen zwei Zahlen eine andere Länge
Auch Distributed.net arbeitet mit einem Client für die Konsole, ist aber gegenüber SETI@Home standardmäßig sparsamer, was Bandbreite und Rechenzyklen angeht. Konfiguriert wird das Programm nach dem ersten Start oder manuell mit der Option -config – hier lassen sich unter anderem Prioritäten für die verschieden Projekte und die Größe der zu bearbeitenden Pakete verändern. Via -install kann sich das Programm außerdem automatisch in /etc/init.d/ und die entsprechenden Runlevel eintragen, wodurch es bei jedem Systemstart automatisch aktiviert wird, bis man es mit -uninstall wieder entfernt.
Mehr Mathematik: Primzahlen
Auch GIMPS [4] beschäftigt sich mit Mathematik, genauer gesagt mit Primzahlen. Gesucht sind Primzahlen der Form 2
p-1, wobei p auch eine Primzahl ist. Primzahlen dieser Form heißen nach einem französischen Mönch und Mathematiker “Mersenne-Primzahlen”. Auch hier gibt es einen Geldpreis der Electronic Frontier Foundation für die erste Primzahl mit mindestens 10 Millionen Stellen zu gewinnen. Allerdings ist GIMPS nicht das einzige Projekt, das sich mit großen Primzahlen beschäftigt, und man braucht sehr viel Rechenzeit, um eine zu finden bzw. zu überprüfen.
Noch einen kryptographischen Wettbewerb mit mageren Gewinnchancen hat das ECCp-109 Projekt [5] in Angriff genommen. Im Gegensatz zu RC5-64 handelt es sich allerdings nicht um einen symmetrischen sondern um einen asymmetrischen (Public-Key) Algorithmus auf Basis elliptischer Kurven, bei dem ein öffentlicher und ein geheimer Schlüssel existieren. Chiffren, die mit elliptischen Kurven arbeiten, haben gegenüber traditionellen Verfahren wie RSA oder Elgamal, wie sie in PGP bzw. GPG eingesetzt werden, den Vorteil von kürzeren Schlüsseln und höherer Geschwindigkeit, sind aber noch nicht so umfassend erforscht worden.
Schach mit Cluster-Power
Erfolge von Computern wie Deep Blue oder Deep Fritz, der im Oktober mit acht Prozessoren gegen den amtierenden (BGN-) Schachweltmeister Wladimir Kramnik antreten soll, haben gezeigt, dass Computer mit entsprechender Leistung kaum noch zu schlagen sind. Die Möglichkeiten eines leistungsstarken Schachcomputers erforscht auch das noch relativ junge Chessbrain-Projekt [6], welches kürzlich das erste von vier angesetzen Entwicklungsstadien erreichte. Allerdings soll Chessbrain erst nach Phase 3 zu einem wirklich starken Schachgegner werden – momentan wird noch primär an der verteilten Infrastruktur gearbeitet. Interessant an diesem Projekt ist der Einsatz des Protokolls SOAP, um Daten zu den Clients – den sogenannten PeerNodes – zu übertragen. Da SOAP inzwischen auch von FlashMX verarbeitet werden kann, bietet Chessbrain neben der PeerNode-Software auch einige Viewer auf Basis von Flash oder zum Beispiel PHP, mit denen sich das aktuelle Spiel verfolgen lässt. Selbst am Projekt teilzunehmen, ergibt allerdings nur mit einer Flatrate Sinn, da die PeerNode ständig auf den Server zugreift.
Proteine
Auch aus der Medizin sind Supercomputer inzwischen nicht mehr wegzudenken und spielen auch nach der Entschlüsselung des menschlichen Genoms eine enorme Rolle in der Genforschung. Die Erforschung von Proteinen und den entsprechenden Gensequenzen ist das Ziel der beiden Partnerprojekte Folding@Home [7] und Genome@Home [8], die kürzlich in einem Client vereint wurden. Folding@Home beschäftigt sich speziell mit dem Faltprozess der Proteine, dessen Entschlüsslung nicht nur der Medizin, sondern möglicherweise auch der Nanotechnik zu neuen Durchbrüchen verhelfen könnte. Genome@Home dagegen geht von einer bekannten Proteinstruktur aus und versucht, passende Gensequenzen zu berechnen, wodurch sich möglicherweise Rückschlüsse auf andere Gensequenzen ziehen lassen. Obwohl Genome@Home in den neuen Folding@Home-Client integriert wurde, ist es möglich, nur an ersterem Projekt zu arbeiten, indem man eine bestehende Genome@Home-Teamnummer (über 100.000) angibt. Außerdem wird der alte Client unter dem Namen Genome@Home Classic weiter gepflegt. Bevor der gemeinsame Client allerdings seinen Dienst aufnimmt, muss er mit
chmod +x FAH3Console-v312-Linux.exe
ausführbar gemacht werden.
Ein weiteres Projekt, das sich mit Proteinen auseinandersetzt, ist Distributed Folding [9]. Allerdings ist die Vorgehensweise etwas anders als bei Folding@Home – Distributed Folding konzentriert sich eher auf die Vorhersage von Proteinstrukturen als auf das eigentlich Falten. Gerade der Faltprozess kann aber Aufschlüsse über einige Krankheiten wie Alzheimer oder Creuzfeldt Jacob geben, die möglicherweise im Zusammenhang mit falsch gefalteten Proteinen stehen.
Während viele der bereits beschriebenen Projekte unter Windows als mehr oder weniger schön anzusehende Bildschirmschoner daherkommen, muss man sich unter Linux mit drögen Text-Interfaces zufriedengeben, die nur ab und zu kryptische Aussagen zu ihrem Fortschritt machen. Eine Ausnahme bildet hier der Bildschirmschoner Electric Sheep [10], der – wie auch der Film Blade Runner – von Philip K. Dicks Buch “Do Androids Dream of Electric Sheep” inspiriert wurde. Natürlich träumen Computer nicht von gewöhnlichen Schafen, sondern nutzen ihre Rechenleistung, um animierte fraktale Flammen zu berechnen. Diese werden an einen zentralen Server geschickt, der die fertige Animation wiederum als MPEG-Video an alle Electric-Sheep-Bildschirmschoner leitet. Leider grenzt das entstehende Datenvolumen den Benutzerkreis auf die Besitzer von DSL-Flatrates oder vergleichbaren Internetverbindungen ein. Im Gegensatz zu anderen Projekten stellt Electric Sheep neben dem Quelltext auch RPMs bereit, die den Bildschirmschoner direkt in das GNOME-Kontrollzentrum integrieren. Ohne GNOME kann Electric Sheep mit folgender Zeile unter “programs:” in “~/.xscreensaver” aktiviert werden:
"ElectricSheep" electricsheep \n\
Cron einrichten
Cron kann andere Programme jeweils zu bestimmten Tageszeiten starten und beenden, wobei sich die vom Daemon verwalteten Aufgaben mit crontab -e ändern lassen. Dieses Kommando lädt einen Text-Editor, der in den Umgebungsvariablen $VISUAL oder $EDITOR angegeben ist und mit export EDITOR=editor geändert werden kann. Der folgende Eintrag startet jeden Tag um 20 Uhr ein Programm und beendet es wieder um 9. Die Zeichenkette 2>&1 >/dev/null leitet alle Ausgaben des Programms ins Nichts, da Cron sie sonst per E-Mail an jeweiligen Benutzer schickt. Wenn statt des Zeitschemas “@reboot” angegeben wird, kann Cron ein Programm direkt beim Booten starten – weitere Informationen zum Crontab-Format finden Sie über man 5 crontab.
00 20 * * * cd VERZEICHNIS; ./CLIENT 2>&1 >/dev/null 00 9 * * * killall CLIENT




