Framework for Lifecycle enrichment of HPC Applications on Exascale Heterogeneous Architecture

Architecture Karan Sapra Advisor: Melissa C. Smith Committee Members: Frank A. Feltus, Richard R. Brooks, Walt B. Ligon III Abstract Recently, High Performance Computing (HPC) has experienced advancements with the introduction of multi-core, many-core, and massively parallel architectures such as Intel's Xeon-Phi coprocessors, General Purpose Graphical Processing Units (GPGPUs), and Field Programmable Gate Arrays (FPGAs). Although the aforementioned architectures can provide significant speedup, the performance greatly depends on the optimal choice of architecture for the given application. Furthermore, stepping into the exascale-computing era, heterogeneous supercomputers are gaining popularity because they can provide levels of performance that cannot be achieved on a traditional multi-core system alone. In this research we utilize a qualitative approach for enrichment and acceleration of HPC application. The enrichment of an HPC application is achieved in two phases: Development Phase using our Application-to-Architecture (A2A) followed by utilizing Functional Partitioning (FP) framework during runtime. We evaluate the accuracy of our framework using diverse representative micro-benchmark applications that belong to different regions in the application space. These micro-benchmark applications encompass a broad spectrum of application behavior, making them highly suitable for HPC studies. Motivation Recently, high-performance computing (HPC) has achieved new performance milestones with the introduction of multi-core and many-core architectures such as the General Purpose Graphical Processing Units (GPGPUs) and Intel’s Xeon-Phi coprocessors. These architectures have leveraged significant performance improvements for several scientific applications that have performance limited by choice of the architecture on traditional processors using taskand thread-level parallelism. Although the aforementioned architectures can provide substantial speedup, the performance greatly depends on the choice of architecture for the given application, assuming a certain quality of implementation, which is beyond the scope of this project. Grozea et al. [1] and Bhuiyan [2] show that significant performance improvement is achieved when a given application is mapped to an appropriate architecture. They used an intrusion detection system and Spiking Neural Network (SNN) models: Hodgkin–Huxley [3], Izhikevich [4], Morris–Lecar [5], and Wilson [6], respectively to draw the above conclusion. Furthermore, Heterogeneous systems provide substantial potential of increase in performance factors for applications; however, much of their computing resources are often under utilized due to non-optimal Application-to-Architecture (A2A) mapping. This inefficiency leads to poor application speed-up, sub-optimal scaling efficiency, long queue delays, and increased power consumption. Bharathi et. al. [7] show that a scientific application is sum of multiple sub modular algorithms. Thus, by utilizing appropriate heterogeneous supercomputer architectures we accelerate the performance of applications. Some of current and upcoming supercomputers such as Stampede [8] and Cori [9] tend to provide accelerator heterogeneity to allow more optimal utilization of resources in scientific applications and algorithms. The first step for optimizing a complex scientific application is to create an optimal A2A mapping followed by optimizing performance of the overall application by management of subtasks. Our three major contributions are: • Qualitative Application to Architecture framework for finding optimal architecture for a given application using A2A • Framework for run-time maintenance of Application and Subtask in heterogeneous architecture using Functional Partitioning (FP) • Use of A2A to determine optimal mapping of application task at runtime for optimal performance of overall application using A2A with FP Framework Overview Our framework is a two-stage process beginning at the start of application development. A2A Framework is qualitative mapping and the FP Framework is runtime-mapping framework. The A2A framework is used to identify optimality of architecture for application/task. These application/task can be either whole-or sub-part of the main application or node local post-processing that can be done in-situ. For complex applications like Climate Earth Science Model (CESM) [22] these post processing tasks include visualization, IO write, feature extraction and code data verification. The runtime framework FP is used to map these application-toarchitecture for optimal performance.