Write more effective programs that execute multiple instructions simultaneously. Learn the fundamentals of parallel and concurrent programming in Python.
Overview
Syllabus
Introduction
- Learn parallel programming basics
- What you should know
- Exercise files
- Sequential vs. parallel computing
- Parallel computing architectures
- Shared vs. distributed memory
- Thread vs. process
- Concurrent vs. parallel execution
- Global interpreter lock: Python demo
- Multiple threads: Python demo
- Multiple processes: Python demo
- Execution scheduling
- Execution scheduling: Python demo
- Thread lifecycle
- Thread lifecycle: Python demo
- Daemon thread
- Daemon thread: Python demo
- Data race
- Data race: Python demo
- Mutual exclusion
- Mutual exclusion: Python demo
- Reentrant lock
- Rlock: Python demo
- Try lock
- Non-blocking acquire: Python demo
- Read-write lock
- Read-write lock: Python demo
- Deadlock
- Deadlock: Python demo
- Abandoned lock
- Abandoned lock: Python demo
- Starvation
- Starvation: Python demo
- Livelock
- Livelock: Python demo
- Next steps
Taught by
Olivia Chiu Stone and Barron Stone