automatically exploiting cross-invocation parallelism using runtime ...

automatically exploiting cross-invocation parallelism using runtime ... automatically exploiting cross-invocation parallelism using runtime ...

dataspace.princeton.edu
from dataspace.princeton.edu More from this publisher
13.07.2015 Views

1.3 Dissertation OrganizationChapter 2 examines existing intra- and inter- invocation parallelization techniques, characterizingtheir applicability and scalability. This discussion motives DOMORE and SPEC-CROSS. Chapter 3 describes the design and implementation details of DOMORE, the firstnon-speculative runtime technique to exploit cross-invocation parallelism. DOMORE hasbeen published and presented in 2013 International Symposium on Code Generation andOptimization [28]. Chapter 4 introduces its speculative counterpart technique SPECCROSS.A quantitative evaluation of DOMORE and SPECCROSS is given in Chapter 5. Finally,Chapter 6 summarizes the conclusions of this dissertation and describes future avenues ofresearch.10

Chapter 2BackgroundImprecise and fragile static analyses limit the effectiveness of existing cross-invocationparallelization techniques. Addressing this vulnerability is the focus of this thesis. In thissection we explain the state of the art in automatic parallelization techniques. In Section2.1 we first identify the limitations of conventional analysis-based approaches to automaticparallelization. In Section 2.2 we provide a detailed discussion of current intra-invocationparallelization techniques, explaining how some of them compensate for the conservativenature of their analyses. Finally, in Section 2.3 we present existing cross-invocation parallelizationtechniques; in particular, how all of them rely on static analysis, which motivatesthe work of DOMORE and SPECCROSS.2.1 Limitations of Analysis-based Approaches in AutomaticParallelizationAutomatic parallelization is an ideal solution which frees programmers from the difficultiesof parallel programming and platform-specific performance tuning. Parallelizing compilerscan automatically parallelize affine loops [2, 7]. Loop A in Figure 2.1 shows an exampleloop. If a compiler proves that all memory variables in the body of the function foo do not11

Chapter 2BackgroundImprecise and fragile static analyses limit the effectiveness of existing <strong>cross</strong>-<strong>invocation</strong>parallelization techniques. Addressing this vulnerability is the focus of this thesis. In thissection we explain the state of the art in automatic parallelization techniques. In Section2.1 we first identify the limitations of conventional analysis-based approaches to automaticparallelization. In Section 2.2 we provide a detailed discussion of current intra-<strong>invocation</strong>parallelization techniques, explaining how some of them compensate for the conservativenature of their analyses. Finally, in Section 2.3 we present existing <strong>cross</strong>-<strong>invocation</strong> parallelizationtechniques; in particular, how all of them rely on static analysis, which motivatesthe work of DOMORE and SPECCROSS.2.1 Limitations of Analysis-based Approaches in AutomaticParallelizationAutomatic parallelization is an ideal solution which frees programmers from the difficultiesof parallel programming and platform-specific performance tuning. Parallelizing compilerscan <strong>automatically</strong> parallelize affine loops [2, 7]. Loop A in Figure 2.1 shows an exampleloop. If a compiler proves that all memory variables in the body of the function foo do not11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!