Ecosystem for Early Feedback-Driven HEC Code Development

Status: Completed

Start Date: 2020-08-31

End Date: 2021-03-01

Description: PerfDev is an intuitive, full featured and collaborative automated optimization and code analysis framework that promotes and enables on-the-fly performance optimization of advanced scientific applications to maximize code development and application efficiency. The PerfDev software development and optimization framework enables stateful runtime decomposition and passive exploration of code blocks. PerfDev will enable advanced parameter space exploration using deep learning. Instead of waiting to evaluate application performance at the end of a full development cycle, PerfDev will enable real-time performance feedback loops that facilitate the optimization of individual blocks of code as the application is developed or ported. The production PerfDev APIs will be integrated into multiple production environments (starting with Jupyter in Phase I), will support a range of performance metric tools and hardware (e.g., PAPI/perfcntr, SONAR, Caliper, etc.), and multiple compute languages (e.g., C/C++, Fortran, Python). Towards that goal, and in an effort to demonstrate the importance, feasibility and usability of the proposed framework, the Phase I effort will focus of the following objectives in order to develop a functional PerfDev prototype: Code Cell Identification and Automatic Modularization for NASA Applications: Defining application "code cells" is a key component to enable a PerfDev optimization analysis. The code cells are the fundamental unit of evaluation and analysis. Distributed PerfDev Checkpoint-Restart: Checkpoint-restart is a fundamental utility that enables the efficient execution and evaluation of system and application parameters during code development. During Phase I, we will integrate support for MPI-supported application level checkpointing into our C/C++ backend in the PerfDev prototype. PerfDev API for Automation Parameter Space Exploration: We will develop an API to enable passive automatic parameter space exploration of code cells.
Benefits: The PerfDev framework will be beneficial for optimization of HEC/HPC NASA applications that are being developed in C, C++, Fortran, Python and Perl. The tool will aid NASA while developing new applications and porting/optimizing existing applications for new and complex compute architectures. Software of potential interest to NASA include CFD, CSD, FEM, and other numeric simulation applications and libraries. PerfDev will also lead to an improved software development lifecycle that better meets the current high performance computing environment.

Many government agencies, university research groups, and industry researchers are utilizing high performance computing systems and face the same challenges in developing and optimizing codes for new and existing architectures. All of these sectors need an adequate tool to help in optimizing and porting applications to emerging high performing compute systems.

Lead Organization: RNET Technologies, Inc.