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

4.5 Overview of SPECCROSS: At compile time, the SPECCROSS compiler detectscode regions composed of consecutive parallel loop invocations, parallelizesthe code region and inserts SPECCROSS library functions to enablebarrier speculation. At runtime, the whole program is first executed speculativelywithout barriers. Once misspeculation occurs, the checkpoint processis woken up. It kills the original child process and spawns new workerthreads. The worker threads will re-execute the misspeculated epochs withnon-speculative barriers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 574.6 Timing diagram for SPECCROSS showing epoch and task numbers. Ablock with label indicates that the thread updates its epoch numberto A and task number to B when the task starts executing. . . . . . . . . 584.7 Pseudo-code for worker threads and checker thread . . . . . . . . . . . . . 594.8 Data structure for Signature Log . . . . . . . . . . . . . . . . . . . . . . . 634.9 Demonstration of using SPECCROSS runtime library in a parallel program . 685.1 Performance comparison between code parallelized with pthread barrierand DOMORE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815.2 Performance comparison between code parallelized with pthread barrierand SPECCROSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.3 Loop speedup with and without misspeculation for execution with 24 threads:the number of checkpoints varies from 2 to 100. A misspeculation is randomlytriggered during the speculative execution. With more checkpoints,overhead in checkpointing increases; however overhead in re-execution aftermisspeculation reduces. . . . . . . . . . . . . . . . . . . . . . . . . . . 865.4 Best performance achieved by this thesis work and previous work . . . . . 885.5 Outermost loop in FLUIDANIMATE . . . . . . . . . . . . . . . . . . . . . 895.6 Performance improvement of FLUIDANIMATE using different techniques. 90x

Chapter 1IntroductionThe computing industry has relied on steadily increasing clock speeds and uniprocessormicro-architectural improvements to deliver reliable performance enhancements for a widerange of applications. Unfortunately, since 2004, the microprocessor industry fell off pasttrends due to increasingly unmanageable design complexity, power and thermal issues. Inspite of this stall in processor performance improvements, Moores Law still remains in effect.Consistent with historic trends, the semiconductor industry continues to double thenumber of transistors integrated onto a single die every two years. Since conventionalapproaches to improving program performance with these transistors has faltered, microprocessormanufacturers leverage these additional transistors by placing multiple cores onthe same die. These multi-core processors can improve system throughput and potentiallyspeed up multi-threaded applications, but the latency of any single-thread of executionremains unchanged. Consequently, to take full advantage of multi-core processors, applicationsmust be multi-threaded, and they must be designed to efficiently use the resourcesprovided by the processor.1

4.5 Overview of SPECCROSS: At compile time, the SPECCROSS compiler detectscode regions composed of consecutive parallel loop <strong>invocation</strong>s, parallelizesthe code region and inserts SPECCROSS library functions to enablebarrier speculation. At <strong>runtime</strong>, the whole program is first executed speculativelywithout barriers. Once misspeculation occurs, the checkpoint processis woken up. It kills the original child process and spawns new workerthreads. The worker threads will re-execute the misspeculated epochs withnon-speculative barriers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 574.6 Timing diagram for SPECCROSS showing epoch and task numbers. Ablock with label indicates that the thread updates its epoch numberto A and task number to B when the task starts executing. . . . . . . . . 584.7 Pseudo-code for worker threads and checker thread . . . . . . . . . . . . . 594.8 Data structure for Signature Log . . . . . . . . . . . . . . . . . . . . . . . 634.9 Demonstration of <strong>using</strong> SPECCROSS <strong>runtime</strong> library in a parallel program . 685.1 Performance comparison between code parallelized with pthread barrierand DOMORE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815.2 Performance comparison between code parallelized with pthread barrierand SPECCROSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.3 Loop speedup with and without misspeculation for execution with 24 threads:the number of checkpoints varies from 2 to 100. A misspeculation is randomlytriggered during the speculative execution. With more checkpoints,overhead in checkpointing increases; however overhead in re-execution aftermisspeculation reduces. . . . . . . . . . . . . . . . . . . . . . . . . . . 865.4 Best performance achieved by this thesis work and previous work . . . . . 885.5 Outermost loop in FLUIDANIMATE . . . . . . . . . . . . . . . . . . . . . 895.6 Performance improvement of FLUIDANIMATE <strong>using</strong> different techniques. 90x

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

Saved successfully!

Ooh no, something went wrong!