Computer Science Colloquia
Friday, March 16, 2012
Advisor: Kim Hazelwood
Attending Faculty: Jack Davidson, Marty Humphrey, and Alf Weaver
3:00 PM, Rice Hall, Rm. 404
Ph.D. Quals Exam Presentation
Assessing the Opportunities for Reactive Code Alignment
Static alignment techniques are well studied and have been incorporated into optimizing compilers in order to optimize code locality for the instruction fetch unit in modern processors. However, current static alignment techniques have several limitations that cannot be overcome. In this paper, we explore those limitations and show that reactive realignment, a method where we dynamically monitor running applications, react to symptoms of poor alignment, and adapt the alignment to the current execution environment and program input, is more scalable than static alignment. We present fetches-per-instruction as a runtime indicator of poor alignment. Additionally, we discuss three main opportunities that static alignment techniques cannot leverage, but which are increasingly important in large scale computing systems: microarchitectural differences of cores, dynamic program inputs that exercise different and sometimes alternating code paths, and dynamic branch behavior, including indirect branch behavior and phase changes. Finally, we will present several instances where our trigger for reactive realignment may be incorporated in practice, and discuss the limitations of dynamic alignment.