Ein Blick hinter die Kulissen beim Folding@home-Team von Heise

Ein Blick hinter die Kulissen beim Folding@home-Team von Heise

Praxis & Tipps | Praxis

Das Team von c't besitzt so viel Rechenleistung, dass es bei Folding@home für einen der Top-40-Plätze reicht. Wir bieten einen Einblick in den Rechenpark.

c’t-Redakteure sind Nerds und stolz darauf. Es liegt also nahe, dass viele von uns schon länger an verschiedenen verteilten Rechenprojekten teilnehmen, sei es als Alien-Sucher beim inzwischen eingestellten SETI@home, als Schlüsselknacker bei Distributed.net – oder eben bei Folding@home. Dieses wissenschaftliche Projekt untersucht die möglichen Faltungen von Proteinmolekülen, um Forschungsansätze für Medikamente gegen Krankheiten wie Krebs, Alzheimer oder seit Kurzem auch Covid-19 zu finden.

Als die Entwicklung rund um das neuartige Coronavirus sich auch zunehmend auf das Leben im Verlag auswirkte, kam die Idee auf, mit den vorhandenen Ressourcen zu prüfen, was bei Folding@home alias F@h geht. Den Anfang machten zwei AMD-Server mit je zwei Epyc-Prozessoren – einer mit Naples-CPUs (Zen 1), der andere mit einem Rome-Duo (Zen 2) und dem Spitznamen Folding@Rome. Dazu gesellte sich ein testweise zusammengestecktes System mit einer GeForce RTX 2060. Parallel begannen auch einige Kollegen privat, sich mit eigener Hardware dem Falten von zu Hause zu widmen, sodass schnell die Idee aufkam, unter gemeinsamer Flagge zu rechnen. So ging Ende März das Team Heise Falter mit der Nummer 251999 an den Start, dem sich inzwischen 5865 Nutzer angeschlossen haben. Davon sind aktuell knapp 2600 gleichzeitig aktiv; in der Spitze waren es Anfang April um die 3700. Die Enthusiasten-Seite Extreme Overclocking betreibt eine Statistikseite, die Informationen noch viel detaillierter aufbereitet als die offizielle Statistik vom F@h-Projekt.

Nachdem noch zwei weitere, ehemals vom Prozessorflüsterer Andreas Stiller gepflegte Server zum Falten abgestellt wurden und wir beobachteten, wie die Heise Falter in der Rangliste immer weiter aufstiegen, packte uns der Ehrgeiz. Ziel waren die Top 100 – eine Marke, die wir auch dank der tatkräftigen Mitwirkung der Teammitglieder nach nur 31 Tagen erreichten. Uns kribbelte es in den Fingern, ein System mit geballter Rechenpower zusammenzustecken. Und so kombinierten wir das Single-Socket-Desktopmonster AMD Ryzen Threadripper TR 3990X (64 Kerne, 128 Threads) auf einem TRX40-­Mainboard mit einer GeForce RTX 2080 Ti und einer RTX 2080. Spitzname: Threaddy the Folder. Allein diese Konstellation brachte es auf eine kombinierte theoretische Rechenleistung von knapp 29,5 TFlops bei einfacher Genauigkeit (FP32).

Angespornt durch die weltweite Konkurrenz sowie die im eigenen Team – zeitweise überflügelte uns der Nutzer „Fliegendekuh“ mit beeindruckendem Abstand und schrubbte allein über 100 Millionen Punkte pro Tag – brach sich unser Enthusiasmus endgültig Bahn. Wir bestückten kurzerhand praktisch alle gerade nicht im Testeinsatz befindlichen aktuellen Mainboards, die in unserem Fundus ihres Einsatzes harrten, mit passender CPU, SSD, RAM und einer möglichst potenten Grafikkarte. Stolz sind wir neben der GeForce Titan X (Pascal) vor allem auf die Tesla P100. Weil diese passiv gekühlte Beschleunigerkarte für den Einsatz im Luftstrom von Servergehäusen vorgesehen ist, bastelte unser technischer Assistent Denis Fröhlich aus einem Gehäuselüfter und einem kleinen Pappkarton einen eigenen Lüfter samt Führungshutze. Da macht uns die Make nichts vor!

