Programming Models
A domain-specific language is a concise programming language with a syntax that is designed to naturally
express the semantics of a focused problem domain. The use of DSLs can provide significant gains in the productivity and creativity of application scientists,the portability of applications, and greatly enhanced application performance. By using appropriate, narrow, domain abstractions the DSL compilers we are developing can use aggressive optimization techniques, and infer knowledge of the data structures and algorithms — precisely because the concise specification of a domain reduces the scope of required optimizations. A fundamental component of this effort will be to extract these details via a co-design loop with applied math and algorithms, UQ and in situ analysis efforts within the center. The center is developing a DSL infrastructure in two areas: DSL compilers that implement a focused set of abstractions, and a supporting run-time system.
Further efforts within programming models will focus on Automatic Performance Tuning (or Auto-tuning). Auto-tuning is an empirical, feedback-driven optimization technique premised on the belief that computing power can be leveraged to automate the implementation and exploration of optimizations and yield faster time-to-solution than the traditional benchmark-analysis-manual optimization loop. As such, it is particularly useful in ensuring optimal performance on each successive microarchitecture.Our principal focus in this area will be in support of the PDE efforts. Additionally, we will interact with the simulation group to enable a rich hardware/software co-design effort. As an alternative to auto-tuning of kernels we will explore the auto-tuning of whole applications. This effort requires significant custom compiler support; such work using ROSE (http://rosecompiler.org) has demonstrated auto-tuning of applications up to 100K lines and representing a correspondingly large search space that required offline analysis. The development of such auto-tuning requires different auto-tuning infrastructure than the kernel-based auto-tuning.
For more information, please contact Dr. Pat McCormick of Los Alamos National Lab at [email protected].