Take a deeper dive into the key mechanisms for writing concurrent and parallel programs. Discover how to parallelize a sequential program.
Overview
Syllabus
Introduction
- Learn parallel programming basics
- What you should know
- Exercise files
- Condition variable
- Condition variable: Java demo
- Producer–consumer
- Producer–consumer: Java demo
- Semaphore
- Semaphore: Java demo
- Race condition
- Race condition: Java demo
- Barrier
- Barrier: Java demo
- CountDownLatch: Java demo
- Computational graph
- Thread pool
- Thread pool: Java demo
- Future
- Future: Java demo
- Divide and conquer
- Divide and conquer: Java demo
- Speedup, latency, and throughput
- Amdahl's law
- Measure speedup
- Measure speedup: Java demo
- Partitioning
- Communication
- Agglomeration
- Mapping
- Welcome to the challenges
- Challenge: Matrix multiply in Java
- Solution: Matrix multiply in Java
- Challenge: Merge sort in Java
- Solution: Merge sort in Java
- Challenge: Download images in Java
- Solution: Download images in Java
- Next steps
- Additional resources
Taught by
Olivia Chiu Stone and Barron Stone