
Auto-tuning has recently received its fair share of attention from the High Performance Computing community. Most auto-tuning approaches are specialized to work either on specific domains - dense/sparse linear algebra, stencil computations etc.; or only at certain stages of program execution - compile-time, launch-time or run-time. Real scientific applications, however, demand a cohesive environment that can efficiently provide auto-tuning solutions at all stages of application development and deployment. Towards that end, I am working on developing a unified end-to-end approach to auto-tuning scientific applications. A unique feature of this search-based auto-tuning system is a powerful parallel search algorithm, which leverages parallelism to effectively navigate the search space defined by compiler-level and application-level tunable parameters.
My current work focuses on making run-time (online) tuning of parallel programs a practical goal. The proposed system will provide tuning options not only for symbolic parameters but also for parameters that require dynamic code-generation and compilation. Conceptually, this can be viewed as a merger of the traditional and just-in-time compilation.
For more information, please visit the project website: Active Harmony, where you can also download the latest stable release of the auto-tuning system.