Verteilte Programmierung und numerische Algorithmen
Allgemeine Informationen
Veranstalter: Peter Buchholz
Tel.: (0231) 755 4746
Email: peter.buchholz (at) udo.edu
Sprechstunde: n.V.
Es ist geplant und wohl endlich auch wieder realistisch, die Vorlesung als Präsenzveranstaltung durchzuführen.
Präsenztermine:
- Mi 10:15 - 12:00, OH 16 - R. 205 (Vorlesung)
- Mo 16:15 - 18.00, OH 16 - R. 205 (Übung oder Vorlesung) (Verteilung Vorlesung - Übung siehe zugehöriger Moodle Raum)
Beginn der Vorlesung Mittwoch 6. April!
Falls sich aufgrund der Corona-Lage noch Änderungen ergeben, werden diese hier bekannt gegeben.
Melden Sie sich in LSF zur Vorlesung "Verteilte Programmierung und numerische Algorithmen" an. Sie werden dann automatisch in den gleichnamigen Moodle-Raum zur Vorlesung eingetragen. In Moodle können Sie dann auf den Raum und die Materialien zugreifen!
Bitte melden Sie sich unbedingt frühzeitig (möglichst bis zum Start der ersten Vorlesungswoche) an, da Sie nur so die notwendigen Informationen erhalten!
Die Vorlesung führt in die Grundlagen der parallelen Programmierung ein. Dazu wird nach einem kurzen Einführungskapite ein Überblick über parallele Rechnerarchitekturkonzepte und den aus den Konzepten resultierenden Konsequenzen für die parallele Porgrammierung gegeben. .Anschließend beschäftigen wir uns mit theoretischen Konzepten zur Realisierung und Bewertung paralleler Programme. Im darauf folgenden Kapitel werden numerische Algorithmen aus unterschiedlichen Bereichen vorgestellt und die Möglichkeiten der Parallelisierung dieser Algorithmen wird erläutert. Der zweite Teil der Vorlesung widmet sich konkreten Programmierkonzepten und -bibliotheken zur Realisierung paralleler Software. Dazu werden der Standard MPI zur so genannten Message-Passing-Programmierung, sowie Pthreads und OpenMP zur Thread-Programmierung vorgestellt. Ferner wird ein kurzer Überblick über CUDA zur Programmierung von GPUs gegeben. Auch wenn Anbindungen der genannten Programmierumgebungen an unterschiedliche Programmiersprachen existieren, sind die Sprachen C und C++ doch die am weitesten verbreiteten Sprachen zur Realisierung paralleler Programme. Die Vorlesung nutzt deshalb C und C++ als Basissprachen und stellt die konkreten Algorithmen in diesen Sprachen vor. Grundkenntnisse in C und/oder C++ werden deshalb vorausgesetzt oder müssen vor Beginn des praktischen Teils der Vorlesung erworben werden.
In den Übungen sollen die theoretischen und konzeptionellen Inhalte der Vorlesung vertieft werden. Insbesondere soll auch das praktische Arbeiten in den drei behandleten Programmierumgebungen eingeübt werden. Dies setzt voraus, dass die Teilnehmerinnen und Teilnehmer, die Übungsaufgaben zum zweiten Teil der Vorlesung praktisch bearbeiten, also wirklich programmieren! MPI, Pthreads und openMP sind als freie Software unter Linux und inzwischen auch Windows verfügbar.
Die Bearbeitung der Übungsaufgaben ist nicht Voraussetzung für die Modulprüfung, wird aber trotzdem dringend empfohlen.
Da es sich um eine Veranstaltung im Umfang 3V + 1Ü handelt, wird der Montagstermin wechsleweise für Vorlesungen oder Übungen genutzt. Weitere Informationen finden Sie im Moodle Raum.