Advisory Committee Chair
Peter M Pirkelbauer
Advisory Committee Members
Anthony Skjellum
Purushotham V Bangalore
James M Tuck
Da Yan
Document Type
Dissertation
Date of Award
2017
Degree Name by School
Doctor of Philosophy (PhD) College of Arts and Sciences
Abstract
The continuous emergence of new hardware architectures and software libraries create new opportunities and challenges for existing applications. While they promise better performance for applications, most of the times these applications' source code have to be modified to achieve the promised improvements. These modifications are labor intensive, error prone, and costly. Hence, users of applications either abandon the use of newer hardware and/or software and lose potential improvements, or abandon their application to build new one and lose time and effort spent on building them. Many tools are built to aid users in adapting their current application, in particular HPC applications. However, current migration tools either require high expertise in the application code or serve a very small class of applications. In this research, our goal is to design and implement Petal, a prototype tool that focuses on improving MPI applications. Petal uses compiler-analysis techniques to transform the application's source code, with minimal user intervention, to make use of better, smarter MPI functions that are currently available (or in the future) while maintaining applications' correctness. Petal extends ROSE, a source-to-source translation framework. Its primary feature is to use pointer and control flow analysis to identify dependency on message buffers and transform MPI blocking programs to nonblocking formulations in order to support better application bypass (yielding better overlapping of communication, computation, and I/O). Additionally, Petal uses reaching definition analysis to identify nonblocking communications with fixed arguments in inner loop to transform them to be persistent communication. Persistent communication reduces the communication overhead resulting in optimized code. These transformations are applied on both point-to-point and collective primitives and improvements up to 30% were observed. Another feature is to transform the communication-computation pattern to a pipeline workflow. Instead of one large message transfer, Petal divides large messages to be transferred in smaller chunks and applies computations on these chunks to fill up pipeline workflow. Depending on system scale and problem size, the transformations yield 2x speedup. Petal can be used to transform legacy MPI programs to use the newest variants of MPI functions to improve performance for forthcoming HPC systems.
Recommended Citation
Ahmed, Hadia, "Improving Performance Portability and Productivity of Parallel Scientific Applications for Exascale" (2017). All ETDs from UAB. 971.
https://digitalcommons.library.uab.edu/etd-collection/971