Die selbstgebastelte Hutze kanalisiert den Luftstrom, der die Tesla P100 kühlt.

In einem ersten Schub wuchs das Feld der Falter auf 13 Geräte an, die zweite Erweiterung dauerte länger und ging mit einer Konzentration der Rechenleistung einher. Denn hatten wir bisher enthusiastisch, aber ein wenig planlos leistungsfähige Hardware zusammengesteckt, gingen uns bald zwei Dinge aus: Platz und Netzteile. Also bauten wir nochmal um und versuchten, möglichst viele Grafikkarten pro Mainboard unterzubringen. Dafür erwiesen sich vor allem AMD-Systeme mit X370/X470/X570-Chipsatz als geeignet. Nach unten begrenzten wir die Grafikkartenwahl bei der GeForce GTX 1070 und der GTX 1660 Ti/Super, auf AMD-Seite beschränkten wir uns auf die aktuellen Navi-Radeons der RX-5000-Serie.

Aktuell rechnen 22 Systeme für den gemeinsamen Nutzer ctTEAM. Zu den vier Servern kamen zwölf Rechner mit AMD- und sechs mit Intel-Prozessoren. Kumulierte theoretische FP32-Rechenleistung: rund 274 TFlops. Dabei haben wir etwas konservativ gerechnet und bei CPUs den Nominal- anstelle des Turbotakts genommen. Im Schnitt schaffen wir damit je nach Tagesform zwischen 42 und 45 Millionen Punkte pro Tag (PPD).

Alles im grünen Bereich: 22 Rechner mit leistungsfähiger Hardware simulieren, wie sich Proteine falten lassen. Ganz oben: der Kommando-iMac.

Nicht in der Tabelle aufgeführt ist mein Arbeitsplatzrechner, ein iMac. Er rechnet zwar ebenfalls mit, dient aber vor allem als Schaltstelle, von der aus ich den Faltpark mittels der Software FAHControl im Blick behalte. Als Benutzer eines Mac wurmt es mich, dass ich dessen Radeon Pro RX 575 nicht zum Falten nutzen kann. Es gibt aber keinen GPU-Client, weil ein brauchbarer OpenCL-Treiber fehlt; seit der Einführung des eigenen Low-Level-API Metal behandelt Apple dieses Thema stiefmütterlich.

Wie ein Blick in die untenstehende Tabelle zeigt, dominieren bei den Systemen von ctTEAM die Nvidia-GPUs. Das liegt daran, dass wir uns recht bald für den Einsatz von Ubuntu Linux als Betriebssystem entschieden. Diese Informationen haben nur auf den ersten Blick nichts miteinander zu tun. Kurze Erklärung: Die Windows-Version des Folding@home-Clients kann nicht mit Processor Groups umgehen und somit maximal 64 logische Kerne nutzen. So hätten wir die Threadripper-, Ryzen-9- und Xeon-CPUs nicht voll ausnutzen können, weshalb Windows ausschied. Es musste also Linux sein. Dafür sprachen auch die Fernsteuerungsfähigkeiten via ssh sowie das Gratislizenzmodell.

Doch welche Distribution sollte es werden? Fedora 32 baut zwar auf dem moderneren Kernel der 5.6-Familie auf, aber die Treiberinstallation für Nvidia-­Grafikkarten ist unter Ubuntu schlicht bequemer. Mit einem sudo ubuntu-drivers devices und einem anschließenden sudo ubuntu-drivers autoinstall holt sich das System ausreichend aktuelle Treiber – das gelingt auch zuverlässig per ssh und als update. Wir mussten uns anschließend nur noch um einen Installable Client Driver (ICD) für OpenCL kümmern, was mit sudo apt install ocl-icd-opencl-devel schnell erledigt ist. Anschließend erkennt der F@h-Client die Grafikkarte, kann sie als OpenCL-Device nutzen und faltet los.

