Skip to main content

Multicore Programming with Java (3 ECTS)

Code: TX00EL43-3002

General information


Enrollment
03.05.2021 - 31.07.2021
Registration for the implementation has ended.
Timing
02.08.2021 - 06.08.2021
Implementation has ended.
Number of ECTS credits allocated
3 ECTS
Virtual portion
3 ECTS
Mode of delivery
Online
Campus
Karaportti 2
Teaching languages
English
Seats
0 - 24
Degree programmes
Degree Programme in Information Technology
Information and Communication Technology
Teachers
Jörg Hettel
Course
TX00EL43
No reservations found for implementation TX00EL43-3002!

Learning outcomes

Knowledge and understanding:
Today, multicore/multiprocessor hardware platforms are widespread used in all ICT domains, including smartphones, automotive, computer vision, and many others. Multicore programming is the key enablers for performance scaling in compute-intensive applications.

The students will know the concept of multicore programming with Java. They will know the concurrency related problems, like race conditions and visibility constraints and their consequences. They have an understanding how these problems can be avoided or solved. They know low-level and high-level synchronization concepts and their application.

Further they know the modern parallelization frameworks of Java, like ForkJoin, parallel Streams or CompletableFuture and understand their internal working mechanisms.

Skills:
The students are able to design and write multicore programs and apply concepts, like synchronization and threadpools. They can design and implement solutions like data or task parallelism. For concrete problems they can decide which parallelization concepts are best suited. They can apply parallelization frameworks to speed up program execution.

Content

Introduction

Concept of Threads

Low-level synchronization concepts
- Synchronized, wait, notify, notifyAll, Locks, Atomics

Java Memory Model

Executors and Futures

High-level synchronization concepts
- CountDownLatch, CyclicBarrier, Phaser

Concurrent Data Structures

Concurrency Patterns

Frameworks for Parallelisation
- Fork-Join-Framework
- Parallel Streams (data parallelism)
- CompletableFuture (task parallelism)
- Reactive Streams (event parallelism)

Case Studies

Prerequisites

Good Java skills. Basic mathematics, especially vector and matrix operations.

Location and time

2.8.2021 - 6.8.2021 (morning 09:00-13:00)

International connections

Course teacher is Prof. Dr. Jörg Hettel from University of Applied Sciences Kaiserslautern, Germany.

Evaluation scale

Hyväksytty/Hylätty

Assessment criteria, approved/failed

Students actively work on the daily exercises assigned on the course. At the end of the course the examination is divided into two parts: a short written exam (30 min) and practical programming exercises (90 min).

Go back to top of page