NACH OBEN

WINTERSEMESTER 2023/2024

Inhalt

Diese Vorlesung behandelt die Parallelisierung für Computercluster. Konzepte der Programmierung für Systeme mit verteiltem Speicher (MPI) werden eingeführt und best-practice Implementierungen anhand von Anwendungen aus dem wissenschaftlichen Rechnen - wie die Finite Elemente Methode und maschinelles Lernen - besprochen.
Besondere Beachtung finden skalierbare Löser für Gleichungssysteme auf Systemen mit verteiltem Speicher mit Fokus auf iterativen Verfahren wie einfache Splitting-Verfahren (Richardson, Jacobi, Gauß-Seidel, SOR), Krylov-Raum-Methoden (Gradientenabstieg, CG, BiCGStab) und besonders das Mehrgitterverfahren. Die mathematischen Grundlagen für die Gleichungslöser werden besprochen, sinnvolle Interfacestrukturen für eine objektorientiere Umsetzung herausgearbeitet und eine Implementierung dieser Löser auf modernen Parallelrechnern entwickelt.
Anhand von numerischen Experimenten und eigenen programmtechnischen Umsetzungen werden die theoretischen Inhalte vertieft und veranschaulicht.

Kursinformationen

  • Lehrform: 2Std. Vorlesung, 2Std. Übung pro Woche
  • Vorlesung: donnerstags, 12:00-14:00 Uhr, IC 03/653 (siehe Moodle)
  • Übung: mittwochs, 10:00-12:00 Uhr, CIP Pool, IC 04/630 (siehe Moodle)
  • Erste Vorlesung: Donnerstag, 12. Oktober 2023
  • Klausur (120 min.): 28. Februar 2024
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-WP26 (M.Sc. Computational Engineering), MSc-BI-W48 (M.Sc. Bauingenieurwesen), MSc-AI-2i (M.Sc. Angewandte Informatik)

Inhalt

Die Vorlesung bietet eine Einführung in die C++-Programmierung. Grundlegende Programmierkonzepte wie Typen, Anweisungen, Funktionen, Zeiger, Speicherverwaltung und Datenstrukturen werden vorgestellt. Best Practices sowie die Organisation und Entwicklung von C++-Projekten werden besprochen. Es wird eine Einführung in C++-Compiler, Debugging-Konzepte und Entwicklungswerkzeuge gegeben.

In praktischen Sitzungen werden Programmierübungen verwendet, um die vorgestellten Inhalte zu diskutieren und zu illustrieren.

Kursinformationen

  • Lehrform: Blockkurs (entspricht 2 SWS)
  • Datum: 05.02-09.02.2024, 9:00-16:00 Uhr, CIP-Pool - IC 04/628, RUB (siehe Moodle)
  • Klausur (120 min.): 28. Februar 2024, 13:00-15:00 Uhr, IC 03/604
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-WX09 (M.Sc. Computational Engineering)



SOMMERSEMESTER 2024

Inhalt

Die Vorlesung behandelt die Parallelisierung auf Multicore-Prozessoren. Es werden Konzepte und Techniken der Thread-basierten Programmierung, einschließlich pthreads, C++11 Threads, OpenMP und SYCL, vorgestellt und bewährte Verfahren anhand von Anwendungen aus dem wissenschaftlichen Rechnen aufgezeigt.

Es wird ein Überblick über die relevanten Hardware-Aspekte einschließlich Multicore-Architekturen und Speicherhierarchien gegeben. Eine ausführliche Einführung in die Multi-Thread-Programmierung auf Multicore-Systemen mit besonderem Schwerpunkt auf der Shared-Memory-Parallelisierung wird gegeben und Parallelisierungsmuster, Thread-Management und Speicherzugriffsstrategien werden diskutiert.

In praktischen Sitzungen werden Programmierübungen verwendet, um die vorgestellten Inhalte zu diskutieren und zu illustrieren. 

Kursinformationen

  • Lehrform: 2Std. Vorlesung, 2Std. Übung pro Woche
  • Vorlesung: mittwochs, 10:00-12:00 Uhr, Seminarraum IA 02/445 (siehe Moodle)
  • Übung: freitags, 10:00-12:00 Uhr, CIP Pool IC 04/630 (siehe Moodle)
  • Erste Veranstaltung: Mittwoch, 08. April, 2024
  • Klausur (120 min.): 27.08.2024, 10:00-12:00 Uhr, IC 03/604
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-WP25 (M.Sc. Computational Engineering), MSc-BI-W56 (M.Sc. Bauingenieurwesen), MSc-AI-2j (M.Sc. Angewandte Informatik), MSc-SE-08 (M.Sc. Subsurface Engineering)

Inhalt

Die Vorlesung befasst sich mit der Theorie und Anwendung von Quantencomputern aus der Perspektive der Computerwissenschaften, wobei der Schwerpunkt auf der Verwendung heutiger Quantenhardware liegt.
Die relevanten Grundlagen der Quantenmechanik einschließlich Superposition, Messung, Interferenz, Verschränkung und mathematischer Notation werden vorgestellt. Die Eigenschaften von Quantenbits und -registern werden diskutiert und der Aufbau und die Eigenschaften von Quantengattern und Quantenschaltungen vorgestellt. Prominente Beispiele für Quantenalgorithmen werden betrachtet, einschließlich Algorithmen basierend auf Quanten-Fourier-Transformation (z. B. Shors Faktorisierung), Quantensuche (z. B. Grover), Quantenlösung linearer Gleichungssysteme (z. B. HHL) und quantenbasiertes maschinelles Lernen. Aktuelle Quantencomputerhardware sowie Quantenfehlerkorrektur werden diskutiert.
Es wird eine Einführung in Quantenprogrammiersprachen und -umgebungen gegeben. Praktische Programmierübungen und selbst implementierte Quantenschaltungen in Studienprojekten werden verwendet, um den theoretischen Inhalt zu diskutieren und zu veranschaulichen. Implementierungen werden auf Quantensimulatoren und Cloud-basierter Quantenhardware getestet.

Kursinformationen

  • Lehrform: Blockseminar (äquivalent zu 2 SWS)
  • Datum: wird im SS2024 nicht angeboten
  • Klausur (120 min.): Datum folgt
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-W08 (M.Sc. Computational Engineering)

Inhalt

Die Vorlesung behandelt fortgeschrittene Themen der C++-Programmierung. Objektorientierte Programmierkonzepte wie Klassen, Vererbung und Polymorphismus sowie generische Programmierkonzepte wie Templates werden vorgestellt. Die Standard Template Library (STL) und ausgewählte Funktionalitäten von C++14 und höher werden vorgestellt. Best Practices sowie die Organisation und Entwicklung von fortgeschrittenen C++-Projekten werden besprochen.

In praktischen Sitzungen werden Programmierübungen verwendet, um die vorgestellten Inhalte zu diskutieren und zu illustrieren.

Kursinformationen

  • Lehrform: Blockseminar (äquivalent zu 2 SWS)
  • Datum: 22.07.-26.07.2024, 9:00-16:00 Uhr, CIP-Pool, RUB (siehe Moodle)
  • Benotung: Klausur (120 min.): 23.08.2024, 10:00-12:00 Uhr, IC 03/604
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-W10 (M.Sc. Computational Engineering)