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