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 # | TOPICS | PROJECTS | SUPPORTING FILES | 
|---|---|---|---|
| 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) | 
              Reference images: Scene 1 (PNG - 1.5MB) Scene 2 (PNG) Scene 3 (BMP - 1.0MB)  |          
