Evolving Exascale Applications Via Graphs
There is little point to building expensive exaflop-class computing machines if applications are not available to exploit the tremendous scale and parallelism. Consider that exaflop-class supercomputers will exhibit billion-way parallelism, and that calculations will be restricted by energy consumption, heat generation, and data movement. This level of complexity is sufficient to stymy application development, which is why simplifying the development process is a crucial part of a unified exascale strategy.
This formal CnC graph was developed from an initial sketch of LULESH mapped on a whiteboard and embodies good software design practice.
Evolving applications toward exascale is one of the main aims of the Data Intensive Scientific Computing group at Pacific Northwest National Laboratory. Scientists there are working to establish formal design processes based on Concurrent Collections (CnC), a graph programming model that combines task and data parallelism.
In a short writeup highlighting their work, the group notes that “hiding the complexities that underpin exascale system operations from application developers is a critical challenge facing teams designing next-generation supercomputers.” By combining task and data parallelism, the scientists are progressing toward this important goal.
The team used their technique to transform the Livermore Unstructured Lagrangian Explicit Shock Hydrodynamics (LULESH) proxy application code that models hydrodynamics (the motion of materials relative to each other when subjected to forces) into a complete CnC specification. The specification can be implemented and executed using a paradigm that takes advantage of the massive parallelism and power-conserving features of future exaflop-class systems.
“By developing formal processes that capture data and control dependencies and separate computations from implementation issues, the complexities of exascale systems can be hidden, dramatically decreasing development cost and increasing opportunities for automatic performance optimizations,” explains an article from PNNL highlighting the research.
Instead of the time-consuming method of generating code via trial and error, the CnC specification begins with an overview of the dataflow between software components. The next step is formalizing opportunities for analysis and optimization of parallelism, energy efficiency, data movement, and faults. In the case of the CnC model for LULESH, the team started with a whiteboard sketch that came out of an application workshop. Domain experts with functional knowledge provided the application logic for the original assessment. The sketch was transformed into a formal graph at which point the PNNL scientists performed static analysis, applied optimization techniques, and identified bugs. Thus some costs commonly associated with development and testing processes were reduced before any code was written.
“The formalization of scientific applications as graphs is extremely important and enlightening,” said Dr. John Feo, director of the Center for Adaptive Supercomputer Software and Data Intensive Scientific Computing group lead at PNNL. “In addition to providing a natural and obvious pathway for application development, we identified communications and optimization issues that could be addressed with added clarity before the computation steps were even implemented.”
LULESH code was segmented into smaller parts, each corresponding to the formal CnC procedures. Then, the LULESH code was wrapped in CnC steps before executing the application to assess its correctness.
The CnC application method now is being applied to a second software code, MiniGMG, another compact geometric multigrid benchmark for optimization, architecture, and algorithmic research. PNNL’s Data Intensive Scientific Computing group also is engaged in using LULESH to develop and evaluate other tuning models.
This research was carried out as part of the Traleika Glacier X-Stack program, which brings together industrial, academic, and DOE Co-Design centers to address exascale software stack applications. The Traleika Glacier team includes: Intel, the University of Delaware, ET International, Reservoir Labs, the University of Illinois at Urbana-Champaign, Rice University, the University of California, San Diego, and PNNL.