Die Radeon-Karten laufen notgedrungen unter Windows. Aktuelle Linux-­Distributionen bringen zwar mit amdgpu einen Treiber mit, der auch aktuelle AMD-Grafikkarten erkennt. Ihm fehlt aber die OpenCL-Komponente. Die lässt sich auch nicht ohne große Verrenkungen installieren, solange AMD keine Version seines proprietären Treiberpakets amdgpu-pro für aktuelle Linux-Distributionen anbietet. Unsere Nachfrage bei AMD, wann ein neuer Treiber erscheinen soll, blieb bis zum Redaktionsschluss unbeantwortet. Nur mit Manjaro Linux gelang es uns überhaupt, eine Radeon RX 5600 XT erfolgreich zum Falten einzuspannen. Allerdings rechnete sie dann langsamer als die CPU.

Auch unter Windows läuft mit den Radeons nicht alles rund. So lief bei uns keine Kombination von mehreren Radeon-Karten der RX-5000-Familie in einem System stabil, sodass sie alle solo falten. Außerdem funktioniert Microsofts Remote Desktop Client nicht mehr, wenn mehrere Radeons gesteckt sind: Offenbar stürzt der Treiber beim Anmelden ab, was einen manuellen Reset nach sich zieht. Schließlich kam es immer wieder vor, dass der GPU-Slot keine neue Arbeit anforderte. Reicht es bei den Nvidia-GPUs, den betreffenden Slot per FAHControl anzuhalten und nach einigen Sekunden wieder zu starten, klappte das bei den Radeons nicht. Sie benötigen einen Windows-Neustart.

Die wenigen verbleibenden Windows-Rechner mit Nvidia-GPU sind bestehende Testrechner, bei denen wir nur den F@h-Client installiert haben.

Zwei GeForce GTX 1080 Ti falten ­zusammen mit einem Ryzen 5 1600X ­Proteinmoleküle.

Zwei Nebenwirkungen der geballten Rechenleistung hatten wir zunächst ein wenig aus dem Blick verloren, wobei die zwischenzeitliche Netzteilknappheit uns schon früher hätte wachrütteln können: Mittlerweile verursachte unser Faltverein eine beträchtliche Leistungsaufnahme und diese wiederum resultierte in einer erheblichen Abwärme. Im Schnitt nehmen unsere Falter rund 400 bis 500 Watt auf, die dicksten Systeme – darunter Threaddy und seine kleineren Geschwister Big Threaddy (TR 3970X) und Threaddy Junior (TR 3960X) – ziehen unter kombinierter Volllast schon mal 700 bis 900 Watt.

Der Laborraum, in dem der Großteil der Faltfarm steht, ist zwar klimatisiert, um einen Serverraum handelt es sich aber nicht. So herrscht dort inzwischen eine lauschige Umgebungstemperatur von 24 bis 25 Grad Celsius.

Außerdem stießen uns die Mitarbeiter von den Hausdiensten darauf, dass wir vorsichtig sein sollten, nicht die Sicherungen zu überlasten. Wir wähnten uns auf der sicheren Seite, hatten wir doch brav immer einzelne Wandsteckdosen genutzt, im Glauben sie seien jeweils einzeln abgesichert. Wie sich herausstellte, hingen sie aber allesamt an derselben Sicherung. Nachdem wir überschlagen hatten, dass wir diese gerade vor eine ganz schöne Herausforderung stellten, verteilten wir die Systeme zusätzlich noch auf einige Steckdosen in den Bodentanks.

Meist lief es in unserem Projekt zwar rund, ein Pechvogelsystem haben wir aber auch dabei: Threaddy the Folder. Unser stärkster Desktop-Rechner, das Threadripper-System mit TR 3990X und GeForce RTX 2080 Ti, erlitt immer wieder kleinere und größere Rückschläge. Es begann nach einigen Wochen damit, dass FAHControl auf dem Kontroll-iMac plötzlich den Verbindungsverlust monierte. Als wir den Rechner im Laborraum begutachteten, hing Threaddy in einer BIOS-Startschleife fest.

Zunächst half ein BIOS-Reset, doch schon am nächsten Tag wiederholte sich das Spiel. Per SSH und dem Befehl watch -n 2 sensors behielten wir Threaddys CPU-­Temperatur im Blick – und die schnellte umgehend nach dem Rechenstart in besorgniserregende Höhen, trotz Wasserkühlung. Wie sich herausstellte, war eben diese Kühlung allerdings der Auslöser: Aufgrund eines Serienfehlers verstopfte eine fehlerhafte Kühlflüssigkeit den Wasserblock und machte Threaddy zum Hitzkopf.

