All ETDs from UAB

Advisory Committee Chair

Peter M Pirkelbauer

Advisory Committee Members

Anthony Skjellum

Purushotham V Bangalore

James M Tuck

Da Yan

Document Type


Date of Award


Degree Name by School

Doctor of Philosophy (PhD) College of Arts and Sciences


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.



To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.