GGrantIndex
← Search

SI2-SSE: PAPI Unifying Layer for Software-Defined Events (PULSE)

$499,997FY2016CSENSF

University Of Tennessee Knoxville, Knoxville TN

Investigators

Abstract

Leading scientific domains, such as physics, chemistry, climate science, and advanced materials design, utilize high-performance computing (HPC) to understand and solve problems of unprecedented complexity. Overcoming such challenges requires the ability to perform advanced scientific and engineering simulations, and to analyze the extreme amount of data these computer models involve. But the ever increasing scale of these problems also means that the complexity of software systems needed to address them is rising, and this fact raises new challenges for the scientific application communities that require HPC in order to achieve their goals. In particular, HPC application developers who want to understand the performance characteristics of their application had previously been able to monitor the way it interacted with the underlying hardware, but they had no access to a standardized way of accessing the behavior of the complex software stack that their application depends on. The PULSE project will fill this major software infrastructure gap. It offers an integrated solution that enables different layers of a complex software stack to communicate with one another and provide information about their internal behavior. Thus, PULSE makes it possible for the scientific applications of the future to harness ever increasing amounts of computing power, despite anticipated increases in the complexity of both future hardware and software technologies. By providing the infrastructure that developers need in order to achieve an analytical understanding of the behavior of whole programs, it will substantially improve the insight computational scientists have into how various modern software systems interact with one another and the underlying hardware technologies. 
 The abstraction and standardization layer provided by the Performance Application Programming Interface (PAPI) has played a critical role in enabling application profiling for over a decade. It has enabled performance conscious developers to gain insights about their application by simply instrumenting their code using a handful of PAPI functions that interoperate across different hardware substrates. At the same time, the abstraction layer offered by PAPI has enabled sophisticated profiling toolkits to focus on combining, organizing and visualizing information in a way that is useful to the end user, instead of re-implementing the hardware access layer for every new platform that comes to market. However, this abstraction layer that PAPI offers has been limited to profiling information generated by hardware. Information regarding the behavior of the software stack underneath the application that is being profiled has to be acquired either through low level binary instrumentation, or through custom APIs. Now, through this PULSE project, abstraction and unification layer for profiling software events has emerged. PULSE will extend the abstraction and unification layer that PAPI has provided to hardware events to also encompass software events. On one end, it will provide a standard, well defined and well documented API that high level profiling software can utilize to acquire and present to application developers performance information about the libraries used by their application. On the other end, it will provide standard APIs that library and runtime writers can utilize to communicate to higher software layers information about the behavior of their software. The project is expected to have a direct influence on the state of the art in whole program profiling and understanding. The success of PULSE will substantially improve the insight of computational scientists and engineers into the way that different modules of modern software interact with one another and the underlying hardware. Broadening the applicability of PAPI, as proposed under PULSE, is expected to dramatically increase PAPI's impact in this area.

View original record on NSF Award Search →