zurück zum Artikel

Anleitung: Mit Folding@home für die Suche nach Coronavirus-Medikamenten rechnen

| Benjamin Kraft, Christof Windeck, Mark Mantel

Das Rechenprojekt Folding@home bündelt verteilte Rechenleistung für die Forschung. Derzeit geht es vor allem um das Coronavirus – und jeder kann mitmachen.

Folding@home taucht zurzeit regelmäßig in den Schlagzeilen auf: Privatnutzer stellen Forschern die Rechenleistung ihrer PCs für Simulationen zur Verfügung – und das in beträchtlichen Mengen, denn inzwischen summiert sich deren Gesamtleistung auf mehr Rechenleistung, als die schnellsten Supercomputer der Welt einzeln.

Mit diesen Berechnungen können Forscher ihre Untersuchungen beschleunigen, insbesondere wenn sie ohne Folding@home nicht kurzfristig an ausreichend Rechenleistung kämen. Die Nutzerzahlen von Folding@home explodierten in den vergangenen Wochen durch die Verbreitung des Coronavirus SARS-CoV-2 und der dadurch ausbrechenden Krankheit Covid-19. Denn PCs können beispielsweise simulieren, wie sich verschiedene Wirkstoffe auf das Spike-Protein des Virus zum Andocken an Hostzellen theoretisch verhalten. Das grenzt die Praxisversuche der Forscher auf Dutzende bis Hunderte statt Tausende Wirkstoffe ein, die in der Pandemie zum Einsatz kommen könnten.

Wir gehen in diesem Artikel auf die Hintergründe ein und erklären, wie Sie Folding@home bei sich einrichten können. Denn: Auch wenn Nutzer selten unmittelbare Ergebnisse ihrer Berechnungen sehen, helfen diese langfristig bei der Forschung. Aus diesem Grund haben wir Team Heise Falter gegründet, in dem Systeme aus der c’t-Redaktion sowie Privatrechner einiger Redakteure mitrechnen. Mit von der Partie sind im Verlag unter anderem:

Wer die Installation des Folding@home-Clients bereits kennt, kann mit der Teamnummer 251999 den Heise-Faltern beitreten [1]. Alle Neulinge finden hier auf Seite 3 und 4 eine Anleitung für Windows, macOS und Linux.

Mehr Infos

x

Das Distributed-Computing-Projekt Folding@home (F@H) macht die Rechenleistung privater PCs schon seit fast 20 Jahren für Forscher nutzbar. Vorrangig geht es dabei um die Faltung von Proteinmolekülen, daher das "Folding" im Projektnamen. Und "@home" steht für das verteilte Rechnen: Viele der teilnehmenden Computer stehen in den Privathaushalten ihrer jeweiligen Besitzer. Über eine Client-Software, die es unter anderem für Windows, Linux und macOS gibt, verteilen die Server des von der US-Uni Washington geleiteten F@H-Projekts die Rechenarbeit häppchenweise. Via Internet bekommt jeder Client eine sogenannte Work Unit (WU), die er dann abarbeitet. Ist er damit fertigt, schickt die Client-Software das Ergebnis zurück und bekommt eine neue WU.

Um mehr Menschen zum Mitmachen zu bewegen, hat sich F@H ein Bonus- und Anreizsystem ausgedacht. Einerseits gibt es Bonuspunkte für die gespendete Rechenleistung, andererseits eine Rangliste; außerdem können Teilnehmer mehrere Computer unter ihrem Konto einbinden und sich mit anderen zu Teams zusammenschließen. Viele solcher Teams wetteifern miteinander um höchste Bonus-Punktzahlen [2] – für den guten Zweck.

Die Rechenaufgaben zur Simulation der Proteinfaltung lassen sich gut in viele kleine Päckchen alias WUs packen, verteilen und wieder einsammeln. Die aktuelle Client-Version 7 enthält zwei verschiedene Simulations-Softwarepakete, die Forscher für ihre Projekte nutzen können: Die sogenannten Cores [3]. Der Core a7 läuft auf Prozessorkernen und basiert auf der Software Gromacs [4], die viele CPU-Kerne und, falls vorhanden, deren AVX-Erweiterungen nutzt. Der Core 22 basiert auf OpenMM [5] und läuft als OpenCL-Code auf Grafikkarten.

Laut dem F@H-Forum [6] gibt es Covid-19-Projekte sowohl für CPU-Kerne (Gromacs: Projektnummern 13862, 13863, 14328, 14329, 14337, 14528 bis 14531, 14572, 14574, 14576 und 14600 bis 14602) als auch für Grafikkarten (OpenMM-Projekte 11741 bis 11781). Diese Covid-19-Projekte haben derzeit höchste Priorität. Man kann aber nirgends einstellen, sich ausschließlich an Coronavirus-Projekten zu beteiligen.

