Parallel and Concurrent Programming
Beschrijving
Software systems are becoming highly concurrent and parallel to utilize modern multicore architectures and increasing speed and bandwidth in networks. In the multicore era, all performance-critical software employs some form of concurrent programming; typically shared memory concurrency. In this setting, parallelism and concurrency are the dominant programming paradigms for performance gains. Writing correct and efficient parallel and concurrent programs is challenging, and requires understanding the behaviors of the primitives and reason about them. This course aims to explore parallel and concurrent programming approaches along with their analysis techniques.
This course aims to give students a deep understanding and hands-on experience of parallel and concurrent programming and analyzing them.
Lecture plan
In this course, we will cover three parts: parallelism, concurrency, and automated analysis techniques for concurrency.
Parallelism can bring significant performance improvement as multiple independent components execute in parallel and thereby achieve (almost) linear speedup to the number of processing units.
In the second part, we will focus on concurrent programs. Concurrency is another paradigm for efficiently programming shared memory hardware. In concurrency, multiple threads execute independently with occasional communication via the shared memory. However, concurrent programs demonstrate many subtle complexities and thereby developing correct and optimal concurrency programs is a challenging problem.
In the third part we will focus on the automated analysis approaches for concurrency. We will focus on concurrency bugs and analysis techniques for various properties such as data race, consistency checking, and so on.
Outline of Lectures:
Parallelism (3 lectures):
Parallel programming
Automatic parallelization
Dependency analysis
Concurrency (5 lectures):
Concurrent programming
Correctness of concurrent programs
Relaxed memory concurrency
Automated analysis techniques (2 lectures):
Property checking e.g. data race, consistency
Reviews0 reviews
Heb jij dit vak gevolgd?
Deel je ervaring met toekomstige studenten. Inloggen met je TU Delft mailadres duurt één minuut.
Schrijf een review