Programming Models

A fundamental challenge in successfully harnessing the power of exascale systems will be effectively expressing and efficiently implementing algorithms that can leverage the full capabilities of the underlying hardware architecture. The complexities of the associated tasks span managing complex memory hierarchies, power, fault tolerance and performance optimization. For increased productivity this must all be done in a way that insulates developers from both the nuances and complexities of hardware architectures and the supporting software layers. Our goals for ExaCT are to investigate the role that domain-specific languages (DSLs) can play when tailored to both the needs of the combustion community as well as the emerging trends of exascale architectures.

Figure 1. The DSL design is driven by co-design activity with the PDE, UQ and SDMA/Visualization efforts within the center.

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].

 

 

 

ExaCT is funded by the DoE office of Advanced Scientific Computing Research (ASCR). Dr. Karen Pao is the program manager and Dr. William Harrod is the director of the ASCR Research Division. U.S. Department of Energy: Office of Science Stanford University The University of Utah Georgia Institute of Technology Lawrence Berkeley National Laboratory Lawrence Livermore National Laboratory Oak Ridge National Laboratory The University of Texas at Austin Rutgers: The State University of New Jersey National Renewable Energy Laboratory (NREL) Los Alamos National Laboratory Sandia National Laboratories