Stand 2.4.20, 10:45 Uhr befanden sich die Heise Falter auf Platz 2294 von 247.057.

Stand 2.4.20, 15:25 Uhr befanden sich die Heise Falter auf Platz 2124 von 247.057 (mit im Screenshot: die fünf Teammitglieder mit den höchsten Punkten).

(Bild: Mark Mantel / heise online)

F@H rechnet nur mit einfach genauen Gleitkommazahlen (32-Bit Floating Point, FP32); das "doppelte genaue" FP64-Format wird derzeit nicht genutzt. Das kommt den typischen Gaming-Grafikkarten entgegen, deren FP64-Performance meistens sehr gering ist.

Laut F@H nutzt man derzeit insgesamt rund 768 PetaFlops (PFlops) an verteilter FP32-Rechenleistung, das ist mehr als die stärksten Top500-Rechner liefern. Allerdings sind Supercomputer auf FP64-Genauigkeit mit komplexeren Zahlen ausgelegt. Der (noch) schnellste Supercomputer der Welt, Summit genannt, kommt im Linpack-Benchmark auf einen Spitzenwert von etwa 200 FP64-PetaFlops. Die verbauten Tesla-V100-Beschleunigerkarten von Nvidia weisen ein 2:1-Verhältnis zwischen den Datenformaten FP32 und FP64 auf, würden theoretisch also 400 FP32-PetaFlops schaffen.

Meldungen, dass F@H die ExaFlops-Marke durchbrochen hätte, sind rein theoretischer Natur: Für die Aussagen wurden „x86-Flops“ herangezogen, die angeben sollen, wie viele Rechenzyklen die GPU-Aufgaben auf einem Prozessor benötigen würden. Demnach würde Summit 800 "x86-PetaFlops" stemmen.

Derzeit werden die F@H-Macher von freiwilligen Helfern geradezu überrannt. Es gibt Server-Probleme, sodass die bereitgestellte Rechenleistung nicht immer in vollem Umfang genutzt werden kann. Im Support-Forum versprechen die F@H-Admins Besserung [7] und helfen bei Problemen; die Server-Kapazitäten zur Verteilung der Rechenpakete hat das Projekt seit März verdoppelt.

Wer sich an F@H beteiligt, spendet nicht nur Rechenleistung, sondern auch Stromkosten. Selbst flotte Notebooks ziehen unter Volllast durchaus 50 Watt aus der Steckdose, starke Gaming-Rechner auch 150 Watt oder gar mehr. Das kann bei Rund-um-die-Uhr-Betrieb zu erheblichen Stromkosten führen: Stromkosten mal Leistungsaufnahme mal Betriebszeiten.

Im 50-Watt-Beispiel ergibt das bei 30 Cent pro Kilowattstunde etwa 36 Cent pro Tag, also umgerechnet rund 11 Euro im Monat oder 130 Euro im Jahr. Beim 150-Watt-Boliden können knapp 400 Euro im Jahr anfallen. Nun wird zwar kaum jemand einen solchen Rechner ständig durchlaufen lassen, aber man sollte zumindest an die Stromrechnung denken.

Die Installation des Folding@home-Clients bereitet unter Windows keine Probleme. Der Client spannt alle CPUs und GPUs ein, die Sie ihm geben. Wie viel Rechenzeit er bekommt, legen wir später fest. Zur Vorbereitung sollten Sie prüfen, dass ihr System auf dem aktuellen Stand ist – heißt: alle Treiber aktuell und das Betriebssystem durchgepatcht – und stabil läuft. Auf Overclocking reagiert F@H empfindlich, speziell zu aggressive Memory-Timings lassen die Faltsimulation abbrechen, weil die Anwendung einen Fehler entdeckt.

Von der Projektseite [8] laden Sie sich den aktuellen Client herunter, die neuste Version zum Zeitpunkt der Veröffentlichung heißt fah-installer_7.5.1_x86.exe [9]. Diese selbstausführende Datei installieren Sie wie jedes andere Programm. Für die meisten Anwender ist die Expressinstallation die richtige Wahl. Wer die Pfadangaben und die Startart ändern möchte, wählt das benutzerdefinierte Setup. Wie Sie den Client einrichten, lesen Sie im Abschnitt Allgemeines und Einrichtung.

Installation Folding@home unter Windows (15 Bilder) [10]

