Distributed Computing: ungenutzte Rechenzeit spenden
In unseren Wohnzimmern und Kinderzimmern schlummern ungeahnte Rechenkräfte. Von Monat zu Monat werden unsere PCs schneller und schneller. Immer beeindruckendere Leistungen vollführen CPU, RAM und Grafikkarte. Und trotzdem benutzt ein Großteil der Anwender den PC nach wie vor als bessere Schreibmaschine, die 99% der Zeit völlig unausgelastet ist. Das muss nicht so sein - ungenutzt Rechenzeit kann an gemeinnützige wissenschaftliche Projekte gespendet werden.
Das Zauberwort heißt "Distributed Computing" - oder auf deutsch verteiltes Rechnen. Dabei wird ein kleines Dienstprogramm, das im Hintergrund läuft, auf dem PC installiert. Es läuft mit niedrigster Priorität. Das bedeutet, dass nur Rechenressourcen genutzt werden, die zur Zeit von keinem anderen auf dem PC laufenden Programm beansprucht werden. So nutzt das Programm nur "brachliegende" Rechenzeit und verlangsamt den PC nicht.
Das erste wirklich populäre Projekt dieser Art war SETI@Home, das sich der Suche nach Außerirdischen verschrieben hat. Dazu wurden die vom SETI-Projekt empfangenen Signale nach Regelmäßigkeiten, die auf Intelligenz hindeuten könnten, untersucht.

