Due Date: December 4, 2009, 11 pm EST
Project List
Information about Project Presentations
Your final project is to solve a data-intensive problem with massively parallel computing. You will collect the data, implement the tool, and analyze the performance of your end-to-end application.
There are three milestones for your final project. First is a project proposal. Second is a progress report along with a conversation with the teaching staff about the status of your project. And third is the final project submission and an in-class presentation. The complete project will be graded on a 0-100 scale.
You are permitted (and encouraged!) to form teams of two and to partition the work between the team members. The work expected from each person should roughly be on the order of two homework assignments. You can use the class forum to find prospective team members. You may also find and discuss project ideas on the forum or propose a project of your own.
1. Important Dates
| Friday, November 6, 11 pm EST | Project proposals due |
| Friday, December 4, 11 pm EST | Projects due |
| Monday, Dec 7 and Wednesday, Dec 9 | Project presentations |
| Friday, December 11, 11 pm EST | Project webpages due |
2. Project Proposals (5 points)
(Updated 10/26/09) Your group needs to submit a project proposal using this form. We will review each proposal and we may suggest modifications if necessary. Our main concern is the amount of effort a given project will require; either too much or too little is unacceptable.
4. Final Project (85 points)
Your final project can be implemented using CUDA, MPI, EC2, or Hadoop. The hand-in for your final project will include a write-up html file and a working application. Include a README that describes the code and application files, and how your program should be run. We will be grading these projects on the resonance cluster or Amazon’s EC2. If we cannot run your application from the instructions included with your submission, we will not be able to grade this portion of the final project.
Your write-up should address the following questions:
- What is the problem you are trying to solve with this application?
- Describe your data in detail: where did it come from, how did you acquire it, what does it mean, etc.
- Describe your program design and why you chose the features you did.
- How do you use your application (mouse and keyboard functions, input/output, etc)?
- What is the performance of your code? What speedup and efficiency did you achieve? What optimizations did you implement to achieve this speedup?
- What interesting insights did you gain from this project?
- What extensions and improvements can you suggest?
- What did you most enjoy about working on this project? What was the most challenging aspect? What was the most frustrating? What would you do differently next time?
The final project grades are dependent on the following criteria:
- Attempted difficulty: Some projects are harder than others. For example, an assignment based off of one of the homework assignments is probably easier than a completely new application.
- Did you meet your major goals? The most important grading criteria is functionality: A working program will always garner the majority of available points; no credit will be given for non-working programs. A modest solution that works will be graded much more favorably than an ambitious "solution" that core dumps! Also important is implementing your minimum feature set. And finally, we expect to see sufficient answers to your motivating questions.
- Did you do a reasonable job of optimizing and measuring performance? Did you get a reasonable speedup?
5. Project Web Page (5 points)
Finally, you will submit a webpage that describes your final project. We will be posting these off of the course website to hightlight all the great work you did for your projects! We encourage you to include your application code -- but we do not require you to make it public, so the decision is yours. At a minimum, you must include screenshots of your application, along with a brief overview of your project and the features of the system you developed.
To submit your webpage and all linked files and images, place the .html file and all other files in a directory named teammember1lastname-teammemeber2lastname with the appropriate number of team members (e.g. meyer-pfister), and zip the directory. You can upload the file to the course iSite page in the Project Webpage dropbox.
6. Academic Honesty
With the proliferation of vast amounts of code on the internet it may be tempting to copy source code from the web. Although we encourage you to look at other code, all material you hand in is assumed to be your own work. You absolutely must acknowledge any source code that was not written by you. You can mention the original author(s) directly in your source code (comment or header). You should also acknowledge sources in your write-up if you used whole classes or libraries. Do not remove any original copyright notices and headers.
Without prior written approval you may not submit the same material to two courses. Plagiarism, cheating, and other forms of academic dishonesty will be reported to the office of the Dean and can have very serious consequences. If you have any questions about the use of source code derived from other sources please contact tf@cs264.org. For more information see the Harvard Extension School academic guidelines.
For further details regarding the academic honesty policy for CS 264 please check the course policies.