FAQ: Folding@home

FAQ Folding@home

Praxis & Tipps | FAQ

Das Projekt Folding@home (FAH) hilft dabei, Krebs oder Covid-19 besser zu verstehen. Dazu verteilt es Arbeitspakete an die Rechner der Teilnehmer.

Wer bekommt die Daten?

Das an der US-amerikanischen Stanford University begonnssene Folding@home-Projekt ist inzwischen an der Washington University School of Medicine in St. Louis beheimatet. Die Verantwortlichen versprechen, die gewonnenen Daten nicht zu verkaufen oder in irgendeiner Weise damit Geld zu verdienen, sondern die Ergebnisse der Forschung zur Verfügung zu stellen. Die Hoffnung: Die damit erledigte Grundlagenarbeit bei der Proteinfaltung führt zu neuen Medikamenten gegen die erforschten Krankheiten.

Ich möchte beim FAH-Projekt mitrechnen! Wie stelle ich die Rechenleistung meines Computers zur Verfügung?

Die Teilnahme ist ganz einfach: Sie installieren die Client-Software für Ihr Betriebssystem von der Folding@home-Seite. Clients gibt es für Windows, macOS und Linux. Unter den ersten beiden Betriebssystemen öffnet sich nach der Installation ein Browserfenster mit der vereinfachten Bedienoberfläche des FAH-Clients. In diese können Sie einen frei wählbaren Nutzernamen, eine Teamnummer und einen Passkey eingeben, müssen es aber nicht – mehr dazu unten. Bei Debian Linux sowie dessen Derivaten wie Ubuntu 19.10 oder Mint kommt die Abfrage schon während der Installation. Das neue Ubuntu 20.04 konnten wir aus Zeitgründen nicht mehr ausprobieren. Anschließend startet der Client von selbst im Hintergrund. Bei Fedora Linux faltet der Client anonym los; hier müssen Sie entweder manuell die Konfigurationsseite http://client.foldingathome.org im Browser aufrufen und dort Ihre Daten nach einem Klick auf „Change Identity“ eingeben oder FAHControl installieren.

Achtung! Spielen Sie die Software nur auf Rechnern ein, die Ihnen gehören! Möchten Sie den FAH-Client hingegen auf Firmenrechnern installieren, müssen Sie zuvor unbedingt die Erlaubnis Ihres Vorgesetzten einholen.

Wozu brauche ich einen Passkey und was hat es mit den Teams auf sich?

Für jede eingereichte WU (Work Unit, Arbeitseinheit) bekommen Sie mit ihrem Benutzernamen Punkte gutgeschrieben - das spornt an und dient auch der Konkurrenz untereinander. Wie viele Punkte es sind, hängt von der Komplexität der WU ab. Außerdem bekommen Sie Bonuspunkte, wenn Sie die WU schnell wieder abgeben und einen Passkey benutzen. Der ist nicht etwa ein Passwort, sondern eine Art digitaler Fingerabdruck, der durchgerechnete WUs eindeutig einem Benutzer zuordnet. Das System prüft nämlich nicht, ob Ihr Nutzername bereits vergeben ist; es können also verschiedene Nutzer unter demselben Namen falten. Einen Passkey bekommen Sie direkt vom FAH-Projekt. Wenn Sie mögen, können Sie sich einem Team anschließen; jedes Team hat nicht nur einen Namen, sondern auch eine Nummer, die Sie im Client angeben. Das Team Heise Falter etwa hat die Nummer 251999 und dürfte nach täglicher Rechenleistung zum Erscheinen dieser Ausgabe unter den Top 10 weltweit sein und nach Punkten unter den Top 100.

Gibt es feinere Kontroll- und Einstellmöglichkeiten für den FAHClient?

Mit dem Tool FAHControl kann man diverse zusätzliche Optionen einstellen und den Client starten, pausieren oder die aktuelle WU fertig rechnen lassen. Die Installationspakete für Windows und macOS bringen FAHControl gleich mit, das Sie über das Startmenü respektive Spotlight aufrufen können. Für diverse Linux-Distributionen bietet die Projektseite das Paket als separaten Download an.

Mit dem Tool FAHControl behalten Sie Ihre Clients im Blick, legen neue Rechen-Slots an oder konfigurieren sie.

Mich stört, dass der Client beim Start ein Browserfenster öffnet und gleich losrechnet. Außerdem soll er eine neue WU herunterladen, bevor er die aktuelle durchgerechnet hat, um Leerlauf zu vermeiden.

Sie können das Verhalten des Clients in FAHControl anpassen, indem Sie oben links „Configure“ und dann im neuen Fenster den Tab „Expert“ wählen. Dass sich das Browserfenster automatisch öffnet, unterbinden Sie, indem Sie dort den Eintrag open-web-control löschen oder den Wert auf false setzen. Wenn Sie den Client unter Windows über den Desktop-Shortcut starten, müssen Sie sich zusätzlich dessen Eigenschaften anzeigen lassen und in der Zeile „Ziel“ ebenfalls --open-web-control löschen.

