Teaching

Course „Introduction to HPC“ (winter terms)

  • Part of MSc Computer Engineering (MScTI_HPC)
  • More information be found at: http://lsf.uni-heidelberg.de and http://moodle.uni-heidelberg.de
  • Introduction: On the application side HPC includes among others the computation, modelling and simulation of complex systems from the areas of astrophysics, particle physics, biology, genetics, quantum chemistry, computational fluids, and weather and climate research. Such workloads have huge requirements with regard to computing power, which (still) cannot be satisfied completely. In this course we will look at the question how computer architectures can support such challenging applications in the best way possible. Key aspects are highly parallel hardware architectures like clusters, messaging-based communication and software environments. The exercises will mainly contain practical work, including the development of own applications.
  • Contents: challenges of HPC, message passing, parallel programming, optimizations, workload characteristics, GPU computing & HPC, interconnection networks
  • Requirements: Recommended is solid knowledge of C/C++ and the basics of computer architecture. 

Course „GPU Computing“ (winter terms)

  • Part of MSc Computer Engineering (MScTI_GPU)
  • More information be found at: http://lsf.uni-heidelberg.de and http://moodle.uni-heidelberg.de
  • Introduction: Modern GPUs are powerful high-core-count processors.  They are no longer used solely for graphics applications, but are also employed to accelerate computationally intensive general-purpose tasks. In this course, we will look at the GPU's internal architecture, the differences to general-purpose processors like CPUs, and how to program GPUs. As we are also a CUDA Teaching Center, powerful GPUs are available for experiments.
  • Contents: GPU basic architecture, CUDA programming, parallel programming, scheduling/code/shared memory optimizations, detailed GPU architecture, OpenCL & OpenACC introduction
  • Requirements: Recommended is solid knowledge of C/C++ and optionally the basics of computer architecture. 

Course „Advanced Parallel Computing“ (summer terms)

  • Part of MSc Computer Engineering (MScTI_APC)
  • More information be found at: http://lsf.uni-heidelberg.de and http://moodle.uni-heidelberg.de
  • Introduction: Advanced Parallel Computing deepens knowledge in the area of parallel computing. Focus is set on different architectures, including shared-memory and message-passing (including multi-/many-core like Intel MIC), multi-threading and distributed ccNUMA. Also, the foundations of parallel computing like coherency, consistency and task models are covered. On the application side, programming paradigms for upcoming architectures as well as benchmarks are covered.
  • Contents: Shared Memory and Message Passing Architectures, programming paradigms, communication and synchronization for shared memory, cache coherence, consistency models, multi-core and multi-threading architecture, emerging topics
  • Requirements: recommended is the course "Parallel Computer Architectures“, i.e. basic knowledge about pipelining, superscalar architectures, memory hierarchies and caching is required. Recommended is solid knowledge of C/C++. Optional: courses "Introduction to HPC" and "GPU Computing". 
  • Previous material: https://github.com/UniHD-CEG/MScTI_APC

Seminar „Advanced Advanced Seminar 'Computer Engineering'“ (winter terms) - participating advisor


Seminar/proseminar „Machine Learning in Finance“ (winter terms 2018/2019) - co-organizer

  • Jointly with Artur Andrzejak
  • More information to follow

Past Courses (selection)

  • GPU Computing @ XXXII Heidelberg Physics Graduate Days: Spring 2014
  • GPU Computing @ Technical University of Graz: Spring 2015
  • Organization of Advanced Seminar "Computer Engineering": WS 2012/2013, WS 2013/2014, WS 2014/2015. A repository can be found here: Link

 

back to top