Model-guided performance tuning for application-level parameters
Authors: Mary W. Hall
Venue:  (2009)

The enormous and growing complexity of today's high-end systems has increased the already significant challenge of maximizing performance on today's equally complex scientific applications. In this research, we address the question of how application programmers can interface with tools and automatically search a space of application-level parameters that are believed to significantly impact the performance of an application. We begin with applications for which a programmer has identified a set of integer-valued parameters believed to impact the performance of the application significantly.We explore two techniques for modeling performance sensitivity of application-level parameters. First, we propose qualitative parameter models that capture common behaviors of an optimization parameter, and use high-level programmer-specified models of the expected performance behavior of individual parameters. A second modeling technique uses statistical methods on a small sample of parameter values to derive a functional model, and to dynamically identify the neighborhood of the best-performing result. By capitalizing on properties of these models, we develop search algorithms to prune the multi-variate search space for the collection of parameters associated with an application.We study performance tuning of three large scientific applications: the LS-DYNA Solver, the visualization component of molecular dynamics simulation, and warping component of biomedical image analysis. We validate our models by comparing against performance results from an exhaustive set of experiments across the parameter range. When compared with the exhaustive experimental data, we show that we are able to drastically reduce search time, examining an average of less than 5% of the search space. Our experimental results show speedups of up to 12.83X as compared to the worst-case in user-given parameter ranges, and speedups of up to 1.75X as compared to the user default parameter value.To support model-guided performance tuning, we have developed a tool called a code isolator. Its purpose is to extract a key computation from the application and creates an executable program, including representative input data. To derive an isolated code fragment that uses storage efficiently and has similar memory hierarchy behavior to the original computation, we develop compiler and runtime optimizations to limit the input data and number of parameters as well as to warm up the cache state. We applied this tool to two case study applications, UMT2K and the LS-DYNA Solver, reducing their size and execution time by several orders of magnitude.In considering the burden of achieving high performance for developers of current scientific and engineering applications on complex high-end computing platforms, model-guided performance tuning is a feasible and useful tool for finding the best-performing application-level parameters. The ACM Portal is published by the Association for Computing Machinery. Copyright © 2010 ACM, Inc. Terms of Usage Privacy Policy Code of Ethics Contact Us Useful downloads: Adobe Acrobat QuickTime Windows Media Player Real Player