Component infrastructure for managing performance data and runtime adaptation of parallel applications
Li Li, Boyana Norris, Henrik J. Johansson, Lois Curfman McInnes, Jaideep Ray · 2008
Abstract. Component-based software engineering (CBSE) has been gaining popularity in parallel scientific computing, facilitating the creation and management of large multidisciplinary, multideveloper application codes and providing opportunities for improved performance and numerical accuracy. The CBSE approach enables automation of traditionally manual application configuration and tuning tasks. In addition to encapsulating data and functions, components enable the encapsulation of nonfunctional properties (metadata) whose values affect the performance of a component. By first automatically collecting performance data and associated metadata, and then analyzing it to classify different methods, we can automate the selection of the best-performing component instance among many functionally equivalent implementations. To support this adaptivity, we have designed a set of interfaces and components for managing databases for performance and system information, analysis, and runtime control. We describe our initial implementations of these interfaces and discuss their use in selecting linear solvers in inexact Newton methods for nonlinear partial differential equations (PDEs) and dynamic selection of the most appropriate partitioning strategy at runtime in combustion applications. 1