Performance Assertions for High Performance Applications
Summary
Student(s) will be working on building tools to monitor performance sensitive applications. We will be building infrastructure to support writing 'performance assertions' that monitor the performance of high performance applications (games, graphics, volume visualizations, etc.) running with C/C++ code. Typically these applications are also highly parallelized (using frameworks like OpenMP or CILK), and can be difficult to track using regular profiling tools. Thus, we will be implementing a tool framework for monitoring the performance of these applications using the LLVM compiler framework.
Job Description
Student Duties: Students will be responsible for working a minimum of 12 weeks (a full semester) for 8-10 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 the basics of performance engineering. 2. Scientific Application: We will be implementing actual tools and then writing our results and submitting for workshops for publication.
Computational Resources
Students will make use of XSEDE trainings available online [1].
The student will have to come up to speed on C/C++ tools, including the LLVM Compiler framework.
Training Plan: Weeks 1-2: Work through LLVM Tutorials (https://llvm.org/docs/tutorial/) Weeks 3-4: Learn about the basics of Profiling while writing first iterations of LLVM infrastructure (XSEDE Resource: https://cvw.cac.cornell.edu/Profiling/default) Weeks 5-6: Set up a testing framework for experiments to be run. Weeks 7-8: Spend time getting benchmarks working (Sample benchmarks include: OpenSubDiv, Blender3D, and Quake) Final Weeks: Continue implementation of system and write up results in paper draft.
Student will also be working through lectures on Performance Engineering from MIT Opencourseware: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-172-performance-engineering-of-software-systems-fall-2010/video-lectures/
Student Prerequisites/Conditions/Qualifications
Student should be available and on the Boston Campus.