For the 757 course project, you have four options: 1) work alone to write
up a comprehensive literature survey of a relevant subtopic in 757; 2) write and
evaluate a substantial parallel application in at least 2 different parallel
programming environments; 3) implement at logic level some important and
relatively complex subsystem of a parallel system; 4) evaluate a new idea or
modest extension to prior work, or re-implement and re-evaluate a prior
proposal, possibly within the context of new workloads or different
simulators.
You are encouraged to come up with your own ideas, but a list is provided
here to help you in case you are stuck.
Requirements:
·
You need to work in teams of 2-4 students to complete options 2-4 (for
option 1 you may work alone).
Smaller or larger teams must adjust the scope of their work to match the
size of the team.
·
You must submit a written project proposal of up to two pages in class on
Friday, March 27, 2009. The
proposal must include the names of all team members, a summary of the proposed
topic and a research plan that outlines how you will accomplish your goals. For
a hardware implementation project, you must also describe your proposed testbench and validation methodology.
·
Project findings will be presented orally during class time on May 4, 6,
and 8, 2009 (the last week of class).
·
Written project reports that fully document your activities and findings
are due at the end of the day on Friday, May 8, 2009.
·
The project report must also include a statement of work that identifies
the contributions of each individual on the team. This statement of work must reflect a
team consensus and must be signed by all team members. I recommend that you structure this
statement as a table with a row for each project milestone, a column for each
team member, and the percentage contribution of each team member to each
milestone in the entries in the table.
For the first option, you should summarize work in an area, giving
extensive references, present opinions of others for and against various
options (with references), and conclude with your opinion of the strengths and
weaknesses of arguments presented above. You will be graded on the completeness
of your survey, the accuracy of your summaries, the support you give for your
opinions, and the quality of your presentation. Since a survey paper is
"safer" than a research project, I will hold survey papers to a higher
standard of completeness and analysis of the literature.
For the second option, you must choose a substantial, nontrivial
application that is currently serial/single-threaded (perhaps one from your own
research area) and write at least 2 parallel versions of it. You can choose parallel programming
environments from pthreads/openmp
(counts as one), MPI, CUDA, MapReduce, vector/SSE, etc. Your project will be graded on your
ability to extract parallelism from your application as well as your ability to
identify, explain, and resolve parallelism bottlenecks in your program.
For the third option (hardware implementation), here are some possible
suggestions. Note that you are
largely on your own for tool support with hardware projects, so you should
probably rely on pre-existing familiarity with simulation and synthesis tools from
prior research or coursework (e.g. ECE 551):
·
Design and evaluate a fully-functional interconnection network router
with advanced features (e.g. virtual multicast trees, single-cycle routing,
express virtual channels, flattened butterfly topology, etc.).
·
Design and evaluate an advanced, high-concurrency cache coherence
controller and/or directory coherence controller, including all details of
MSHRs, transient states, etc.
·
Design and evaluate an advanced DRAM controller with features like read
bypassing and different open-page/closed-page policies.
The fourth option is very open-ended: you can also work on any computer
architecture-related research topic pertinent to the course. Your goal should be to replicate the
scope and quality of a typical conference paper in computer architecture. It is not likely that you will reach
this goal during the semester, but you should at least have a good start
towards that objective. The topic
need not be original or novel, but that is encouraged.
I prefer that you come up with your own ideas of what you are interested
in. Attached are some ideas if you get stuck.