Proposal due date: Wednesday, April 14th (earlier is fine)
Project due date: Sunday, April 25th
You are to design, implement and evaluate a project of your choosing. The emphasis of the project can vary, from implementation of a new benchmark, to modification of an existing benchmark, to measurement of several system alternatives, to comparison of different computer benchmarks. Whatever you choose, your projects will require a detailed performance evaluation report.
You will submit a proposal to me about 1.5 weeks before your project is due. In the proposal, you will outline the work that will constitute your project. It should include:
Your proposal should be about 1-2 pages in length.
There are many possible projects that are suitable. If in doubt, you can run ideas by me briefly via email before starting work on the proposal.
This project is not intended to be an extra large project. Roughly, it should be the same size in total effort as your other projects (1 and 2). So, don't bite off more than you can chew. Especially remember to allocate appropriate time and effort to any new technology you incorporate into your project that you need to learn.
Below is a list of some example topics for projects and should not be considered a complete list of possibilities. You will do a better project, and have more fun doing it, if you choose a performance problem that interests you.
Simulate a complex system, as in project 1 but for a computer system.
Measure the effect of key system parameters (factors) on computer or network performance, as in Project 2.
Evaluate the effectiveness of several benchmarks in predicting pertinent application performance, as in Project 3 but for more benchmarks or more systems.
Analyze the communication parameters of some computer network as a function of system load.
Analyze the performance of some interesting machine using standard benchmark programs.
Identify the bottlenecks in some interactive computer system and perhaps tune it to obtain better performance.
Simulate and compare the behavior of various I/O caching policies.
Develop a benchmark to test the throughput and response time of a Web server.
Develop a synthetic benchmark and see how it correlates with the overall performance of the SPEC benchmarks.
Determine how well physical distance between hosts on the Internet determines access time.
Comparison of C versus Java for an application-centric workload.
Any chosen project should, of course, pertain to material covered in class.
No matter what the implementation effort of your project, you must include a report. The focus of the report may vary, somewhat, but it will contain elements common to the evaluation summaries we have seen thus far in class, including:
A 200-300 word abstract, clearly summarizing your chosen problem, stating why it is interesting, what methodology you used to address it and a summary of your main results and conclusions.
Introduction, indicating motivation, problem statement and hypotheses.
Background, providing any details needed to understand your work. It should include a summary of work that you know about in this area (with proper citations, as appropriate).
Detailed explanation of your methodology, including design of experiments, providing details on measurement methods, factors, levels, etc.
Results and analysis. This should include an explanation and interpretation of your results using appropriate statistical techniques.
Summary, including conclusions you can draw from your analysis. For this project, you should include a brief description of what you learned above and beyond the scientific conclusions.
A grading guide of where points should be allocated for your project based on amount of effort it will require (an updated version of what appeared in your proposal).
You must turn in appropriate material so your project can be evaluated:
Your initial proposal that I returned to you (with marks).
Your report (your report should be in PDF or postscript or text but not MS Word or any other native document format).
All source code used or developed in your project, including header files. Please include a Makefile, too, for building your code.
Tar up (with gzip) your files, for example:
mkdir login-name cp * login-name /* copy all your files to submit to directory */ tar -czf login-name.tgz long-name
then attach login-name.tgz to an email with "cs533_proj4" as the
elm -scs525_proj4 < login-name.tgz to send it,
if that is easier.
Send all questions to (claypool at cs.wpi.edu).