Evaluation plan: Assignments 40%, Minor1 15%, Minor2 15%, Major 30%
Piazza link: col380
Topic | Supplementary Notes | Book Chapters | |
Introduction | lec1.pdf | Pacheco, GGKK, Quinn Chapter 1 | |
[Performance] The only reason for parallelism | Quanitifying performance improvements analytically lec2_1.pdf, lec2_2.pdf, lec3.pdf | Pacheco Chapter 2.6, GGKK Chapter 5, Quinn Chapter 7 | |
[Opportunities for parallelism/concurrency] Architecture, compiler and OS support | i. Data level parallelism with SIMD, Vector processors lec5.pdf, ii. Instruction Level Parallelism with compiler support lec6.pdf, iii. Thread and process level parallelism with shared and distributed memory address space multi-processors lec7.pdf, iv. Interconnection networks lec11.pdf |
Pacheco Chapter 2.2-2.3, GGKK Chapter 2, 4, Quinn Chapter 2 | |
[Writing parallel programs] C/C++ programming with compiler and library support | i. OpenMP Shared memory parallel programming lec4.pdf, ii. MPI Message Passing parallel programing lec8.pdf, lec12.pdf |
Pacheco Chapter 5, GGKK Chapter 7.10, Quinn Chapter 17, Pacheco Chapter 3, GGKK Chapter 6, Quinn Chapter 4 |
|
[Probelms faced in parallelism/concurrency] Ensuring program correctness, correctness-vs-performance trade-offs |
i. Coherence: Cache coherence and false sharing lec9_lec10.pdf
ii. Synchronization: Locks, barriers, transactional memory lec13.pdf, lec14.pdf, lec15.pdf iii. Concurrency bugs Examples of bugs in production code, where programmer's expectations on deadlocks, program order and program atomicity are violated lec17.pdf, paper.pdf iv. Consistency: Memory consistency models lec16.pdf, Java memory model and Python interpreter coarse lock GILlec18.pdf |
Hennessy 3.1-3.2, 4.1-4.3, 5.1-5.4 | |
[Parallel program design] Algorithms and data structures | i. PRAM computation model lec20.pdf, pram_1.mp4,
pram_2.mp4,
pram_3.mp4
ii. Foster's design methodology lec21.pdf, foster.mp4 iii. Brent's theorem for upper bound lec22.pdf, brent.mp4 iii. Pointer jumping technique lec23.pdf, pointer_jumping.mp4 iv. Parallel reduction applications lec23b.pdf, parallel_reduction.mp4 v. Euler tour technique lec24.pdf, euler_tour.mp4 vi. Tree contraction (rake, compress, shunt) lec25.pdf, tree_contraction.mp4 |
GGKK Chapter 3, Quinn Chapter 3, brent_wikipedia |