Contribution to automatic performance analysis of parallel applications. (Contribution à l'analyse automatique de performances d'applications parallèles)

Abstract: High Performance Computing is now a strategic resource as it allows to simulate complex phenomena in order to better understand them. While ten years ago, HPC was mostly used in specific domains such as climate research, weather forecasting, or molecular modeling, it now spreads to most scientific disciplines including genomics and artificial intelligence. Processing large amounts of data requires to efficiently exploit parallel and distributed computers. When designing a parallel application, a developer has to understand how the application executes on a supercomputer. Our research activities aim at designing tools that relieve the developer from this burden. Our research necessitates two phases: to collect data when an application executes, and to analyze the collected data in order to improve the application performance. Our first contribution consists of several performance collection tools. We present EZTrace, a tracing framework for parallel applications that allows users to easily capture the behavior of their application. We also present NumaMMA, a memory profiler that traces applications and analyzes their memory access patterns. Our second contribution focuses on automatic performance analysis. We developed algorithms that detects the overal structure of an application from an execution trace and that filters out duplicate information. We also design a versatile metric that detects any kind of contention problem by using a differential execution analysis technique. Finally, we designed a methodology for detecting scalability issues in OpenMP applications.
0 Replies
Loading