Static Program Analysis for Performance Modeling
Kewen Meng
Committee: Boyana Norris (chair), Allen Malony, Hank Childs
Directed Research Project(Dec 2016)
Keywords: HPC; performance; modeling; static analysis

The performance model of an application can provide understanding about its runtime behavior on particular hardware. Such information can be analyzed by developers for performance tuning. However, model building and analyzing is frequently ignored during software development until performance problems arise because they require significant expertise and can involve many time-consuming application runs. In this paper, we propose a faster, accurate, flexible and user-friendly tool, Mira, for generating intuitive performance models by applying static program analysis, targeting scientific applications running on supercomputers. Our tool parses both the source and binary to estimate performance attributes with better accuracy than considering just source or just binary code. Because our analysis is static, the target program does not need to be executed on the target architecture, which enables users to perform analysis on available machines instead of conducting expensive experiments on potentially expensive resources. Moreover, statically generated models enable performance prediction on non-existent or unavailable architectures. In addition to flexibility, because model generation time is significantly reduced compared to dynamic analysis approaches, our method is suitable for rapid application performance analysis and improvement. We present several benchmark validation results to demonstrate the current capabilities of our approach.