TO TOP

WINTER SEMESTER 2023/2024

Content

The lecture deals with the parallelization on cluster computers. Distributed-memory programming concepts (MPI) are introduced and best-practice implementation is presented based on applications from scientific computing including the finite element method and machine learning.
Special attention is paid to scalable solvers for systems of equations on distributed-memory systems, focusing on iterative schemes such as simple splitting methods (Richardson, Jacobi, Gauß-Seidel, SOR), Krylov-methods (Gradient descent, CG, BiCGStab) and, in particular, the multigrid method. The mathematical foundations for iterative solvers are reviewed, suitable object-oriented interface structures are developed and an implementation of these solvers for modern parallel computer architectures is developed.
Numerical experiments and self-developed software implementations are used to discuss and illustrate the theoretical results.

Course info

  • Teaching format: 2h lectures, 2h exercises per week
  • Lecture: Thursday, 12:00-14:00 h, IC 03/653 (see Moodle)
  • Exercise: Wednesday, 10:00-12:00 h, CIP Pool, IC 04/630 (see Moodle)
  • First session: Thursday, October 12, 2023
  • Written examination (120 min.): February 28, 2024
  • Language: english
  • Lecturer: Prof. Dr. Andreas Vogel
  • Module: MSc-CE-WP26 (M.Sc. Computational Engineering), MSc-BI-W48 (M.Sc. Bauingenieurwesen), MSc-AI-2i (M.Sc. Angewandte Informatik)

Content

The lecture provides an introduction to C++ programming. Basics programming concepts such as types, statements, functions, pointers, memory management and data structures are introduced. Best practices as well as the organization and development of C++ projects are discussed. An introduction to C++ compilers, debugging concepts and development tools is provided.

In hands-on sessions, programming exercises are used to discuss and illustrate the presend content.

Course info

  • Teaching format: Block course (equiv. to 2 SWS)
  • Date: February 05.02-09.02.2024, 9:00-16:00 h, CIP Pool - IC 04/628, RUB (see Moodle)
  • Written examination (120 min.): February 28, 2024, 13-15 h, IC 03/604
  • Language: english
  • Lecturer: Prof. Dr. Andreas Vogel, 
  • Module: MSc-CE-W09 (M.Sc. Computational Engineering)



SUMMER SEMESTER 2024

Content

The lecture addresses parallelization on multicore processors. Thread-based programming concepts and techniques, including pthreads, C++11 threads, OpenMP and SYCL, are introduced and best practices are highlighted using applications from scientific computing.

An overview of the relevant hardware aspects including multicore architectures and memory hierarchives is provided. An in-depth introduction to multi-threaded programming on multicore systems with special emphasis on shared-memory parallelization is given and parallelization patterms, thread managmenet and memory accedd strategies are discussed.

In hands-on sessions, programming exercises are used to discuss and illustrate the presented content. 

Course info

  • Teaching format: 2h lectures, 2h exercises per week
  • Lecture: wednesday, 10:00-12:00 h, Seminar room IA 02/445 (see Moodle for details)
  • Exercise: friday, 10:00-12:00 h, CIP Pool  IC 04/630 (see Moodle for details)
  • First session: Wednesday, April 08, 2024
  • Written Exam (120 min.): 27.08.2024, 10:00-12:00 h, IC 03/604
  • Language: english
  • Lecturer: Prof. Dr. Andreas Vogel
  • Module: MSc-BI-WP56 (M.Sc. Bauingenieurwesen), MSc-CE-WP 25 (M.Sc. Computational Engineering), MSc-AI-2j (M.Sc. Angewandte Informatik), MSc-SE-08 (M.Sc. Subsurface Engineering)

Content

The lecture covers the theory and application of quantum computing from a computer science perspective with a focus on the usage of today's quantum hardware.
The relevant basics of quantum mechanics including superposition, measurement, interference, entanglement and mathematical notation are introduced. The characteristics of quantum bits and registers are discussed, and the construction and properties of quantum gates and quantum circuits presented. Prominent examples for quantum algorithms are surveyed including algorithms based on quantum Fourier transformation (e.g. Shor's factoring), quantum search (e.g. Grover), quantum solution of linear systems of equations (e.g. HHL) and quantum machine learning. Current quantum computer hardware as well as quantum error correction are discussed.
An introduction to quantum programming languages and environments will be provided. Hands-on programming exercises and self-implemented quantum circuits in study projects are used to discuss and illustrate the theoretical content. Implementations are tested on quantum simulators and cloud-based quantum hardware.

Course info

  • Teaching format: Block seminar (equiv. to 2h lecture)
  • Date: not offered in SS2024
  • Examination: Study project and oral examination
  • Language: english
  • Lecturer: Prof. Dr. Andreas Vogel
  • Module: MSc-CE-W08 (M.Sc. Computational Engineering)

Content

The lecture addresses advanced topics in C++ programming. Object-oriented programming concepts such as classes, inheritance and polymorphism as well as generic programming concepts such as templates are introduced. The standard template library (STL) and selected functionalities from C++14 and above are surveyed. Best practices as well as the organization and development of advanced C++ projects are discussed.

In hands-on sessions, programming exercises are used to discuss and illustrate the presented content.

Course info

  • Teaching format: Block seminar (equiv. to 2h lecture)
  • Date: 22.07. - 26.07.2024, 9:00-16:00 h, CIP Pool RUB (see Moodle)
  • Written Exam (120 min.): 23.08.2024, 10:00-12:00 h, IC 03/604
  • Language: english
  • Lecturer: Prof. Dr. Andreas Vogel
  • Module: MSc-CE-W10 (M.Sc. Computational Engineering)