Final Project
Final Demo and Deliverable
You must submit all of your current code and supporting files as well as a final report as a 5-10 page PDF, and you must demo your project to me in person during the second-to-last week of classes.
In your report, include the following sections: Background, Building and Testing, Analysis and Results, Insights, Contributions, and Future Work. Discuss how you applied the concepts we learned in this class. Elaborate on any difficulties encountered and how you overcame them. Be honest about where these contributions may not have ended up rising to the level you had hoped or had anticipated in your proposal. Provide performance results and analysis. Give a few concrete suggestions about how the project could be continued or improved in the future.
Be detailed, but do not ramble. Check for grammar and spelling mistakes before you submit. Aim for 5-10 pages single-spaced. I recommend typesetting it with LaTeX for readability. Include references where appropriate. Take a few minutes to skim this paper and do your best to adhere to the "rules" (i.e., best practices) for any parallel performance results you report.
As with the project draft deliverable, if your group has been using online source control (e.g., Github) just include the repo URL at the top of your report. Additionally, if you worked entirely in your scratch folder on the cluster, you can just mention that at the top of your report and I will use that folder as your submission (try to clean it up a bit first!).
Make sure your repository or folder contains all relevant source code and instructions on how to build and run it (Makefile and/or automated test script preferred!). Unless otherwise arranged, your code should compile and run on the cluster. If your program requires any data sets, make sure you include these as well.
NOTE: I will attempt to reproduce your results, and if I am unable to do so,
it will negatively affect your grade. Please make it as easy for me to
reproduce your results; e.g., by providing automated testing scripts or detailed
instructions in a README.txt
or your report.
Your submission will be graded on its correctness, completeness, thoroughness, and scope. Because every project is different, it is impossible to provide a single rubric. Each submission will be graded based on its individual merit. I will provide some (minimal) written feedback and assign you an overall letter grade for this submission according to the following rubric:
- A - Exceptional:
- Significant and well-executed new contribution to a parallel or distributed system.
- Completely automated testing framework clearly demonstrating your novel contribution(s).
- Comprehensive report with descriptions and detailed analysis with citations of relevant sources and a discussion of future work.
- All of the below.
- B - Good:
- Significant insights into a parallel or distributed system, applying many of the concepts discussed in class (may or may not include significant new code).
- Automated testing framework clearly demonstrating your insights (e.g., interesting tradeoffs).
- Comprehensive report with descriptions and detailed analysis with citations of relevant sources and a discussion of future work.
- All of the below.
- C - Satisfactory:
- Demonstrates a parallel or distributed system, using at least two or three concepts discussed in class.
- Reproducible test cases demonstrating strong evidence of correctness and performance improvement(s).
- Report with descriptions and analysis with citations of relevant sources and a discussion of future work.
- All of the below.
- D - Deficient:
- Evidence of a good-faith effort.
- Report explaining in detail all the obstacles encountered, with suggestions about how future groups could avoid these obstacles in the future.
- F - Unacceptable:
- Lack of a good-faith effort.