Der aktuelle Bildschirmschoner des SETI@Home-Clients. Bildquelle: Wikipedia
Das von der NASA und der Universität Berkeley 1999 initierte Projekt war vor allem auch deshalb so erfolgreich, weil es die Daten nicht einfach nur berechnen ließ, sondern sie beispielsweise über einen Bildschirmschoner, auch grafisch schön aufbereitete.
Ich persönlich sah im Knacken von Codes aus politischen Gründen noch einen Sinn, weshalb ich mich an distributed.net beteiligte - die Suche nach Außerirdischen in der von uns wahrnehmbaren direkten Umgebung halt ich persönlich jedoch für recht aussichtlos, weshalb mich das das verteilte Rechnen erst wieder interessierte, als die medizinische Forschung das Thema entdeckte. Mit Projekten wie "FightAIDS@Home" oder "Folding@Home" wurden sehr aufwendige Berechnungen medizinischer Forscher auf freiwillig teilnehmende Heimcomputer ausgelagert, die beispielsweise die sehr rechenaufwendige Struktur von Proteinen aufspalten und so neue Erkenntnisse zutage fördern sollten, die irgendwann in neuen Medikamenten resultieren könnten. Das Problem aus meiner Sicht war hier:
1. Viele der Clients waren keine Freie Software. Das bedeutete z.B., das ihr Quellcode nicht offen lag und somit niemand wusste, was die Programme genau taten. Für Fremdprogramme auf dem eigenen Rechner, die ständig über das Internet kommunizieren, nicht gerade eine gut Voraussetzung.
2. Geforscht haben nicht nur Universiäten, sondern auch Pharmaunternehmen. Und die schrieben in ihren Vertragsbedingungen klipp und klar, dass alle aus den Berechnungen folgenden Forschungsergebnisse allein ihnen gehörten. Eventuelle Erkenntnisse sollten patentiert und die Medikamente teuer verkauft werden.
Ich beteilige mich momentan an einem Projekt des GSF-Forschungszentrums für Gesundheit und Umwelt in Neuherberg bei München, der Technischen Universität München und Wissenschaftszentrum Weihenstephan Namens SIMAP. Dabei geht es um die Berechnung von Proteinähnlichkeiten, die Hinweise auf die Verwandschaftsverhältnisse zwischen Proteinen geben und sich für die medizinische Forschung der Bioinformatik als nützlich erweisen könnten.
Da der Berechnungsaufwand für eine solche Matrix quadratisch mit der Größe der Matrix steigt, sind unsere internen Resourcen (gridengine-cluster unter Linux) schon lange nicht mehr ausreichend. Daher haben wir einen boinc-client implementiert, der auf den Quellen von FASTA aufbaut, eines heuristischen Programms zur Sequenzähnlichkeitssuche. Diesen client gibt es nun seit ca. einem Jahr, wir haben ihn bislang umfassenden Tests unterzogen.
Quelle: boinc.bio.wzw.tum.de
Die Ergebnisse der Forschung stehen allen Wissenschaftlern weltweit kostenlos zur Verfügung.
Im folgenden möchte ich noch exemplarisch die Installation und Nutzung des BOINC-Clients unter Microsoft Windows und Ubuntu Linux beschreiben.
Die zwei unter Ubuntu Linux benötigten Pakete heißen boinc-client und boinc-manager und befinden sich in universe. Die Paketquellen für universe müssen, falls das nicht sowieso der Fall ist, zunächst aktiviert werden. Wie das funktioniert steht hier. Danach die beiden Pakete wie hier beschrieben installieren. Der BOINC-Manager kann danach über Anwendungen -> Zubehör -> BOINC Manager aufgerufen werden. Das einstellen von Projekten funktioniert genau wie unter Windows (siehe unten). Der BOINC-Client wird standardmäßig mit jedem Systemstart automatisch mitgestartet, so lange er installiert ist.
- Wikipedia: Liste der Projekte verteilten Rechnens
- Wikipedia über die Berkeley Open Infrastructure for Network Computing
- www.boinc.de - umfassendes deutschsprachiges Portal zu BOINC
- Offizielle BOINC-Projektseite der Universität Berkeley
- Deutschsprachige Liste von BOINC-Projekten
- rechenkraft.net - größtes deutschsprachiges Portal zum Thema Verteiles Rechnen
- Podcast von devradio zum Thema
Das Zauberwort heißt "Distributed Computing" - oder auf deutsch verteiltes Rechnen. Dabei wird ein kleines Dienstprogramm, das im Hintergrund läuft, auf dem PC installiert. Es läuft mit niedrigster Priorität. Das bedeutet, dass nur Rechenressourcen genutzt werden, die zur Zeit von keinem anderen auf dem PC laufenden Programm beansprucht werden. So nutzt das Programm nur "brachliegende" Rechenzeit und verlangsamt den PC nicht.
Kurze Geschichte des verteilten Rechnens
Die Idee ist einfach und nicht neu: Würden nur all die brachliegende Rechenzeit unserer Heimcomputer genutzt werden, entspräche dies einer Rechenleistung, die die des schnellsten Supercomputer der Welt um ein Vielfaches übersteigen würde. Das erste mir bekannte Projekt, das die Rechenleistung ganz normaler PCs nutzen wollte, war das 1997 gegründete distributed.net. Damals ging es um das Knacken einer 56-Bit-Verschlüsselung. Die Regierung der USA erlaubte damals US-Bürgern und Unternehmen Software mit einer maximalen Verschlüsselungsstärke von 56 Bit ins Ausland zu exportieren, weil höhere Verschlüsselungsalgorithmen als "militärisch wichtig" eingestuft wurden. Das Projekt sollte beweisen, dass es selbst mit einem Netzwerk aus Heimcomputern möglich ist, einen 56-Bit-Schlüssel zu brechen. Dies gelang und die US-Regierung gab etwa um das Jahr 2000 auch höhere Verschlüsselungen für den Export frei, was z.B. darin resultierte, dass seit dem Browser aus den USA 128-Bit-SSL-Verschlüsselung auch für Ausländer erlauben. Davor wurde Surfern aus dem Ausland, die anhand der IP-Adresse identifiziert wurden, nur eine abgespeckte Version beispielsweise des Internet Explorers oder des Netscape Navigators angeboten.Das erste wirklich populäre Projekt dieser Art war SETI@Home, das sich der Suche nach Außerirdischen verschrieben hat. Dazu wurden die vom SETI-Projekt empfangenen Signale nach Regelmäßigkeiten, die auf Intelligenz hindeuten könnten, untersucht.
Der aktuelle Bildschirmschoner des SETI@Home-Clients. Bildquelle: Wikipedia
Das von der NASA und der Universität Berkeley 1999 initierte Projekt war vor allem auch deshalb so erfolgreich, weil es die Daten nicht einfach nur berechnen ließ, sondern sie beispielsweise über einen Bildschirmschoner, auch grafisch schön aufbereitete.
Ich persönlich sah im Knacken von Codes aus politischen Gründen noch einen Sinn, weshalb ich mich an distributed.net beteiligte - die Suche nach Außerirdischen in der von uns wahrnehmbaren direkten Umgebung halt ich persönlich jedoch für recht aussichtlos, weshalb mich das das verteilte Rechnen erst wieder interessierte, als die medizinische Forschung das Thema entdeckte. Mit Projekten wie "FightAIDS@Home" oder "Folding@Home" wurden sehr aufwendige Berechnungen medizinischer Forscher auf freiwillig teilnehmende Heimcomputer ausgelagert, die beispielsweise die sehr rechenaufwendige Struktur von Proteinen aufspalten und so neue Erkenntnisse zutage fördern sollten, die irgendwann in neuen Medikamenten resultieren könnten. Das Problem aus meiner Sicht war hier:
1. Viele der Clients waren keine Freie Software. Das bedeutete z.B., das ihr Quellcode nicht offen lag und somit niemand wusste, was die Programme genau taten. Für Fremdprogramme auf dem eigenen Rechner, die ständig über das Internet kommunizieren, nicht gerade eine gut Voraussetzung.
2. Geforscht haben nicht nur Universiäten, sondern auch Pharmaunternehmen. Und die schrieben in ihren Vertragsbedingungen klipp und klar, dass alle aus den Berechnungen folgenden Forschungsergebnisse allein ihnen gehörten. Eventuelle Erkenntnisse sollten patentiert und die Medikamente teuer verkauft werden.
Situation heute
Die Situation hat sich inzwischen verbessert. Das SETI@Home-Projekt hat seine Software unter eine freie Lizenz gestellt und damit die Berkeley Open Infrastructure for Network Computing (BOINC) begründet, auf die inzwischen fast alle bekannten Projekte dieser Art zurückgreifen. Der BOINC-Client ist für eine Vielzahl von Plattformen wie Linux, Windows und Mac OS X verfügbar. Das Besondere: Weil immer mehr verteilte Rechenprojekte BOINC nutzen, ist es mit einem entsprechenden Client möglich an sehr vielen Projekten dieser Art gleichzeitig teilzunehmen und diese selbst zu priorisieren. Eine deutschsprachige Liste von Projekten, die BOINC nutzen, befindet sich hier. Dort ist auch kurz erklärt, was das Ziel der einzelnen Projekte ist und was sie genau berechnen. Darunter fallen z.B. Projekte zur Klimaforschung, mathematische Projekte, physikalische Grundlagenforschung und angewandte Physik.Ich beteilige mich momentan an einem Projekt des GSF-Forschungszentrums für Gesundheit und Umwelt in Neuherberg bei München, der Technischen Universität München und Wissenschaftszentrum Weihenstephan Namens SIMAP. Dabei geht es um die Berechnung von Proteinähnlichkeiten, die Hinweise auf die Verwandschaftsverhältnisse zwischen Proteinen geben und sich für die medizinische Forschung der Bioinformatik als nützlich erweisen könnten.
Da der Berechnungsaufwand für eine solche Matrix quadratisch mit der Größe der Matrix steigt, sind unsere internen Resourcen (gridengine-cluster unter Linux) schon lange nicht mehr ausreichend. Daher haben wir einen boinc-client implementiert, der auf den Quellen von FASTA aufbaut, eines heuristischen Programms zur Sequenzähnlichkeitssuche. Diesen client gibt es nun seit ca. einem Jahr, wir haben ihn bislang umfassenden Tests unterzogen.
Quelle: boinc.bio.wzw.tum.de
Die Ergebnisse der Forschung stehen allen Wissenschaftlern weltweit kostenlos zur Verfügung.
Im folgenden möchte ich noch exemplarisch die Installation und Nutzung des BOINC-Clients unter Microsoft Windows und Ubuntu Linux beschreiben.
Installationsanweisung für Windows
Die Installation des BOINC-Clients ist denkbar einfach. Man geht auf Download-Seite des BOINC-Projekts, lädt den Client für Windows herunter und führt den Installer aus. Ich empfehle die Option "Shared Installation". So wird der Client immer gestartet, egal wer sich einloggt. Danach muss nur noch ein Projekt angemeldet werden. Dies funktioniert unter Linux und Windows gleich. Überspringe also einfach das untere Linux-Installationskapitel und gehe gleich zum Kapitel "Projekt anmelden unter Windows und Linux".Installationsanleitung für Ubuntu Linux
Auch unter Linux ist es möglich die Binärdatei von der Downloadseite herunterzuladen und dann wie unter Windows vorzugehen. In vielen Linux-Distributionen ist der BOINC-Client allerdings schon in den Paketquellen enthalten und sollte über diese installiert werden. Das hat den Vorteil, das der Client regelmäßig über die Systemupdates aktualisiert wird und auch über die Paketverwaltung wieder sauber entfernt werden kann.Die zwei unter Ubuntu Linux benötigten Pakete heißen boinc-client und boinc-manager und befinden sich in universe. Die Paketquellen für universe müssen, falls das nicht sowieso der Fall ist, zunächst aktiviert werden. Wie das funktioniert steht hier. Danach die beiden Pakete wie hier beschrieben installieren. Der BOINC-Manager kann danach über Anwendungen -> Zubehör -> BOINC Manager aufgerufen werden. Das einstellen von Projekten funktioniert genau wie unter Windows (siehe unten). Der BOINC-Client wird standardmäßig mit jedem Systemstart automatisch mitgestartet, so lange er installiert ist.
Projekt anmelden unter Windows und Linux
Um an einem Projekt teilzunehmen, muss einfach die Adresse der Website des Projekts eingetragen werden. Im Falle von SIMAP also http://boinc.bio.wzw.tum.de/boincsimap/. Danach hat man die Möglichkeit einen neuen Account anzulegen oder einen bereits existierenden zu nutzen. Falls das anlegen eines Accounts direkt aus Programm heraus nicht funktionieren sollte, ist dies auch jeweils über die Projektseite möglich. Im Falle von SIMAP z.B. hier. Wenn der Account angelegt ist, beginnt der BOINC-Client gleich mit der Arbeit. Das Fenster kann nun geschlossenen werden, BOINC rechnet im Hintergrund weiter.Links
- Wikipedia über Verteiltes Rechnen allgemein- Wikipedia: Liste der Projekte verteilten Rechnens
- Wikipedia über die Berkeley Open Infrastructure for Network Computing
- www.boinc.de - umfassendes deutschsprachiges Portal zu BOINC
- Offizielle BOINC-Projektseite der Universität Berkeley
- Deutschsprachige Liste von BOINC-Projekten
- rechenkraft.net - größtes deutschsprachiges Portal zum Thema Verteiles Rechnen
- Podcast von devradio zum Thema
Hackmeck - 20. Aug, 15:00
7 Kommentare - Kommentar verfassen - 0 Trackbacks

