Introduction
Learn parallel programming basics
()
What you should know
()
Exercise files
()
1. Synchronization
Condition variable
()
Condition variable: Java demo
()
Producer–consumer
()
Producer–consumer: Java demo
()
Semaphore
()
Semaphore: Java demo
()
2. Barriers
Barrier
()
Race condition
()
Race condition: Java demo
()
Barrier: Java demo
()
CountDownLatch: Java demo
()
3. Asynchronous Tasks
Computational graph
()
Thread pool
()
Thread pool: Java demo
()
Future
()
Future: Java demo
()
Divide and conquer
()
Divide and conquer: Java demo
()
4. Evaluating Parallel Performance
Speedup, latency, and throughput
()
Amdahl's law
()
Measure speedup
()
Measure speedup: Java demo
()
5. Designing Parallel Programs
Partitioning
()
Communication
()
Agglomeration
()
Mapping
()
6. Challenge Problems
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
()
Conclusion
Next steps
()
Additional resources
()
Ex_Files_Parallel_Concurrent_Prog_Java_2.zip
(541 KB)