Nach dem Tausch gegen eine andere Wasserkühlung lief alles wieder eine Weile stabil, doch dann stieg uns das System immer wieder sporadisch aus. Dieses Mal fiel die Diagnose schwerer: Zunächst tippten wir auf die Grafikkarten, konnten sie aber schnell als Fehlerquelle ausschließen. Auch wenn Threaddy allein rechnete, fror das System ohne erkennbaren Grund ein. Nachdem auch ein Speichertausch und ein Mainboardwechsel keine Abhilfe schafften, legten wir Threaddy schweren Herzens still. Das Netzteil und die Grafikkarten wanderten in andere Systeme – und damit kamen wir schließlich auch zum eigentlichen Auslöser: Das neue System zickte ebenfalls, doch da wir hier alle anderen Komponenten von vornherein ausschließen konnten, musste das Netzteil das Problem darstellen.

Inzwischen ist das große Threadripper-System wieder im Dienst und vereint mit der GeForce RTX 2080 Ti die stärksten Einzelkomponenten in unserem Falt-Feld in sich. Einen letzten Schluckauf hatte das System allerdings doch noch: Obwohl FAHControl zeigte, dass die Slots noch rechneten, ging es nicht voran. Im Hintergrund meldete das installierte Ubuntu-­Linux einen E/A-Fehler und ließ sich nicht mehr herunterfahren. Erst ein sehr rabiates sudo systemctl --force --force poweroff (ja, mit doppeltem --force) wirkte. Nachdem sich das Problem einen Tag später wiederholte, zeigte ein SMART-Test, dass die SSD unzuverlässig geworden war. Mit frischer SSD läuft Threaddy nun – zumindest bisher – wieder wie erwartet.

Das soll nicht heißen, nur AMD-Hardware mache Ärger. Es gäbe auch einiges dazu zu schreiben, wie lange es dauerte, bis die divenhafte Tesla P100 wie gewollt lief. Threaddy hatte einfach nur besonders viel Pech.

Inzwischen liegen die Heise Falter nach erzielten Punkten auf Platz 35. Mit unserem täglichen Schnitt von 372.572.362 Punkten kommen wir sogar auf Platz 10 - dafür noch einmal ein Dank an unsere Teammitglieder! Zu sagen, dass wir zufrieden sind, wäre eine massive Untertreibung, auch wenn wir zwischenzeitlich das CERN und Nvidia ziehen lassen mussten. Doch wie geht es weiter? Für uns steht fest, dass wir weiter Rechenleistung für F@h spenden wollen. Allerdings gibt es auch viele andere verteilte Rechenprojekte, die einen Blick wert sind.

Stand Anfang Juni 2020 erzielt das Team Heise Falter gemeinschaftlich rund 373 ­Millionen Punkte pro Tag. (Bild: ExtremeOverclocking Folding Statistics)

Einen schnellen Überblick kann man sich via BOINC verschaffen, der Berkeley Open Infrastructure for Network Computing, bei der bis vor Kurzem auch SETI@home lief. Auf der Webseite oder direkt im Client gibt es Informationen zu verschiedenen Projekten.

Rosetta@home etwa verfolgt sehr ähnliche Ziele wie Folding@home und ist ebenfalls schon seit Jahren aktiv. Der Client ist allerdings wenig modern: Er kann ausschließlich auf CPUs rechnen und beherrscht nur rudimentäres Multithreading nach dem Schema ein Thread pro Work Unit. Wer sich mehr für Astrophysik interessiert, kann sich Einstein@home anschauen.

Auch beim World Community Grid gibt es ein Covid-19-Projekt, aber auch Krebs, das Zika-Virus und HIV/AIDS werden dort erforscht. Spannend ist auch das Africa Rainfall Project, das ein Klimamodell für Afrika südlich der Sahara zu entwickeln versucht. Der Client kann zwar theoretisch via OpenCL 1.1 auch GPU-Rechenkraft einsetzen, aber derzeit liegt diese Fähigkeit brach. (bkr)


Dieser Artikel stammt aus c't 14/2020.

Kommentare