Description
In this course, you will learn:
- Join instructors Barron and Olivia Stone as they introduce the basics of parallel programming in Python, providing the foundational knowledge you need to write more efficient, performant code.
- Learn concepts like threading and mutual exclusion in a fun and informative way, relating them to everyday activities you perform in the kitchen. To cement the ideas, they demo them in action using Python.
Syllabus:
- Introduction
- Learn parallel programming basics
- What you should know
- Exercise Files
1. Parallel Computing Hardware
- Sequential vs. parallel computing
- Parallel computing architectures
- Shared vs. distributed memory
2. Threads and Processes
- 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
3. Mutual Exclusion
- Data race
- Data race: Python demo
- Mutual exclusion
- Mutual exclusion: Python demo
4. Locks
- Reentrant lock
- Rlock: Python demo
- Try lock
- Non-blocking acquire: Python demo
- Read-write lock
- Read-write lock: Python demo
5. Liveness
- Deadlock
- Deadlock: Python demo
- Abandoned lock
- Abandoned lock: Python demo
- Starvation
- Starvation: Python demo
- Livelock
- Livelock: Python demo