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.

  • Teaching format: Lecture / Q&A sessions + Exercises
  • Sessions: Wed 10-12h and Thu 12-14h 
  • First Session: Thursday, October 12, 2023, 12:15
  • Subscription: Self-enrollment (open until: Oct 11, 2023
Semester: WiSe 2023/24

 

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.

  • Teaching format: Lecture video + online Q&A sessions + online exercises
  • Sessions: Wed 10-12h and Thu 12-14h (from Oct 12, 2022 to Feb 2, 2023)
  • First Session: Wednesday, October 12, 2022, 10:15
  • Subscription: Self-enrollment (closed) - contact: a.vogel@rub.de

(For external students of UNIC partner universities: please send an email to a.vogel@rub.de)



 

Semester: Semesterunabhängig

 

The lecture addresses parallelization for multi- and manycore processors. Thread-based programming concepts (pthreads, C++11 threads, OpenMP, OpenCL) are introduced and best-practice implementation aspects are highlighted based on applications from scientific computing.

In the first part, the lecture provides an overview on relevant data structures, solver techniques and programming patterns from scientific computing. An introduction to multi-threading programming on multicore systems is then provided with special attention to shared-memory aspects. Parallelization patterns are discussed and highlighted. Numerical experiments and self-developed software implementations are used to discuss and illustrate the presented content.

In the second part, students are assigned advanced topics for shared-memory computation from the engineering science including finite element methods and artificial intelligence. Based on a scientific paper, students present their topic to the lecture audience in form of a beamer presentation and numerical illustrations. 

 

  • Teaching format: Lecture video + online Q&A sessions + online exercises
  • Sessions: Wed, 10-12h and Fri, 10-12h (from April 5 to July 14, 2023)
  • First Session:  Wednesday, April 5, 2023
  • Subscription: self-enrollment (closed; contact: a.vogel@rub.de)

(For external students of UNIC partner universities: please send an email to a.vogel@rub.de)

 

Semester: SoSe 2023

 

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. 

  • Block course: July, 17 - 21, 2023
  • Teaching format: Online (lecture and hands-on; 9-16h every day)
  • Subscription: self-enrollment (closed; contact: a.vogel@rub.de)



 

Semester: SoSe 2023