Parallel Computing and Concurrent Programming
Degree programme | Computer Science |
Subject area | Engineering Technology |
Type of degree | Master Full-time Summer Semester 2024 |
Course unit title | Parallel Computing and Concurrent Programming |
Course unit code | 024913020202 |
Language of instruction | English |
Type of course unit (compulsory, optional) | Elective |
Teaching hours per week | 2 |
Year of study | 2024 |
Level of the course / module according to the curriculum | |
Number of ECTS credits allocated | 4 |
Name of lecturer(s) | Andrea JANES |
Excellent knowledge of Java and Object-Oriented Programming
- Java Threading Model and Concurrency Features
- Actor Model using Java Akka
- Transactional Programming
- Mutexes and Semaphors
- Profiling and Performance Measurement of Parallel and Concurrent Applications
- Concurrent Datastructures
- Concurrent Patterns (e.g.. Consumer / Producer)
- Communicating Sequential Processes
The students get to know basics and concepts of parallel and concurrent programming in Java.
- know and understand the difference between parallelism and concurrency.
- know and understand the difference between shared memory and message-passing concurrency.
- know patterns of parallel programming.
- know Amdahls Law.
- are able to implement parallel and concurrent problems in Java.
- know concepts of concurrent programing such as Futures/Promises, Monitors, Software Transactional Memory , Mutexes, Semaphores.
- are able to differentiate between parallel and concurrent programs on implementation, as well as on type level.
- know the issues of concurrent programming: Data Races, Dead Locks, Live Locks and Starvation.
- know simple basics of process caluli.
Lectures
Written exam (50%) and weekly exercises (50%)
For a positive grade, a minimum of 50% of the possible points must be achieved in each part of the examination.
None
- Armstrong, Joe (2013): Programming Erlang: software for a concurrent world. Pragmatic Bookshelf.
- Herlihy, Maurice et al. (2020): The art of multiprocessor programming. Newnes.
- Marlow, Simon (2011): ‘Parallel and concurrent programming in Haskell.’ In: Central European Functional Programming School. Springer, p. 339–401.
- Mattson, Timothy G; Sanders, Beverly; Massingill, Berna (2004): Patterns for parallel programming. Pearson Education.
- Urma, Raoul-Gabriel; Mycroft, Alan; Fusco, Mario (2018): Modern Java in Action. Manning Publications.
- Vernon, Vaughn (2015): Reactive messaging patterns with the Actor model: applications and integration in Scala and Akka. Addison-Wesley Professional.
Face-to-face instruction with mandatory attendance