Report Project choosing guideline
Project guidelines
The final project gives you the opportunity to work intensively into a problem of your choosing. The choice of the subject is completely up to you. The subject of your project should be challenging ans as the same time you should learn something relevant to the themes of this class.
Choosing your project
In order to choose your project, you may choose projects you have attempted in other classes and in application area that is interesting to you and that use scientific computing, or machine learning. This fields can often benefit greatly from parallelization. Other project ideas can come from the suggested references or from known numerical algorithms.
End of the project
At the of the project you should turn a report in pdf format and an archive containing the source code of your work.
Guideline for the report
Title
Please provide the title of your project, followed by the names of all team members. Teams may include up to two students.
Summary
Summarize your project in no more than 2-3 sentences. Briefly, describe what you plan to do.
Background
If your project involves accelerating a compute-intensive application, describe the application or piece of the application you are going to implement in more detail. This description need only be a few paragraphs. It might be helpful to include a block diagram or pseudocode of the basic idea. An important detail is what aspects of the problem might benefit from parallelism? and why? This description should be few paragraph long.
Challenge
- Describe why the problem is challenging.
- What aspects of the problem might make it difficult to parallelize? What to you expect to achieve by doing the project?
- Describe the workload: the dependencies, its memory access characteristics, the locality of the data, the computation/communication ratio, divergences in the computation.
- Describe constraints: What are the properties of the system that make mapping the workload to it challenging?
Approach
- Explain how your implementation works. It might be very useful to include a figure here illustrating your work.
- Describe how you mapped the problem to the target parallel system. More precisely how do the data structures and operations map to machine concepts like cores and threads.
- Explain the process of optimization : what you tried but didn't work? How did you arrive at your solution?
Results
- Evaluate your results and explain differences to the expected results.
- Define how you measured performance of your implementation.
- Give the size of the data you use to test your implementation.
- Study what is the impact of data size on the performances.
- Provide graphs of speedup or execute time. Precisely define the configurations being compared.
- Explain why the performances you obtain are not optimal.
References
- Provide a list of references used in the project.
List of work by each student
- If your project is a team project, please list the work performed by each partner.