Final Project Submission & Presentation
- Inlämningsdatum 18 mar 2021 av 23.59
- Poäng 9
- Lämnar in en filuppladdning
- Filtyper pdf
- Tillgänglig till 30 jun 2021 kl 23.59
A description of the project and the different tasks to complete are available at Project Description: Game of Life in Sparse Format.
The completion of the project assignment consists of:
- Submission of the code and documentation on Github, following the list in the grading criteria below. Upload the codes and documentation by March 18.
- Submission of the slide presentation (maximum 20 slides including the additional slides) in pdf format. The slide presentation must include the link to the code developed. Upload the slides by March 18.
- 20 Minute Presentation (15 minutes for presentation and 5minutes for questions) on Friday, March 19 (presentations tentatively scheduled for 1:00 PM). The presentation must cover all aspects of the tasks.
Grading Criteria
The completion of the project will result in a +1 grade. For instance, if you completed all the bonus exercises and the final project requirement, you will obtain an A as a final score.
The submission of the final project presentation is not compulsory and meant to increase your final grade. In order to pass the course, make sure that you submitted all three assignments and have passed them. Your final grade will be determined by the number of bonus exercises you passed and if you passed the final project presentation. For instance, if you passed all the assignments without completing the bonus exercise and final project, your grade will be E. If you completed all the bonus exercises and not completing the final project, your grade will be B. If you are not submitting the final project presentation, please upload a pdf file stating the final grade you expect to receive.
To pass the project assignment, your code and presentation must include all these elements:
- Prepare all the source code in C/C++, or Fortran, or Python calling C/C++/Fortran for compute-intensive computations.
- Test the implementation with three test cases using a unit testing framework, e.g. Google Test, pFUnit.
- Prepare a building system either with GNU Autotools (not simple
Makefile
) or CMake to build the application and test suites. - Visualize the evolution of the system using ParaView or Visit. For this, you can write the position of the living cells to a file in VTK format (point data) and then use Paraview or Visit to visualize it.
- Consider the usage of HPC libraries/data formats to improve the performance or implement additional features. Which HPC libraries can be used (e.g. BLAS, HDF5, VTK, etc)?
- Analyze the performance of your code (execution time, cache usage, ...) and hotspots (functions that take most of the time) by varying the size of the initial population. For this, you should use the profiler in gperftools and the Linux perf tools (measuring hardware counters).
- Analyze the advantage with respect to dense representation of the game in terms of memory and computation.
- A Git repository containing all the code for the above. At the root level of the repository, include a
README.md
file that outlines:- How to install the dependencies?
- How to build your code?
- How to run the test suite, what do they test for, and why?
- How to run the code, and adjust the initial conditions?
- How to visualize the output data?
- How to reproduce the experiments you presented in the presentation?
Q&A
Q: What if I still did not pass the assignment after resubmission?
A: If you did not pass an assignment (no receiving full scores of an assignment), please resubmit the assignment by the time that is stated in the assignment comment.
Q: How do I obtain extra points?
A: If you didn't complete the bonus exercises and you would like to increase your final grade (+1 for each bonus exercise), we allow you to submit the bonus exercises of Assignment I, II, and III by Friday, March 19.
Q: What if I need help?
A: You can write in the Discussion: Final Project for questions related to the project.
Q: What to include in the presentation?
A: As stated in the description and grading criteria, the presentation must cover all aspects of the tasks. However, you are allowed to put more weight into the interesting parts, e.g. benchmark and profiling results, visualizations, etc.
Matris
Kriterier | Bedömningar | Poäng | ||
---|---|---|---|---|
Source code
Prepare all the source code in C, or Fortran, or Python calling C/Fortran for compute-intensive computations. All the code should be in a Git repository.
tröskel:
poäng
|
|
poäng
--
|
||
Test suite
Test the implementation with three test cases using a unit testing framework, e.g. Google Test, pFUnit.
tröskel:
poäng
|
|
poäng
--
|
||
Build system
Prepare a building system either with GNU Autotools (not simple Makefile) or CMake to build the application and test suites.
tröskel:
poäng
|
|
poäng
--
|
||
Visualization
Visualize the evolution of the system using ParaView or Visit. For this, you can write the position of the living cells to a file in VTK format (point data) and then use Paraview or Visit to visualize it.
tröskel:
poäng
|
|
poäng
--
|
||
Use of HPC libraries/data formats
Consider the usage of HPC libraries/data formats to improve the performance or implement additional features. Which HPC libraries can be used (e.g. BLAS, HDF5, VTK, etc)?
tröskel:
poäng
|
|
poäng
--
|
||
Performance analysis
Analyze the performance of your code (execution time, cache usage, ...) and hotspots (functions that take most of the time) by varying the size of the initial population. For this, you should use the profiler in gperftools and the Linux perf tools (measuring hardware counters).
tröskel:
poäng
|
|
poäng
--
|
||
Discussion
Analyze the advantage with respect to dense representation of the game in terms of memory and computation.
tröskel:
poäng
|
|
poäng
--
|
||
Documentation
At the root level of the repository, include a README.md file that outlines how to install the dependencies; How to build your code; How to run the test suite, what do they test for, and why; How to run the code, and adjust the initial conditions; How to visualize the output data; How to reproduce the experiments you presented in the presentation.
tröskel:
poäng
|
|
poäng
--
|
||
Presentation
A 20 Minute Presentation (15 minutes for presentation and 5minutes for questions) with presentation slides covering all aspects of the tasks. The slides are uploaded to Canvas.
tröskel:
poäng
|
|
poäng
--
|
||
Poängsumma:
9
av 9
|