X-Stack Program Description
From Modelado Foundation Wiki
X-Stack Program Motivations
- Programming models, languages, and related technologies that have sustained HPC application software development before this program started were inadequate for Exascale era computers. The significant increase in complexity of Exascale platforms due to energy-constrained, billion-way parallelism, with major changes to processor architecture, requires new energy-efficient and resilient programming techniques that are portable across multiple future machine generations.
- We recognized the need for multi-physics to be expressed with a very high level programming model and notation that captures the mathematics needed by the domain scientist and enables compilers and runtime systems to exploit domain specific properties for performance optimizations. It became clear that adaptive applications are critically important to future multi-scale multi-physics computational problems, requiring asynchronous, dynamic mechanisms to support these applications.
- We predicted that novel, declarative frameworks will replace imperative ones at the higher layers of the stack. We also predicted that from the high level representation of an application to a runtime optimized code, multiple semantic and performance preserving transformations will be needed, which will include automated methods for exploration of algorithms and library implementations, virtual topologies, and communication frameworks that optimize computations for a particular platform.
- We also predicted that significant novel compiler and runtime methods will be required in order to enable efficient parallelization of applications and support novel programming models, languages, and transformations, including a new generation of debugging, performance, correctness, refactoring, and transformation tools to support the Exascale programming environment.
- Researchn investments that address fundamental Exascale challenges, align with the identified needs and expectations for Exascale computing, and offer a transition path for existing scientific applications were needed.
X-Stack Program Goals
- The X-Stack Program was created to support research that targets significant advances in programming models, languages, compilers, runtime systems and tools. The expected results of this program are complete solutions to the system software stack for Exascale computing platforms (X-Stack)which address fundamental challenges identified in the ASCR Exascale Programming Challenges Workshop, captured in the workshop report, as well as the ones identified in the ASCR Exascale Tools Workshop, captured in the workshop report. Solutions being researched involve radically new approaches to programming Exascale applications and algorithms and will demonstrate the viability of such solutions in a broad high performance programming context and will enable automatic semantics and performance preserving transformations of applications (possibly with users in the loop).
- A specific goal of the program is to deliver solutions that use self-aware execution frameworks, in which systems observe their runtime behavior, learn, optimize, and manage execution parameters (e.g., locality, resilience), meeting goals by adapting to changing conditions.
X-Stack Program Composition
- Four X-Stack centers (Traleika, DEGAS, D-TEC, XPRESS) were supported to develop complete solutions that address multiple components of the system software stack along the following dimensions:
- Scalability: enable applications to strongly scale to Exascale levels of parallelism;
- Programmability: clearly reduce the burden we are placing on high performance programmers;
- Performance Portability: eliminate or significantly minimize requirements for porting to future platforms;
- Resilience: properly manage fault detection and recovery at all components of the software stack; and
- Energy Efficiency: maximally exploit dynamic energy saving opportunities, leveraging the tradeoffs between energy efficiency, resilience, and performance.
- The complete set of current projects is shown here: X-Stack Program Portfolio
- The four centers have created a vision for their programming environments shown here:
X-Stack Program Timeline
- November 22, 2011: Solicitation Issued
- December 21, 2011: Pre-applications Due
- February 6, 2012: Full proposals received
- April 3-6, 2012: Full proposals reviewed
- August, 2012: Nine projects started
- September, 18-19: Kickoff meeting
- March, 20-22: PI meeting
- August, 2013: Tenth project (PIPER) project started