Wie angekündigt beginne ich eine kleine Serie über Lehre. In den bisherigen Beiträgen fiel bereits die Abkürzung HPC — für Hochleistungsrechnen bzw. High Performance Computing. Als Beispiel soll eine Einführungsveranstaltung zum HPC dienen. Dabei geht es um die Nutzung großer Cluster aus vielen Einzelcomputern, die zusammen mit einem leistungsfähigen Netzwerk und häufig großen Fileservern ein Werkzeug zur Forschung sein sollen. Ein Artikel zur HPC-Landschaft in Deutschlang und Europa steht auf meiner ToDo-Liste, hier möchte ich aber den Startschuss zu einer Mini-Artikelserie rund um Lehre, HPC und eben Lehre im Kontext der Nutzung von Hochleistungsrechnern geben. Klar ist, dass genau dieses Thema nur wenige Kollegen interessieren dürfte — aber manche Dinge sind allgemeingültig und darauf werde ich zurückkommen. Zunächst einmal möchte ich mit diesem Beitrag den Hintergrund zu meinem Beispiel erläutern.
Hochleistungsrechner also: Sie finden ihren Einsatz in der Modellierung komplexer physikalischer Phänomene wie dem Wetter. Flüssigkeitssimulationen, das Zusammenspiel von Molekülen, astronomische Berechnungen und Werkstoffdesign durch Ingenieure sind die bekanntesten Forschungsanwendungen. Auch die Industrie setzt große Cluster ein, um ihre Produkte zu verbessern, Wege zu suchen die Produktionskosten zu senken oder die Produktentwicklungszeiten zu reduzieren. Nicht zuletzt spielt HPC aus meiner Perspektive auch in Biologie und Medizin eine zunehmende Rolle. Meine Hauptaufgabe an unserem Cluster ist die Betreuung der Lebenswissenschaften (ziemlich stark fokussiere ich mich hierbei auf die Lehre, womit wir beim Thema wären).
Die Herausforderung in der Lehre
Unabhängig vom fachwissenschaftlichen Hintergrund spielt das Hochleistungsrechnen im Studium selten eine Rolle — allenfalls in der Informatik und in den neueren interdisziplinären, “informatiklastigen” Studiengängen steht das Thema Programmierung mit HPC-Bezug im Curriculum. Die Nutzung eines Clusters allerdings nicht, denn so ein Cluster ist eine (Groß)-Forschungseinrichtung: Da gibt es einerseits Unterstützung und andererseits ist der Umgang mit Clustern eine Nischenfähigkeit: Wichtig zwar für eine jeweils aktuelle Arbeit, aber selten dauerhaft wichtig für die nutzenden WissenschaftlerInnen.
Cluster sind komplexe Maschinen und jedes Cluster ist anders. Insbesondere die “batch-Systeme” oder “Scheduler“ stellen neue NutzerInnen vor Herausforderungen: Denn gerechnet wird nicht einfach auf dem Cluster. Immer wieder haben wir Nutzer, die denken Cluster = Server. Doch die batch-Systeme machen einen großen Unterschied, denn man setzt einen sog. “Job” ab und dieser wird auf einem oder mehreren “Knoten” des Clusters, also einem oder mehrerenTeilrechner(n), ausgeführt. Dabei gibt es Einiges zu beachten: Die Laufzeit, der Speicher, die Zahl der CPUs und viele, viele optionale Parameter. Um eine Vorstellung zu geben: Alleine für die Vermittlung diese Aspekter der Nutzung benötige ich einen Tag eines zweitägigen Kurses.
Überspitzt: HPC Cluster werden von FachwissenschaftlerInnen genutzt, wenn diese dies für ihre Forschung verwenden müssen. Schließlich stellt es einen Aufwand dar, all die relevanten Details zu verinnerlichen. Da beißt die Maus keinen Faden ab: HPC Lösungen sind mächtig — sie zu nutzen kostet Anfänger viel Zeit.
Und noch was obendrauf
Vor längerer Zeit habe ich mal “Statistik für Mediziner” als Tutor begleitet. Um es mal so zu sagen: Leicht war das nicht. Spott gegenüber MedizinerInnen ist hier wohlfeil: Nur muss man wissen, dass das Medizinstudium über Jahre hinweg kaum Mathematik beinhaltet und dann versucht man mit einem Kurs, dem man wenig Zeit einräumt (1 Semesterwochenstunde + 1 Stunde Tutoriat) Statistik zu vermitteln, während(!) die Studierenden andere, nicht unwichtige Dinge im Studium zu erledigen haben.
Was ich daraus gelernt habe ist, dass Curricula sich nicht allein daran ausrichten dürfen was NutzerInnen bei uns wissen müssen und wie das beizubringen ist, sondern immer auch was der Hintergrund ist. (Ja, das ist trivial — doch zwischen intellektuell verstehen und wirklich verinnerlichen ist leider oft eine Kluft.) Der zweite Aspekt stellt mitunter eine didaktische Herausforderung dar; der dritte Aspekt wird fast immer vernachlässigt (weil in der Regel Hochschuldidaktik nicht inter- oder gar transdisziplinär stattfindet).
Inhalt und Zeit
Ich schrieb gerade von einem zweitägigem Kurs, den wir für unsere HPC-Systeme anbieten und den ich federführend gestalte. Dabei genieße ich einen gewissen Luxus: Von KollegInnen weiß ich, dass sie nur wenige Stunden für seltenere Kurse mit mehr Inhalten aufwenden dürfen. Einige wenige Anlagenbetreuer machen so gut wie keine Einführungen für Nutzer, davon ausgehend, dass “wer unsere Systeme nutzen will, auch weiß wie das geht” (eigene Übersetzung, keine Übertreibung!).
Wir haben einen Einsteiger-Kurs mit folgenden Inhalten*:
- Wie nutze ich Software auf dem Cluster? (HPC-Systeme haben eine bestimmte Methode, sogenannte Modulefiles, um über die Lebensdauer eines Clusters aktuelle Software, die sich im wissenschaftlichen Bereich natürlich schnell ändern kann, bereit zu stellen.)
- Wie nutze ich das batch-System? (In mehreren Teilen mit relativ vielen “hands-on” Teilen, neben anderen aktivierenden Maßnahmen.)
- ein paar technische Hintergründe zu parallelen Filesystemen und wie CPUs arbeiten (notwendig, um einige Hintergründe zu verstehen)
- Konzeption von Workflows (das gilt es noch auszubauen; der Hintergrund — für alle mitlesenden Nicht-HPC-NutzerInnen: viele HPC-Programme können “einfach so” genutzt werden und dann hat man eine Antwort (z. B. bei Simulationen**). Ggf. gilt es dann noch Statistiken verschiedener Jobs einzusammeln. Das war’s, die Arbeit ist getan. Doch nicht wenige Nutzer, insb. alle BiologInnen und MedizinerInnen, machen Datenanalytik und die ist immer mehrstufig, also nicht mit einem Job pro Simulation, sondern mit mehreren pro Stufe der Analytik behaftet. Und da steckt der Teufel im Detail, obwohl die batch-Systeme Funktionalität für diese Anforderung bereitstellen – das wird hier noch Thema.)
- und natürlich ein paar Infos über die Services unserer Gruppe und weitere Kurse
Und weil wir lernen mussten, dass viele potentielle Nutzer das notwendige Verständnis für das Shellskripting nicht mitbringen, was es erst ermöglicht dem eigentlichen Einführungskurs zu folgen, gibt es die Möglichkeit eine Woche vorher einem weiteren zweitägigen Kurs zum Shellskripting zu folgen — genannt “Bash-Crash”.
Das Ziel
Das Ziel ist es zukünftige Nutzer unserer Systeme
- in die Lage zu versetzen die Systeme selbsttätig/selbstständig zu nutzen,
- die Zahl der Anfängerfragen und den damit verbundenen Aufwand erheblich zu reduzieren
Na, und ich selber denke mir noch: Schön wäre es auch Nutzer zu gewinnen, die etwas zur Wissensallmende beitragen: Ich bin alleine verantwortlich für die BiologInnen und MedizinerInnen, die bei uns rechnen möchten/müssen. Die Physik und Chemie werden durch weitere drei Kollegen betreut. Da ist klar, dass das Fachspezifische bei mir bisweilen zu kurz kommen muss. Umso schöner wäre es, wenn Erfahrungen (z. B. ein Benchmark eines Programms) gesammelt und geteilt würden.
Vor allem aber möchte ich auch den Mehrwert der Clusternutzung für die TeilnehmerInnen vermitteln.
Die Umgebung
Wir operieren mit unserer Lehre nicht im luftleeren Raum — es gibt in Deutschland und Europa u. a.
- die Supercomputing Akademie, die unter Anwendern bislang Entwicklungsingenieure, CAE-, Berechnungs- und Simulationsingenieure, System-Designer und Simulationsinteressierte versteht. Man erkennt einen Fokus auf IT-Fortgeschritte auch an dem Satz der Webseite “Weitere Voraussetzungen sind grundlegende Programmierkenntnisse in einer der Programmiersprachen C/C++, Fortran oder Python sowie Grundkenntnisse in Linux und Bash.” Bei mir deckt sich die Zielgruppe teilweise — die Kenntnisse kann ich nicht voraussetzen: Ich muss sie vermitteln!
- oder PRACE, auf europäischer Ebene, mit einem weitgefächerten Trainigsangebot. Die lasse ich erst mal außen vor — schlicht, weil das Angebot so heterogen ist und von verschiedenen Institutionen kommt, dass ich es nicht kategorisieren kann. Aber sicher ist PRACE mal einen eigenen Beitrag wert ….
- die Kollegen vom HLRS, die unabhängig von der Supercomputing Akademie auch bislang schon sehr aktiv sind — aber das wird mal gesondert Thema.
- und noch viel mehr, was ich nach und nach mal beleuchten werde — ich freue mich auch über Quellen, die ich noch nicht kenne.
Weiter geht es mit den Themen “Warum Lehre für HPC Anwender manchmal schiefgehen muss!”, den Beitrag des “HPC Certification Forum”, “Dokumentation für Anwender” und einem Ausblick. Und mittelfristig werde ich auch etwas über Workflowsysteme im HPC-Kontext schreiben …
+++++++++++++++++++
* Ich abstrahiere stark, weil viele von Euch wahrscheinlich keine Erfahrung mit HPC-Systemen haben werden.
** Auch hier ist die Realität komplizierter.
Kommentare (6)