Theme: Parallelism

Introduction to parallelism and concurrency


Level: Beginner

Typical duration: 1 day

Lectures: 7h

Labs: 1h

Course code: MUL1

Concurrency and parallelism are firm elements of any modern computing infrastructure. This course offers an introduction to these important concepts.

Training topics

Basics of parallelism

We begin with a brief refresher of recent hardware offerings to modern-day programmers. We then open the main discussion with an overview of the laws and practical aspects of scalability opening. Key parallelism data structures, patterns and algorithms are shown, supported by practical examples. The main threats to scalability and mitigation strategies are discussed in the context of real-life optimization problems.

A short hands-on lab demonstrates the main aspects of scalability and synchronization.

 

Results

After the course, the students will:
- Understand key parallelism and concurrency concepts
- Estimate the scalability limits of software
- Write correct parallel code avoiding synchronization issues
- Use basic parallel structures and design patterns

Training concepts

Laws of parallelism, their implementation in practice, concurrency and parallelism, basic data structures and algorithms, synchronization, coherence