Grundlagen der Informatik III Lehre 2013/2014
Introduction
Im Rahmen der Veranstaltung „Grundlagen der Informatik III“ (regulär im 3. Semester Bachelor Informatik und verwandten Fächern) wird den Studenten neben den Grundlagen der Betriebssysteme und des Compilerbaus auch die Programmiersprache C++ sowie die Methodik des parallelen Programmierens vermittelt. Sowohl im Wintersemester 13/14 als auch im Wintersemester 14/15 beinhaltete der Stoff auch das Programmieren massiv-paralleler Systeme. Darunter versteht man Beschleunigerkarten für HPC-Systeme und Workstations (meist Grafikkarten), die oft mehr als 1.000 einfache Prozessoren aufweisen. Im Gegensatz zu normalen CPUs sind diese allerdings – bedingt u.a. durch die spezielle Hardware – aufwändig zu programmieren. Die Studenten konnten in beiden Jahren anschließend als Praktika Projekte mit Themen aus den Arbeitsgruppen der Dozenten Prof. Goesele bzw. Prof. Bischof (beide Fachbereich Informatik) absolvieren, um die Klausurzulassung zu erlangen.
Methods
Prof. Goesele ließ die Studenten einen „Plane Sweep Stereo“ Algorithmus implementieren, der aus mehreren verschiedenen Bildern einer Szene ein 3D-Modell rekonstruieren kann. Dieser Prozess ist sehr rechenaufwändig und gut zu parallelisieren, sodass die Studenten schon mit einer einfachen Implementierung deutliche Geschwindigkeitsunterschiede zur vorgegebenen CPU-Implementierung (etwa Faktor 5) feststellen konnten. Von 640 Teilnehmern der Vorlesung bearbeiteten 172 dieses Praktikum erfolgreich. Im aktuellen Wintersemster konnten die Studenten ihr Wissen an einer im HPC Bereich oft auftretenden Problemstellung anwenden: Der Simulation von Partikeln mit verschiedenen Massen und der entstehenden Gravitationskräfte zwischen selbigen. Eine CPU-Implementierung war bereits die Aufgabe eines vorangegangenen Praktikums, sodass Prof. Bischof die unterschiedliche Methodik der Programmierung sehr genau verdeutlichen konnte. Insbesondere wurde auf die Verwendung der verschiedenen Speichertypen auf der Hardware eingegangen.
Results
Von 688 GDI3-Stundierenden nahmen ca. 400 am Praktikum teil. Um allen Studierenden in beiden Jahren Zugriff auf die massiv-parallele Hardware zu ermöglichen, wurden jeweils vier Knoten des Clusters logisch abgetrennt und den Studentinnen und Studenten zur Verfügung gestellt. Dadurch hatten sie Zugriff auf mehrere Grafikkarten des Typs Tesla K20c. Neben der Programmierung der Hardware konnten sich die Studierenden dabei in der Bedienung und Benutzung eines Batchsystems üben und erhielten so eine Einführung in das Clustercomputing. Unter Verwendung desselben Setups steht der Cluster auch zur Nutzung im Rahmen der weiterführenden Lehrveranstaltung „Programming Massively-Parallel Processors“ bei Prof. Goesele im Wintersemester 14/15 bereit. Teil der Veranstaltung sind umfangreiche Gruppenprojekte auf CUDA-unterstützender Hardware. An dieser Veranstaltung nahmen knapp 40 Studierende teil.