These projects require GCC (or another C++ compiler), GNU Make, and the Intel Cilk++ compiler, all of which are freely available. Some projects also require Intel VTune, which must be purchased.

Project Descriptions

Project Structure and Grading

0 Getting started (PDF) (ZIP)
1 Bit hacks (PDF) (ZIP)
2-1 Evaluating performance via profiling (PDF) (ZIP - 1.3MB)
2-2 Iterative performance optimization (PDF) (ZIP)
3 Writing a dynamic storage allocator (PDF) (ZIP)
4-1 Parallel programming with Cilk I (PDF) (ZIP - 1.1MB)
4-2 Parallel programming with Cilk II (PDF) (ZIP - 1.1MB)
5 Parallelism and data synchronization (PDF)

Lock-based queue (RTF)

Lock-free queue (RTF)

6 Ray tracing performance derby (PDF)

(ZIP - 1.2MB)

Reference images:

Scene 1 (PNG - 1.5MB)

Scene 2 (PNG)

Scene 3 (BMP - 1.0MB)