In Partial Fulfillment of the Requirements for the Degree of
Master of Science
Will defend his thesis
An efficient and precise data dependence analysis is the key to the success of finding the most suitable loop transformations to achieve parallelism. Loop carried dependencies are a major hindrance while parallelizing codes. In this thesis, we describe our experience developing a data dependence analysis graph in a compiler based analysis tool – Dragon 2012. This tool displays the data dependence graph by using the information extracted from the OpenUH compiler. This relationship displayed by it offers detailed dependency information such as its type and its direction (source and destination). The tool also maps this information to the source code lines and arrays that participate in the dependence relationship. All this information is displayed in an interactive graphical user interface (GUI) format, which offers the users better and faster understanding and more precise navigation between the data dependence graph and the source code. Dragon 2012 also provides filtering via names of functions and arrays, data dependence types (true, anti, output) and range of lines in the program. These provide users with the ability to select the loop or the exact portion of code, array and/or data dependence type that they are interested in. This in turn leads to the display of the complex data dependence graph in a clear and concise manner and makes it a powerful, easy and a faster methodology to decide what loop transformations are needed for parallelizing a program. Dragon 2012 supports FORTRAN, C and C++. It is useful especially while targeting parallel codes with directives based approaches – e.g. OpenMP. It was developed using the Qt framework which enables the Dragon to run on multi-platform including Linux, Windows and Mac.
Date: Friday, April 20, 2012
Time: 12:30 PM
Faculty, students, and the general public are invited.
Advisor: Dr. Barbara Chapman