Introduction to parallelism and concurrency
Typical duration: 1 day
Course code: MUL1
Concurrency and parallelism are firm elements of any modern computing infrastructure. This course offers an introduction to these important concepts.
Training topicsBasics 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.
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
Laws of parallelism, their implementation in practice, concurrency and parallelism, basic data structures and algorithms, synchronization, coherence