Winter semester 2020/2021

The content on this page was translated automatically.

Due to the Corona Pandemic, the start of the winter semester 2020/2021 has been postponed to November 01, 2020 and we offer our courses exclusively digitally.

The entire organization of the courses takes place via the learning platform Moodle. If you would like to participate in one of the events listed below, please register for the corresponding Moodle courses; you will find the corresponding link directly at the respective event.

You can find further information from the University of Kassel on dealing with the Corona virus here, updated daily.

The course starts with an introduction to the subject, application areas and basic concepts of parallel computing. We cover design techniques for parallel algorithms (e.g., parallel divide-and-conquer) as well as general requirements for the design of efficient programs (e.g., cache optimization).

Based on three exemplary programming systems, basic knowledge of parallel programming is then taught in the main part:

  • OpenMP for shared memory computers,
  • APGAS for Java" for computers with distributed or hybrid memory and
  • CUDA for GPUs.

Two practical sections are integrated into the course, in which the participants solve programming tasks in teams of two. The results are then presented in examination discussions and form the basis for the assessment of the course.

The course replaces the previous courses PV1 and PV2.

Course
Bachelor Computer Science

Scope
4 SWS (6 CP)

For further information please contact M.Sc. Jonas Posner and M.Sc. Lukas Reitz.

Further information about the course can be found in the course catalog (will be updated on 07.09.2020) and on the learning platform Moodle.

The traditional parallel programming systems MPI and OpenMP are increasingly criticized for their high program development effort and limited portability. Accordingly, various alternatives have been proposed in recent years and decades. Many of them follow a task-based approach, i.e., the computation is not described by processes / threads, but by tasks. By it one understands to a large extent self-contained partial programs, whose number is selected application-specifically. The tasks are mapped by a run time system automatically on the processes and Threads. Depending on the programming system, dependencies between tasks, their internal parallel execution and other options are possible.

In the seminar, the participants present one task-based parallel programming system each. The functionality will be derived from the literature, if necessary supplemented by experiments with own programs. Example systems are Cilk, Chapel, StarPU, COMPSs, Charm4py and Intel TBB.

Course
Bachelor and Master Computer Science

Scope
2 SWS (4 CP)

For further information please contact M.Sc. Jonas Posner and M.Sc. Lukas Reitz.

Further information about the course can be found in the course catalog for Bachelor and course catalog for Master (will not be updated until 07.09.2020) as well as on the learning platform Moodle.

In this project, students work in groups of two to independently implement one to two given tasks in the parallel programming environment. These tasks are the same for all groups, but each group uses a different parallel programming system. There will be several systems to choose from, for example Legion, Chapel, Julia, and CompsS. The requirements include the theoretical elaboration of a parallel algorithm, the implementation as well as testing on the cluster of the University of Kassel. At the end, all groups present their results and experiences, which are then discussed.

Course
Bachelor and Master Computer Science

Scope
Bachelor 8 SWS (12 CP)
Master 2 SWS (4 CP)

For further information please contact M.Sc. Jonas Posner.

Further information about the course can be found in the course catalog for Bachelor and course catalog for Master (will not be updated until 07.09.2020) and on the learning platform Moodle.