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

for DOMORE and SPECCROSS. Others (e.g., GROMACS and LBM in SpecBench [69])can potentially benefit from DOMORE and SPECCROSS if the following limitations areaddressed.SPECCROSS does not support speculative or partition-based inner loop parallelization.For some programs, the inner loops have to be parallelized using Spec-DOALL, PS-DSWPor DOMORE. To enable speculative parallelization, SPECCROSS runtime must check bothinter- and intra-invocation dependences of the inner loops. This is not a trivial extension.The evaluation results already show that runtime violation checking may become the majorbottleneck at large thread counts. Checking both types of dependences will further increasethe workload of the checker thread and dramatically degrade the performance. Besides,SPECCROSS calculates a signature to summarize the memory access pattern in a loop iteration.Considering the intra-invocation dependences adds extra work to the signaturecalculation and increases the possibility of false positive. To address the first concern, onepossible solution is to parallelizing the checker thread. For the other concern, a better signaturemapping function, which distinguishes the intra- and inter-invocation dependences,will be essential to avoiding high runtime overhead or high false positive rate.Supporting partition-based parallelization also adds various complexities. For example,after partition, cross-invocation dependences may unevenly distributed among stages:one stage never causes any runtime conflict while another stage causes frequent conflicts.Since SPECCROSS sets one speculative range for each loop, the latter stage will limit thepotential parallelism within the former stage. Current SPECCROSS profiler does not understandcode partitioning, and therefore cannot provide speculative range information perpartition. Meanwhile, PS-DSWP partitioner does not take the speculative range into considerationeither, thus cannot achieve an optimal partition for the programs. As a result,SPECCROSS profiler must collaborate with the partitioner to achieve a balanced partitionwithout limiting too much potential parallelism.92

Chapter 6Conclusion and Future Direction6.1 ConclusionExploiting the performance of multi-core processors requires scalable parallel programs.Most automatic parallelization techniques parallelize iterations within the same loop invocationand synchronize threads at the end of each parallel invocation. Unfortunately,frequent synchronization limits the scalability of many software programs. In practice,iterations in different invocations of a parallel loop are often independent. In order to exploitadditional cross-invocation parallelism, this thesis work proposes two novel automaticparallelization techniques. DOMORE and SPECCROSS synchronizes iterations using runtimeinformation, and can therefore adapt to dependence patterns manifested by particularinputs. As a non-speculative technique, DOMORE is designed for programs with morefrequently manifesting cross-invocation dependences.SPECCROSS, on the other hand,yields better performance when those dependences seldom manifest at runtime. Evaluationdemonstrates that among twenty programs from seven benchmark suites, DOMOREcan be automatically applied to parallelize six of them and achieves a geomean speedupof 2.1× over codes without cross-invocation parallelization and 3.2× over the original sequentialperformance on 24 cores. SPECCROSS is found to be applicable to eight of the93

for DOMORE and SPECCROSS. Others (e.g., GROMACS and LBM in SpecBench [69])can potentially benefit from DOMORE and SPECCROSS if the following limitations areaddressed.SPECCROSS does not support speculative or partition-based inner loop parallelization.For some programs, the inner loops have to be parallelized <strong>using</strong> Spec-DOALL, PS-DSWPor DOMORE. To enable speculative parallelization, SPECCROSS <strong>runtime</strong> must check bothinter- and intra-<strong>invocation</strong> dependences of the inner loops. This is not a trivial extension.The evaluation results already show that <strong>runtime</strong> violation checking may become the majorbottleneck at large thread counts. Checking both types of dependences will further increasethe workload of the checker thread and dramatically degrade the performance. Besides,SPECCROSS calculates a signature to summarize the memory access pattern in a loop iteration.Considering the intra-<strong>invocation</strong> dependences adds extra work to the signaturecalculation and increases the possibility of false positive. To address the first concern, onepossible solution is to parallelizing the checker thread. For the other concern, a better signaturemapping function, which distinguishes the intra- and inter-<strong>invocation</strong> dependences,will be essential to avoiding high <strong>runtime</strong> overhead or high false positive rate.Supporting partition-based parallelization also adds various complexities. For example,after partition, <strong>cross</strong>-<strong>invocation</strong> dependences may unevenly distributed among stages:one stage never causes any <strong>runtime</strong> conflict while another stage causes frequent conflicts.Since SPECCROSS sets one speculative range for each loop, the latter stage will limit thepotential <strong>parallelism</strong> within the former stage. Current SPECCROSS profiler does not understandcode partitioning, and therefore cannot provide speculative range information perpartition. Meanwhile, PS-DSWP partitioner does not take the speculative range into considerationeither, thus cannot achieve an optimal partition for the programs. As a result,SPECCROSS profiler must collaborate with the partitioner to achieve a balanced partitionwithout limiting too much potential <strong>parallelism</strong>.92

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

Saved successfully!

Ooh no, something went wrong!