Performance Modeling for Exascale Autotuning: An Integrated Approach
|Title||Performance Modeling for Exascale Autotuning: An Integrated Approach|
|Year of Publication||2013|
|Authors||Balaprakash, P, Wild, SM, Hovland, PD|
The usual suspects — shrinking integrated circuit feature sizes, heterogeneous nodes with many-core processors, deep memory hierarchies, an ever-present power wall, energy efficiency demands, and resiliency concerns — make exascale application and system co-design a daunting, complex task. Providing effective model-driven prediction and optimization capabilities at runtime and a software stack that includes model-informed autotuning are key to mitigating this complexity. We define autotuning for application-system co-design as a systematic process of navigating the space defined by other software and hardware parameters that affect the performance metrics of the application and the system. Autotuning should orchestrate hardware and software-provided knobs to reduce execution time, power draw, energy consumption, and other constituent features, such as memory footprints. Current autotuning approaches, however, are unlikely to be successful for application-system co-design at exascale: the number of parameters exposed at the hardware and software levels will be large, drastically increasing the decision space; rigorous approaches to optimizing multiple conflicting objectives simultaneously are absent; and there is a lack of multiple-metric performance models. Significant research is required to develop an integrated modeling, machine learning, and search approach in order to provide model-driven prediction and optimization capabilities at runtime.