Static analyses and optimizations for parallel programs with synchronization
by Zhang, Yuan, Ph.D., UNIVERSITY OF DELAWARE, 2008, 169 pages; 3329793

Abstract:

As parallel systems become dominant in computer architectures, parallel programs that take the advantage of multiple threads of control are taking the place of conventional sequential programs. Yet, parallel programs have introduced new challenges to compiler static analyses and optimizations. On one hand, classical compiler analyses and optimizations need to be enhanced to handle the inter-thread interference and synchronization enforced dependence relation in a parallel program. On the other hand, new analyses and optimizations need to be designed for new programming language features.

In this dissertation we propose the following compiler static analyses and optimizations for parallel programs with synchronization: (1) An interprocedural multi-valued expressions analysis for both distributed and shared memory programs, based on program slicing. An expression is multi-valued if it evaluates differently in different threads. For Single Program Multiple Data style programs, multi-valued expressions analysis is a key component to determine the concurrent paths which are executed by different threads concurrently. (2) An interprocedural barrier matching technique for both distributed and shared memory programs to detect synchronization errors caused by the misplacement of barriers, or if the program is validated, to determine the set of barrier statements that synchronize together. (3) The first interprocedural concurrency analysis algorithm that can handle shared memory programs with textually unaligned barriers. (4) A new framework of flow-sensitive and synchronization-sensitive data flow analyses for shared memory programs. Pointer analysis is used as an example to demonstrate the effectiveness of this framework. The most significant advantage of this framework is that inter-thread interference and synchronization enforced dependence are modeled as concurrency relation, thus it is easily extensible to new language features and compatible with different memory models. (5) A lock assignment algorithm to optimize shared memory programs with atomic sections - a high-productivity synchronization construct that enforces atomicity and mutual exclusion. Taking a program annotated with atomic sections, the compiler automatically infers an assignment of the minimum number of locks to atomic sections so as to exploit the parallelism among atomic sections, without violating their semantics. Two additional lock optimization problems that are closely related to the lock assignment problem are presented.

 
AdviserGuang R. Gao
SchoolUNIVERSITY OF DELAWARE
SourceDAI/B 69-09, p. , Nov 2008
Source TypeDissertation
SubjectsElectrical engineering
Publication Number3329793
Adobe PDF Access the complete dissertation:
 

» Find an electronic copy at your library.
  Use the link below to access a full citation record of this graduate work:
  http://gateway.proquest.com/openurl%3furl_ver=Z39.88-2004%26res_dat=xri:pqdiss%26rft_val_fmt=info:ofi/fmt:kev:mtx:dissertation%26rft_dat=xri:pqdiss:3329793
  If your library subscribes to the ProQuest Dissertations & Theses (PQDT) database, you may be entitled to a free electronic version of this graduate work. If not, you will have the option to purchase one, and access a 24 page preview for free (if available).

About ProQuest Dissertations & Theses
With over 2.3 million records, the ProQuest Dissertations & Theses (PQDT) database is the most comprehensive collection of dissertations and theses in the world. It is the database of record for graduate research.

The database includes citations of graduate works ranging from the first U.S. dissertation, accepted in 1861, to those accepted as recently as last semester. Of the 2.3 million graduate works included in the database, ProQuest offers more than 1.9 million in full text formats. Of those, over 860,000 are available in PDF format. More than 60,000 dissertations and theses are added to the database each year.

If you have questions, please feel free to visit the ProQuest Web site - http://www.proquest.com - or call ProQuest Hotline Customer Support at 1-800-521-3042.