Projects
Short descriptions of each project can be found in the syllabus section.
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 |
|---|---|---|---|
| 1 | Algorithmic tricks | (PDF) | (ZIP - 10.3MB) |
| 2-1 | Evaluating performance via profiling | (PDF) | (ZIP - 6.7MB) |
| 2-2 | Iterative performance optimization | (PDF) | (ZIP) |
| 3 | Writing a dynamic storage allocator | (PDF) | (ZIP) |
| 4-1 | Parallel programming with Cilk | (PDF) | (ZIP - 1.2MB) |
| 4-2 | Parallel programming with Cilk, part 2 | (PDF) | (ZIP) |
| 5 | Parallelism and data synchronization | (PDF) |
Lock-based queue (TXT) Lock-free queue (TXT) |
| 6 | Final project | (PDF) | (ZIP) |


