NACH OBEN

WINTERSEMESTER 2024/2025

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: mittwochs, 10:15-11:45 Uhr, IC 03/606 (siehe Moodle)
  • Übung: dienstags, 10:15-11:45 Uhr, CIP Pool, IC 04/628 (siehe Moodle)
  • Erste Vorlesung: Mittwoch, 09. Oktober 2024
  • Klausur (120 min.): 20. Februar 2025, HGA 30
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-WP26 (M.Sc. Computational Engineering), MSc-BI-W48 (M.Sc. Bauingenieurwesen), MSc-SE-09 (M.Sc. Subsurface Engineering), MSc-AI-2i (M.Sc. Angewandte Informatik)

Inhalt

The lecture covers programming concepts such as

  • procedural programming, including data types, statements and functions,
  • object-oriented programming, including encapsulation, polymorphism and inheritance,
  • generic programming.

Furthermore, fundamental data structures as well as efficient algotihms are presented, relevant software libraries are surveyed, and the organization of software projects is discussed,

In hands-on sessions, programming exercises are used to discuss and illustrate the presented content, employing the Python programming language for selected scientific applications.

Kursinformationen

  • Lehrform: 2Std. Vorlesung, 2Std. Übung pro Woche
  • Vorlesung: mittwochs, 08:30-10:00 Uhr, IC 03/112 (siehe Moodle)
  • Übung: montags, 08:30-10:00 Uhr, CIP Pool, IC 04/630 (siehe Moodle)
  • Erste Vorlesung: Mittwoch, 16. Oktober 2024
  • Klausur (120 min.): 18. Februar 2025, HZO 50 (Comp.Eng)
  • Hausarbeit (Master BI)
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-P04 (M.Sc. Computational Engineering), MSc-BI-P04 (M.Sc. Bauingenieurwesen), MSc-SE-10 (M.Sc. Subsurface Engineering)

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: 03.02-07.02.2025, 9:00-16:00 Uhr, CIP-Pool - IC 04/628, RUB (siehe Moodle)
  • Klausur (120 min.): 26. Februar 2025, HZO 100
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-WP31 (M.Sc. Computational Engineering)

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: 2Std. Vorlesung, 2Std. Übung pro Woche
  • Vorlesung: mittwochs, 12:15-13:45 Uhr, IC 03/610 (siehe Moodle)
  • Übung: dienstags, 14:15-15:45 Uhr, CIP Pool, IC 04/628 (siehe Moodle)
  • Erste Vorlesung: Mittwoch, 09. Oktober 2024
  • Klausur: Study project and oral examination
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-WP21 (M.Sc. Computational Engineering)

 



SOMMERSEMESTER 2025

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: freitags, 10:00-12:00 Uhr, Seminarraum IC 03/610 (siehe Moodle)
  • Übung: donnerstags, 12:00-14:00 Uhr, CIP Pool IC 04/630 (siehe Moodle)
  • Erste Veranstaltung: Freitag, 11. April, 2025
  • Klausur (120 min.): 26.08.2025, 10:00-12:00 Uhr, Raum HZO 60
  • 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 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: 2Std. Vorlesung & Übung pro Woche
  • Vorlesung & Übung: freitags, 14:00-16:00 Uhr, CIP Pool IC 04/630 (siehe Moodle)
  • Erste Veranstaltung: Freitag, 11. April, 2025
  • Benotung: Klausur (120 min.): 22.08.2025, 10:00-12:00 Uhr, Seminarraum IC 03/604
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-WP32 (M.Sc. Computational Engineering)

Inhalt

Die Vorlesung behandelt Konzepte und Techniken des Deep Learning, einschließich:

  • allgemeine Ideen und mathematische Hintergründe
  • Trainings- und Regularisierungsmethoden
  • Architekturen neuronaler Netze (feed-forward, convolutional, physics-informed, autoenconder,...)
  • Anwendung auf wissenschaftliche und ingenieurwissenschaftliche Probleme
  • Einsatz auf moderner Computerhardware

In praktischen Sitzungen werden die vorgestellten Inhalte anhand von praktischen Übungen diskutiert und veranschaulicht.

Kursinformationen

  • Lehrform: 2Std. Vorlesung, 2Std. Übung pro Woche
  • Vorlesung: freitags, 12:00-14:00 Uhr, Seminarraum IC 03/112 (siehe Moodle)
  • Übung: donnerstags, 16:00-18:00 Uhr, CIP Pool IC 04/630 (siehe Moodle)
  • Erste Veranstaltung: Freitag, 11. April, 2025
  • Klausur (120 min.): 21.08.2025, 10:00-12:00 Uhr, Raum HZO 60
  • Sprache: Englisch
  • Dozent: Prof. Dr. Andreas Vogel
  • Modul: MSc-CE-WP33 (M.Sc. Computational Engineering)

Inhalt

Die Vorlesung behandelt fortgeschrittene Diskretisierungstechniken, die über die konventionellen Finite-Elemente-Methoden zur Lösung partieller Differentialgleichungen hinausgehen, wie die Finite-Zellen-Methode (FCM) und die Isogeometrische Analyse (IGA). Dabei werden jeweils die mathematische Formulierung sowie die Implementierungsaspekte der Methode diskutiert und mit konventionellen Methoden verglichen. Darüber hinaus werden die Stärken und Schwächen jeder Methode hervorgehoben, sodass ihre Eignung für ein bestimmtes Problem beurteilt werden kann. 

Kursinformationen

  • Lehrform: 2Std. Vorlesung & Übung pro Woche
  • Vorlesung & Übung: mittwochs, 10:00-12:00 Uhr, Seminarraum IC 03/606 & CIP-Pool IC 03/634 (siehe Moodle)
  • Erste Veranstaltung: Mittwoch, 09. April, 2025
  • Benotung: Klausur (120 min.): 03.09.2025, 10:00-12:00 Uhr, Raum IC 03/604 
  • Sprache: Englisch
  • Dozent: Dr. Manuel Saberi
  • Modul: MSc-CE-WP34 (M.Sc. Computational Engineering)