AbstractWe present a dynamic method for tuning algorithmic parameters of parallel scientific programs. By treating tuning as a separate concern in the software development process, our method supports personalized development of optimization schemes for existing programs that are not easily supported by conventional tuning techniques. We use a compositional framework to transparently combine tuning code with the original program without direct modification of an existing code base. In this way, the inserted tuning module can dynamically search for optimal values of algorithmic parameters, accounting for runtime factors such as input problem size and parallel characteristics of a given execution platform, as well as the architectural or runt...