CIS 700 - Special Topic: Multiprocessor Computer Architecture & Server Workloads
Spring 2004
Description
The course research project is intended to allow you to develop some
hands-on experience working with commercial workloads and the various
hardware techniques we've been talking about. The project should be
done in groups of two, but groups of one or three are acceptable if
you talk to me first.
The end results should be a project report that reads like a
"mini-paper". It should have the same basic structure as the papers
we've been reading (e.g., introduction, project description, methods,
evaluation, related work, future work, conclusions, references), but
it should be approximately half the length of a conference paper (it
should be perhaps around 4000-5000 words, if you want a number; do not
exceed 10,000 words).
As only 5 weeks of the semester remain, you'll obvious not be able
tackle as ambitious a project as the research papers we've been
reading (which often are a year or more work by one or more
experienced researchers). Keep this limitation in mind when you pick
a topic; don't be too aggressive. Alternatively, ideally you would
pick a topic with possibilities for expansion and/or future work that
you can discuss in your project report. My personal philosophy on
selecting topics for a group project such as this: propose a project
with both a "sure-thing" results and a more risky result. This way
you have at least something to write about, even if the more risky
idea does not pan out. You need to have at least something
working to satisfactory complete the project.
A list of project ideas is given below.
Grading
The "idea" part of the project (basic project plan, motivation as to
why you selected this project), the "research" part of the project
(methods, evaluation, results), and the "presentation" of these ideas
(both in the report and in-class presentation) will all be weighted
approximately equally when assigning grades. Excelling on one of
these aspects of the project can offset a weakness in one of the other
aspects, but all three of the aspects must be satisfactory to receive
an overall satisfactory grade.
Tools Available
I will make available the tools, simulators, and workloads described
in "Simulating a $2M server on a $2k PC". These will allows you
simulate, characterize, and/or evaluate new ideas and workloads. We
also have a number of dual-processor machines in the department.
Unfortunately, we don't have a larger multiprocessor on which to run
experiments.
Schedule
- Project Proposal - March 24th (One week): A one-page e-mail with
the brief description of the project topic.
- Status Update - April 7th (Three weeks): A one or two page
status update, including any deviation from the original project
plan.
- In-class Presentation - April 21st (Five weeks): A 10 minute
presentation with questions from the class.
- Report - TDB (sometime after the presentation): a "paper-like"
report describing your project. You should write it in the style
and tone of a conference paper, but it is about half the length of
the papers we've been reading.
Project Ideas/Possibilities
- Extending or reproducing results from any of the papers we read for class
- Evaluation of Directory protocols and Snooping protocols
- Evaluating the MOESI states
- Extending/evaluating Token Coherence
- Characterizing a commercial workload or workloads (for sharing patterns, miss rates, etc.)
- Implement a new commercial workload based on an existing benchmark (or create a new one).
- Evaluating an optimization for migratory sharing patterns
- Exploring directory caching schemes
- Applying end-to-end techniques to interconnection networks
- Improving destination-set prediction
- Writing and evaluating a simple multiprocessor server program (or other relevant commercial workload related computation).
- Explore the effectiveness of SEDA and/or cohort scheduling
- Enhancing synchronization (adaptive locks, SLE, locality-aware locks)
- Implementing queue-based locks
- Implementing non-blocking synchronization
- Evaluating Multithreading and multithreaded architectures
- Comparing SMT (simultaneous multi-threading) to CMT (coarse-grain
multithreading)
- Evaluating CMPs
- Identifying bottlenecks in future multiprocessor systems
- Emerging applications of multiprocessors (multimedia, computer vision, etc.)
- Any other ideas you may have...