Architecture Research Project (Project 2)
CS 441, Dr. Lawlor
A substantial chunk of your course grade comes from the two semester
projects. Project 1 was entirely research-oriented. Project 2
will be more applied and implementation-oriented. From the
syllabus:
PROJ2:
a software development or hardware performance analysis project, due
in December.
Here's what's left of the semester, before the final on December 16:
December 2009
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12 <- topic description (and last day of class)
13 14 15 16 17 18 19 <- final code (and finals week)
The deliverables are:
- In class on December 8, be ready to very briefly (a few sentences) describe your project topic.
- Turn in your code and performance analysis by midnight Friday, December 18.
Possible Project 2 Topics
Or choose your own topic! Topics should all be applied
work of the form "Build a new X", not just paper research.
- Hardware performance analysis: benchmark some test programs that demonstrates some aspect of modern hardware, such as:
- Out-of-order execution (e.g., reorder instructions manually, compare to automatic reordering)
- Branch
prediction and execution speculation (e.g., reverse-engineer x86 branch
hardware, like compare always-taken branch performance with even-odd
branch performance)
- Dependency tracking (e.g., benchmark performance benefit from decreasing dependency tree depth)
- Cache prefetching and out-of-order loads and stores (e.g., compare cached loads with cached loads matching a previous store)
- Software development: write and benchmark something on any new parallel high-performance architecture, such as:
- SIMD
- Multicore
- MPI cluster
- GPU
- Or build a new language that magically expands to cover any of these!
Your starting code can be something completely new, something you found on the net (with a citation), an extension of HW4, the mandelbrot set renderer from the lecture notes, or any of the example codes from say CS 480.