The goal of this assignment is to come up with a plan for your course project.
The project is a more open-ended assignment, where you have the flexibility to pursue an topic or area that interests you. The goal of the first part of this assignment then, is to identify roughly what you will be doing for the rest of the assignment.
I encourage you to come up with your own project idea, but there are suggestions at the end of this assignment for projects for those wishing for more guidance.
You must submit a proposal (1-2 pages long), meeting the guidelines and answering the basic questions enumerated below:
Planning is important. So I will review your proposal and give you feedback. If signficant refinement is needed, I will ask you to hand in a revised proposal in the few weeks after the proposal due date (see syllabus).
You can work in groups for your project.
If you want to recreate and extend a result from a paper, you can do that. Please indicate what paper and exactly how you plan to recreate the experiments and what you hope to learn. This can be an exceptionally valuable endeavor.
Emerging hardware such as FPGAs, GPUs, Crypto and Compression co-processors remain a major challenge for programmers because they introduce not just concurrency but multiple programming models and cross-domain communication. Write a program for multiple accelerators.
Modern processors from Intel and IBM have support for hardware transactional memory. Can you apply successfully to simplify a non-trivial program, improve its performance, or both?