Soll der Client erst losrechnen, wenn Sie das Kommando geben, legen Sie im Expert-Tab einen neuen Eintrag mit dem Namen pause-on-start und dem Wert true an. Eine neue WU holt sich der Client frühzeitig, wenn Sie den Eintrag next-unit-percentage eingeben; der zugehörige Wert gibt an, bei welchem Rechenfortschritt der Client das nächste Arbeitspäckchen anfordert. Doch Achtung: Die Zeit bis zur Abgabe beginnt für diese WU ab dem Moment an zu laufen, wenn sie auf Ihrem Rechner gelandet ist. Zu frühes Abholen bedeutet also weniger Bonuspunkte.

Ich habe das aktuelle FAHControl-­Paket heruntergeladen, aber es lässt sich nicht installieren oder startet nicht.

Leider setzt FAHControl Version 2 von Python voraus, die inzwischen veraltet ist und damit bei den meisten aktuellen Distributionen nicht als Standard-Python eingestellt ist. Bei manchen wie Ubuntu 19.10 läuft die Installation dennoch durch, bei anderen scheitert sie. In dem Fall ist Abhilfe ohne größere Verrenkungen schwierig und man muss wohl auf eine neue Version des Clients warten. Bei anderen wie Fedora will das Tool nur nicht starten. In diesem Fall ist die Lösung einfach: Öffnen Sie die Datei /usr/bin/FAHControl mit Administratorrechten in einem beliebigen Editor, ändern darin die erste Zeile von python auf python2 und speichern die Datei. Beim nächsten Start­versuch sollte es klappen.

Ich möchte mit dem FAHViewer das Protein beobachten, das der FAHClient gerade berechnet. Mal bekomme ich aber nur ein völlig anderes Molekül als Platzhalter angezeigt, mal erscheint gar nichts.

Das Problem tritt mit alten Versionen des FAHViewers auf, die die Mole­küle­ noch nicht kannten. Erst aktuelle Ausgaben des FAHViewer können die Faltsimulation für die Covid-19-Projekte visualisieren. Bei Windows oder macOS installieren Sie einfach das aktuelle Folding@home-Paket, das den Viewer gleich mitbringt. Unter Linux müssen Sie das zum installierten Client und Ihrer Distribution passende FAH­Viewer-Paket herunterladen und einspielen.

Anschaulich: Der FAH­Viewer zeigt Ihnen ein Modell des Moleküls, das der FAHClient gerade durchrechnet.

Mein Rechner bekommt nun schon seit Stunden keine neue Work Unit.

Das kommt ab und an vor, weil die FAH-Projektserver nicht immer mit dem Verteilen der Arbeit hinterherkommen. Das liegt daran, dass die Zahl der aktiven Teilnehmer innerhalb der letzten zwei Monate von rund 30.000 auf über 500.000 angestiegen ist, die häufig mehr als einen Rechner an den Start schicken. Die Betreiber haben inzwischen mehrere Server nachgeschoben, sodass es inzwischen seltener hakt.

Ich habe gelesen, dass man nicht nur mit der CPU, sondern auch mit der Grafikkarte rechnen kann. Was muss ich tun?

Tatsächlich können GPUs von AMD und Nvidia mitrechnen und bekommen dafür in der Regel mehr Punkte als CPUs, weil sie bei einfacher Gleitkommagenauigkeit viel mehr Rechenleistung haben. Besonders einfach funktioniert das unter Windows. Bei Linux muss man je nach Distribution und GPU-Hersteller verschiedene Hürden nehmen, von der Treiberinstallation bis hin zum Einbinden des OpenCL-Devices. So bringt Ubuntu keine OpenCL-Treiber für Radeon-Karten mit, Fedora nicht von Hause aus Nvidia-Treiber. Am dünnsten ist die Unterstützung für Nvidias GeForce-­Karten der 16- und 20-Generation und AMDs neuere Navi-Chips der RX-5000-Familie. macOS bleibt indes unabhängig von der eingebauten Grafikkarte außen vor; Apple unterstützt die OpenCL-Schnittstelle nicht mehr.

In jedem Fall sollten Sie zunächst den Grafiktreiber auf den aktuellen Stand bringen, indem Sie ihn sich direkt vom Hersteller holen, sofern Ihr Betriebssystem das erlaubt. Anschließend legen Sie via FAHControl für die Grafikkarte einen Rechen-Slot an: Klicken Sie in der Bedienoberfläche oben links auf „Configure“, dann im neuen Fenster auf den Reiter „Slots“ und darin unten auf „Add“. Nun wählen Sie den Kreis unter „GPU“ aus und bestätigen mit „OK“, dann „Save“. Danach sollte auf der „Status“-Seite von FAHControl im Bereich „Folding Slots“ ein Eintrag für die GPU auftauchen.