[11]
Schritt 1: Starten Sie die Exe und klicken Sie auf "Next".
(Bild: Benjamin Kraft / c't)


Auf dem Mac kann der Folding@home-Client nur CPU-Kerne nutzen; AMD-GPUs oder Intels CPU-Grafik spannt er nicht mit ein und aktuelle Macs haben keine Nvidia-Chips. Der Client ist im Handumdrehen eingerichtet. Laden Sie die aktuelle Version von der FAH-Seite [12] herunter und erlauben dem Browser, den gepackten Download gleich mit dem Archiv-Tool oder ihrem Lieblingsentpacker ins Downloadverzeichnis zu dekomprimieren. Von dort starten Sie den eigentlichen Installer. Wenn Sie bestimmte Komponenten abwählen wollen, etwa den inzwischen nutzlosen FAHViewer, können Sie das über die Schaltfläche "Anpassen" erledigen.

Ob sie den Installer anschließend behalten, liegt bei Ihnen. Ist die Installation abgeschlossen, startet sich der Client im Hintergrund selbst und möchte konfiguriert werden. Wie Sie den Client einrichten, lesen Sie im Abschnitt Allgemeines und Einrichtung.

Installation Folding@home unter macOS (7 Bilder) [13]

[14]
Schritt 1: Starten Sie die Installation und klicken Sie auf "Fortfahren".
(Bild: Benjamin Kraft / c't)

Ab hier sind die Schritte für Windows, macOS und zum Teil auch Linux identisch: Nach Abschluss der Installation respektive beim ersten Start öffnet der Client ein Browserfenster, in dem die Sie ihre Daten eingeben: Ins erste Feld kommt der frei wählbare Benutzername. Achtung: Wenn Sie Ihren Namen ändern, bleiben die bisher erzielten Punkte mit dem alten Namen verknüpft. Sie können Sie nicht mitnehmen und beginnen quasi von vorn. Außerdem achtet der Client penibel auf Groß- und Kleinschreibung. Für ihn sind also „alterFalter“ und „AlterFalter“ zwei Nutzer. Geben Sie den Namen also auf allen Rechnern, die Sie an die Falt-Front schicken, identisch ein.

Möchten Sie sich einem Team anschließen, geben Sie dessen Nummer im nächsten Feld ein. Die Heise Falter haben die Teamnummer 251999 und bringen bereits einiges an Hardware an den Start (s. Seite 1).

Ins letzte Feld können Sie einen Passkey eintragen, den Sie sich hier besorgen können [15]. Er ist zwar optional, bietet aber einige Vorteile. Zum einen ist er so etwas wie ein Fingerabdruck, mit dem sie gegenüber FAH beweisen können, dass eingereichte Work Units tatsächlich von Ihnen stammen – wie oben erwähnt kann jeder unter Ihrem Namen falten und dann nachträglich Einheiten für sich reklamieren. Deshalb dürfen Sie den Passkey nicht weitergeben – aber natürlich auf allen Geräten eintragen, die für Sie rechnen. Denn jetzt kommt der zweite Vorteil: Jede Work Unit hat ein Ablaufdatum, vor dem sie durchgerechnet und eingereicht sein muss. Lädt ein Rechner mit Passkey ein Ergebnis früher hoch, bekommen Sie Bonuspunkte für die frühe Abgabe.

Haben sie alle Daten eingegeben, holt sich der Client sein erstes Arbeitspaket und legt los.

Die ersten Schritte können Sie gleich im Browserfenster machen, das der Client bei Windows und macOS nach der Installation geöffnet hat und das auch beim manuellen Client-Start aufgeht. Hier können Sie den Rechenfortschritt sehen, den Client mit dem großen Taster starten und stoppen sowie einfache Anpassungen vornehmen. Durch einen Klick auf "Change Identity" können Sie ihren Namen, die Teamzugehörigkeit oder den Passkey ändern.

Mit dem Schieberegler unter "Power" legen Sie fest, wie viele Rechenressourcen sich FAH greift, "When" legt fest, ob nur gefaltet werden soll, wenn der Rechner sonst nichts tut ("Only when idle") oder immer ("While I’m working").

Deutlich mehr Einstellmöglichkeiten bietet das Tool FAHControl, mit dem Sie den Client steuern, detailliert Einstellungen anpassen und den Fortschritt des lokalen Rechners im Auge behalten können. Die Installer für Windows und macOS bringen FAHControl gleich mit; Linux-User müssen ein separates Paket installieren, das auf aktuellen Distributionen aber nicht läuft. Weiteres dazu steht im Abschnitt Folding@home auf Linux installieren.

Die Steuerung über die Schaltflächen gelingt intuitiv: Mit "Fold" legt man los, Pause hält den Faltvorgang vorübergehend an, "Finish" weist den Client an, die aktuelle Work Unit zu Ende zu rechnen, ohne Nachschub zu besorgen. Der Schieberegler daneben hat dieselbe Funktion wie jener im Browserfenster: die Rechenleistung ihres Systems rationieren.

Unter diesem Bedienfeld sehen Sie ihren Namen und Ihre Team-Nummer. Ein Klick auf einen der beiden Einträge öffnet die jeweilige Statistik-Seite, die die Anzahl der abgegebenen Work Units und den aktuellen Platz unter den Mitfaltern zeigt. Darunter finden Sie die Liste der verfügbaren Falt-Slots, geordnet nach ID, sowie deren Status und was für Hardware der Slot enthält. Rechts daneben stehen detaillierte Informationen zu der aktuellen Work Unit.

Um die Konfiguration anzupassen, klicken Sie in der oberen rechten Ecke des Fensters auf "Configure". Unter Identity können Sie ihren Nutzernamen, ihre Teamzugehörigkeit oder ihren Passkey ändern. Unter Slots fügen sie zusätzliche Ressourcen hinzu oder teilen bestehende neu auf. Jede Grafikkarte braucht einen eigenen Slot, den Sie mit "Add" anlegen. Im Fenster, das sich dann öffnet, wählen Sie das leere Pünktchen vor dem Bereich "GPU" und bestätigen dann mit "OK" und "Save". Danach sollte der Client schon nach neuer Arbeit für die GPU suchen.

Bei Vielkern-CPUs wie einem Ryzen Threadripper 3990X mit 64 Kernen und 128 Threads kann es sinnvoll sein, mehr als einen CPU-Slot anzulegen. Manche Work Units lassen sich nur auf eine maximale Anzahl von Threads verteilen; wie viele, das weiß der Client leider nicht. Deshalb teilt man seine Ressourcen auf. Die CPU-Anzahl lässt man auf -1.

Noch ein Tipp: Wenn Sie den Faltprozess manuell anstoßen möchten, legen Sie in der Konfiguration der Slots unten im Feld "Extra slot options (expert only)" über die Schaltfläche "Add" den Schalter "pause-on-start" mit dem Wert "true" an. Ansonsten fängt Folding@home nach dem Start automatisch an.

Über FAHControl > Configure > Slots können Sie bestimmen, dass der Faltprozess manuell angestoßen werden muss. Dazu auf "Add" klicken, als Namen "pause-on-start" eingeben und den Wert auf "true" setzen.

Über FAHControl > Configure > Slots können Sie bestimmen, dass der Faltprozess manuell angestoßen werden muss. Dazu auf "Add" klicken, als Namen "pause-on-start" eingeben und den Wert auf "true" setzen.

(Bild: Benjamin Kraft / c't)


Anmerkung: Durch die Fülle an Linux-Distributionen ist es schwierig, eine allgemeingültige Anleitung zu geben. Wir haben es mit Ubuntu 19.10 und Fedora 31 ausprobiert.

An sich ist die Installation des FAH-Clients unter Linux beinahe noch einfacher als bei den anderen Betriebssystemen. Auch hier ist die Download-Seite [16] erste Anlaufstelle, dort laden Sie das Paket herunter, das zu ihrer Distribution passt. Bei Debian und seinen Derivaten wie Ubuntu oder Mint ist das ein .deb, Redhat und die eng verwandten Distros CentOS und Fedora brauchen ein .rpm.

Nach dem Download öffnen Sie das Paket mit der jeweiligen Paketverwaltung und installieren es. Bei Ubuntu fragt der Installer während des Setups Ihre Daten ab, also ihren Nutzernamen, die Teamnummer und den Passkey. Das war‘s schon. Bei Fedora klappte das leider nicht; hier gehen Sie über den Web-Konfigurator, den Sie im Browser unter client.foldingathome.org erreichen.

Das hilfreiche FAHControl lässt sich derzeit auf nicht auf aktuellen Distributionen installieren. Es verlangt Python 2.6, das derzeit weder bei Fedora 31 noch bei Ubuntu 19.04 und 19.10 zum Installationsumfang gehört. Auf der FAH-Seite wird zwar ein Workaround beschrieben, aber auch der funktioniert nicht mehr. Wir raten davon ab, sich die alten Python-Pakete aus freien Repositories zu besorgen, denn es gibt auch andere Möglichkeiten.

Wer nur mit der CPU falten möchte und Snap benutzt, hat es besonders einfach: Es gibt nämlich ein Snap-Paket, das den FAHClient sowie alle notwendigen Zutaten für FAHControl mitbringt.

Achtung! Wenn sie das FAH-Snap nutzen wollen, dürfen Sie den Client nicht separat installieren. Sonst haben sie zwei Instanzen auf dem Rechner, die sich in die Quere kommen können, auf jeden Fall aber um die Ressource konkurrieren.

Ubuntu führt das Snap-Paket in seiner Softwaresuche. Alternativ können Sie es im Snap-Store herunterladen oder holen es sich mit dem Befehl snap install folding-at-home-fcole90. Auch hier werden Sie bei der Ersteinrichtung nach Ihren Daten gefragt und der Client rechnet los. Passiert das nicht, sollten Sie das über FAHControl nachholen, in dem sie dem Client auch alle weiteren Kommandos und Einstellungen geben (siehe Abschnitt Konfiguration für Fortgeschrittene auf Seite 2). Größter Nachteil: Der FAHClient im Snap erkennt keine GPUs, egal ob sie Nvidias CUDA oder wie AMD-Karten OpenCL nutzen.

Damit der von der Projektseite installierte FAH-Client Grafikkarten zum Rechnen nutzen kann, muss man in der Konfigurationsdatei einen Eintrag ändern. Läuft auf Ihrem System FAHControl, können Sie darüber einen GPU-Slot hinzufügen. Andernfalls müssen Sie das händisch erledigen, indem sie config.xml in /etc/fahclient bearbeiten.

Dazu benötigen Sie Super-User-Rechte. Öffnen Sie also die Datei über die Kommandozeile beispielsweise im Editor nano per sudo nano /etc/fahclient/config.xml und suchen Sie nach der Zeile <gpu v='false'/> ändern sie auf 'true'. Außerdem müssen Sie im Abschnitt <!-- Folding Slots --> einen Slot hinzufügen, der folgendermaßen aussieht: <slot id='X' type='GPU'/>, wobei X die nächsthöhere Zahl nach der des vorigen Slots ist. Nun Speichern Sie mit Strg-X und bestätigen die Änderungen.

Sind noch keine passenden OpenCL- oder CUDA-Treiber installiert, findet der Client trotzdem noch keine passenden Rechenbeschleuniger. Bei GeForce-Karten ist die Sache einfach. Besorgen Sie sich über die Softwareverwaltung Ihrer Distribution die aktuellen Nvidia-Treiber. Nach dem Neustart sollte der FAHClient sie als CUDA-Devices erkennen und Arbeit erhalten.

An manchen unserer Rechner trat allerdings anschließend das Problem auf, dass wir uns über die Anmeldemaske nicht mehr einloggen konnten; ein Login per Konsole gelang indes. In dem Fall müssen Sie von der Konsole aus mit Nutzerrechten die Konfiguration des Bootloaders Grub mit sudo nano /etc/default/grub bearbeiten. Hier suchen Sie die Zeile GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" und löschen das "splash". Nun speichern und beenden Sie mit Strg-X, führen anschließend auf der Kommandozeile sudo update-grub aus und machen einen Neustart. Danach sollte es wie gewohnt klappen.

AMD-GPUs brauchen das Paket AMDGPU-PRO, eigentlich nur die OpenCL-Pakete daraus. Mit Fedora 31 gelang es uns nicht, die Treiber zu installieren, hier traten unauflösbare Abhängigkeiten auf. Den Test mit Ubuntu haben wir aus Zeitgründen noch nicht geschafft. Das holen wir nach und liefern die Anleitug aber schnellstmöglich nach. (mma [17])


URL dieses Artikels:
https://www.heise.de/-4694993

Links in diesem Artikel:
[1] https://stats.foldingathome.org/team/251999
[2] https://stats.foldingathome.org/teams
[3] https://en.wikipedia.org/wiki/List_of_Folding@home_cores
[4] http://www.gromacs.org/
[5] http://openmm.org/
[6] https://foldingforum.org/viewtopic.php?f=83&t=32463
[7] https://foldingforum.org/viewtopic.php?f=83&t=33193
[8] https://foldingathome.org/iamoneinamillion/
[9] https://foldingathome.org/start-folding/
[10] https://www.heise.de/bilderstrecke/bilderstrecke_4695720.html?back=4694993
[11] https://www.heise.de/bilderstrecke/bilderstrecke_4695720.html?back=4694993
[12] https://foldingathome.org/iamoneinamillion/
[13] https://www.heise.de/bilderstrecke/bilderstrecke_4695739.html?back=4694993
[14] https://www.heise.de/bilderstrecke/bilderstrecke_4695739.html?back=4694993
[15] https://apps.foldingathome.org/getpasskey
[16] https://foldingathome.org/iamoneinamillion/
[17] mailto:mma@heise.de