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

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.

Share

COinS