Prinzipiell lassen sich alle OpenCL-­kompatiblen Grafikkarten zum Falten nutzen; je älter Sie sind, desto ineffizienter sind sie allerdings – und sie erzielen pro WU weniger Punkte. Außerdem lassen sich nach unserer Erfahrung nicht alle Grafikkarten miteinander kombinieren. Auf der sicheren Seite sind Sie mit zwei Karten derselben Familie, etwa zwei GeForce-­Karten der Turing-Generation oder zwei Radeon Vega von AMD. Außerdem sollten Sie keine Pro- mit Consumer-Karten mischen, also beispielsweise keine Quadro zu einer GeForce. In unseren Systemen wollte dann stets nur eine der beiden Karten rechnen. GPUs von AMD und Nvidia lassen sich grundsätzlich nicht gemeinsam zum Falten einspannen; hier kommen sich die unterschiedlichen OpenCL-Treiber in die Quere.

Obwohl ich den aktuellen Treiber installiert habe, verschwindet der neu angelegte GPU-Slot nach dem Speichern sofort wieder.

Der FAHClient erkennt unterstützte Grafikkarten anhand einer Liste, die in der Datei GPUs.txt steht. Sie gehört allerdings nicht zum Installationsumfang; stattdessen zieht sie sich der Client ein paar Minuten, nachdem er begonnen hat, die erste WU durchzurechnen. Sie müssen also vermutlich nur ein wenig warten. Am besten schauen Sie einfach nach, ob die Datei schon da ist. Unter Windows finden Sie sie im (versteckten) Verzeichnis C:\Users\<Nutzername>\AppData\Roaming\FAHClient, unter Linux in /var/lib/fahclient/.

Der FAHClient findet unter Linux meine Grafikkarte, rechnet aber nicht los.

Schauen Sie in FAHControl im Reiter „System Info“, ob Ihre Grafikkarte auch als OpenCL-Device erkannt wird, also dem Eintrag GPU 0 auch ein OpenCL Device 0 zugeordnet ist. Ist dies nicht der Fall, meckert das System, dass ihm die Datei libOpenCL.so fehlt.

Nutzen Sie eine GeForce-Karte unter Ubuntu 19.10, müssen Sie einen Loader für den OpenCL-ICD (Installable Client Driver) mit dem Befehl

sudo apt install ocl-icd-opencl-dev

nachinstallieren. Nun müssen Sie den als Dienst installierten Client neu starten:

sudo systemctl restart FAHClient.service

Für Radeons bringt Ubuntu keinen OpenCL-Treiber mit, was Sie auch mit dem Terminalbefehl clinfo checken können. Den OpenCL-Teil von AMDs Closed-Source-Treiberpaket amdgpu-pro zu installieren, ist mit ein wenig Aufwand zwar möglich, zieht aber eigene Probleme nach sich.

Fedora 31 bringt von sich aus die passenden OpenCL-Treiber für AMD-Grafikkarten bis hin zu den GPU-Familien Po­laris (RX400/500) und Vega (RX Vega 56/64) mit; die GeForce-Treiber von Nvidia muss man zunächst selbst einspielen. Die fehlende libOpenCL.so bekommen Sie mit dem Terminal-Befehl

sudo dnf install /usr/lib64/libOpenCL.so

Nachdem Sie den Client mit dem Befehl

sudo systemctl restart FAHClient.service

neu gestartet haben, ist der GPU-Slot faltbereit.

Laut FAHControl hat der FAHClient meinem Vielkernprozessor eine Work-Unit zugewiesen. Allerdings bleibt die Fortschrittsanzeige bei unter 1 Prozent stehen und die ETA-Angabe verharrt bei 24 Stunden.

Es ist ein Luxusproblem, aber Ihr Rechner hat offenbar zu viele CPU-Threads. Schauen Sie mal via FAHControl ins Log, ob sich dort für den CPU-Slot eine Fehlermeldung findet, die den Text 0xa7:ERROR:There is no domain decomposition for XX ranks that is compatible with the given box enthält, wobei XX für eine Zahl steht. Bei einem Prozessor wie dem Ryzen Threadripper 3970X mit 32 CPU-Kernen und 64 Threads nimmt sich der Client vermutlich 63 Threads und lässt einen für das Betriebssystem übrig. Die Workunit lässt sich aber nicht auf diese Anzahl Threads aufteilen. Weisen Sie Ihrem CPU-Slot also per FAHControl unter Configure/Slots/cpu0 weniger Threads zu. Bei uns haben sich unter anderem 44 oder 27 bewährt. Die restlichen können Sie einem zweiten CPU-Slot zuweisen, den Sie neu anlegen.

Zu viel des Guten: Eine hohe Anzahl an CPU-Kernen kann den FAHClient aus dem Tritt bringen.

Es gibt aber noch ein weiteres Problem: Der inzwischen veraltete Client 7.5.x mag es nicht, wenn sich die Threadzahl in Faktoren zerlegen lässt, die Primzahlen ab 5 sind. Bei einem 16-Kerner wie dem Ryzen 9 3950X nimmt sich der Client 15 Threads, was in 3 × 5 zerfällt. Die neue Clientversion 7.6.x kennt dieses Problem nicht mehr und verringert von sich aus die Threadzahl, um Primzahlen größer 3 zu vermeiden. (bkr)


Dieser Artikel stammt aus c't 11/2020.

Kommentare