Write more effective programs that execute multiple instructions simultaneously. Learn advanced techniques for parallel and concurrent programming in Python.
Overview
Syllabus
Introduction
- Learn parallel programming basics
- What you should know
- Exercise files
- Condition variable
- Condition variable: Python demo
- Producer-consumer
- Producer-consumer threads: Python demo
- Producer-consumer processes: Python demo
- Semaphore
- Semaphore: Python demo
- Race condition
- Race condition: Python demo
- Barrier
- Barrier: Python demo
- Computational graph
- Thread pool
- Thread pool: Python demo
- Process pool: Python demo
- Future
- Future: Python demo
- Divide and conquer
- Divide and conquer: Python demo
- Speedup, latency, and throughput
- Amdahl's law
- Measure speedup
- Measure speedup: Python demo
- Partitioning
- Communication
- Agglomeration
- Mapping
- Welcome to the challenges
- Challenge: Matrix multiply in Python
- Solution: Matrix multiply in Python
- Challenge: Merge sort in Python
- Solution: Merge sort in Python
- Challenge: Download images in Python
- Solution: Download images in Python
- Additional resources
- Next steps
Taught by
Olivia Chiu Stone and Barron Stone