A Full Program Cache Profiler for High Performance Applications
Summary
Students will be working on building a profiler for high performance applications specifically focusing on cache behavior. Students will measure the performance of data structures under different workloads and observe hotspots in code and find out where opportunities for further optimizations exist and testing implementations of various cache-oblivious algorithms to increase performance.
Job Description
tudent Duties: Students will be responsible for working a minimum of 12 weeks (a full semester) for 30 hours a week. Students will be meeting with me once a week for a weekly check-in for feedback, demonstration of progress, ask questions, and make forward progress on the next guided training tasks.
There are two scientific applications for this proposal: 1. Scientific Application: Students will be working with me to learn and understand how cache-oblivious data structures work in C/C++. 2. Scientific Application: After implementing the algorithms, we will be writing our results and submitting for workshops for publication.
Computational Resources
Students will make use of XSEDE trainings available online [1].
1. Student must first come up to speed on C/C++ tools, including the LLVM Compiler framework. A sample of talks is here: https://www.youtube.com/playlist?list=PLvv0ScY6vfd8NDoT7qUab4VVAWV67oH-N
2. We will then read peer-reviewed papers from IEEE and ACM (exploring roughly 1 paper per week or every 2 weeks)
3/ We will investigate weekly Performance Engineering course ware are MIT on a weekly basis https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-172-performance-engineering-of-software-systems-fall-2018/
4. Students should understand what a profiler is https://www.cse.wustl.edu/~jain/cse567-06/ftp/perf_tools/index.html And some dynamic analysis techniques: https://www.seas.harvard.edu/courses/cs252/2015fa/lectures/Lec08-DynamicAnalysis.pdf
5. Students will first work through understanding the basics of Cache-Oblvious Algorithms and Data structures from: http://erikdemaine.org/papers/BRICS2002/paper.pdf
6. Next students will implement a few data structures and algorithms, and then profiler them
7. Students will work to find good real world benchmarks, mining github repositories for benchmarks that suffer from false-sharing performance related problems.
8. The remaining time will be writing up and polishing collected results.
Student Prerequisites/Conditions/Qualifications
Students should be on-campus or otherwise in the greater Boston area.