Wir freuen uns über die Anfrage von CERN gemeinsamen einen Workshop zu alpaka-Programmierung zu veranstalten. Vom 29. Juni bis 3. Juli 2020 findet „alpaka parallel programming” statt. Ursprünglich für Ende April als einwöchiger Präsenz-Workshop am CERN in Genf geplant, musste diese aufgrund der Corona-Pandemie verschoben und als Online-Veranstaltung durchgeführt werden.
Aber was bedeutet eigentlich „alpaka“? Wie wird alpaka in der Wissenschaft eingesetzt? Und was können die Teilnehmer dort mitnehmen? Wir haben einen der Organisatoren, den CASUS-Wissenschaftler Jan Stephan, befragt.
Jan, was bedeutet alpaka und worauf zielt der Workshop ab?
alpaka steht für „Abstraction Library for Parallel Kernel Acceleration”, zu Deutsch also „Abstraktionsbibliothek für die Beschleunigung paralleler Kernel“. Unter einem (parallelen) „Kernel“ versteht man ein Programm, das auf spezialisierten Rechner-Komponenten ausgeführt wird. Diese nennt man „Beschleuniger“ oder englisch „accelerator“. Ein Beschleuniger kann z.B eine Grafikkarte sein. Das Besondere daran ist, dass dieselbe Aufgabe auf unterschiedlichen Daten gleichzeitig ausgeführt wird. Nehmen wir an, dass hundert Zahlenpaare addiert werden sollen. Ein herkömmliches Programm würde die Additionen nacheinander abarbeiten. Setzt man einen Beschleuniger ein, können die Additionen parallel durchgeführt werden, was den ganzen Vorgang erheblich schneller macht.
Da es eine Vielzahl von Beschleunigern gibt, gestaltet sich die Programmierung dieser Hardware leider nicht ganz einfach. Zum Beispiel sind Schnittstellen unterschiedlicher Hersteller oft nicht zueinander kompatibel. Auch gibt es in der Programmierung verschiedener Beschleuniger-Typen prinzipbedingte Unterschiede, die zu beachten sind.
Hier kommt alpaka ins Spiel: alpaka stellt eine Abstraktionsschicht bereit, die diese Gegensätze aus der Sicht des Programmierers weitestgehend eliminiert und ihm eine einheitliche Schnittstelle anbietet. Das hat auch am CERN Interesse geweckt: um die dort entstehenden sehr großen Datenmengen zu verarbeiten, ist der Einsatz von Beschleunigern zwingend notwendig. Der „alpaka Parallel Programming“-Workshop diente den Teilnehmern als Einführung, damit sie zukünftig alpaka bei ihren wissenschaftlichen Berechnungen nutzen können.
Was macht ihr inhaltlich, gibt es beispielsweise besondere Sessions oder Keynotes?
Inhaltlich kann man sich den Workshop wie Vorlesungen an der Uni vorstellen. Wir beginnen mit den Grundlagen: Was ist alpaka, wofür kann man alpaka verwenden, usw. An den anderen Tagen werden einzelne Aspekte detaillierter beleuchtet.
Wer sind die Teilnehmer und was ist ihre Motivation?
Wir haben ca. 60 Anmeldungen von über 30 Universitäten und Instituten weltweit. Bei den Teilnehmern handelt es sich vorrangig um Physiker vom CERN, die an verschiedenen Experimenten arbeiten. Viele von ihnen arbeiten zum Beispiel am Large Hadron Collider (LHC), einem bekannten Teilchenbeschleuniger. Dessen Detektoren erzeugen riesige Datenmengen in hoher Geschwindigkeit mit etwa 25 Gigabyte pro Sekunde – das entspricht etwa einer Blu-ray pro Sekunde. Um diese Datenmengen in angemessener Zeit auswerten zu können, braucht man Beschleuniger. Ein herkömmliches PC-Programm reicht da nicht mehr aus.
Wird es weitere Veranstaltungen und Austausch zu dem Thema geben und wenn ja wann und wo?
Dieser Workshop ist unsere Premiere in dieser Form und es wird mit Sicherheit in Zukunft weitere ähnliche Veranstaltungen geben. Wir stehen dazu permanent in Kontakt zum CERN und tauschen uns mit den Kollegen dort aus.
Jan Stephan ist Informatiker und arbeitet derzeit bei CASUS an seiner Dissertation. Darin entwickelt er neue Programmier- und Leistungsmessverfahren für die Superrechner der nächsten – „Exascale“ genannten – Generation.
„alpaka parallel programming” ist eine gemeinsame Veranstaltung von CASUS, HZDR und CERN.