13.07.2015 Views

automatically exploiting cross-invocation parallelism using runtime ...

automatically exploiting cross-invocation parallelism using runtime ...

automatically exploiting cross-invocation parallelism using runtime ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

the architectural register values. During the speculative execution, values updated by thespeculative thread are buffered in the cache and corresponding cache lines are marked asspeculative. Later, access to a speculative cache line by other threads will trigger an accessconflict. When that happens, the speculatively executing thread is squashed and resteeredto the checkpoint. Compared to execution models supported by TM, HWBS distinguishesspeculative and non-speculative threads to avoid unnecessary value buffering and violationchecking. Non-speculative worker threads can commit their writes concurrently withoutwaiting. As a result, HWBS is regarded as a better solution for a program pattern, wheretasks in the same loop <strong>invocation</strong> are independent while tasks from different <strong>invocation</strong>smay depend on each other.Despite its effectiveness, HWBS requires specialized hardware to detect misspeculationand recover. Programs parallelized for commodity hardware cannot benefit from it. Thislimitation motivates us to design and implement the first software-only speculative barrierfor SPECCROSS, which aims at generating scalable parallel programs for commoditymulticore machines.4.1.3 Automatic <strong>cross</strong>-<strong>invocation</strong> parallelization with software-only speculativebarrierSPECCROSS is implemented to generate multi-threaded programs running on commoditymulti-core machines. SPECCROSS consists of three components: a parallelizing compiler,a profiling library and a <strong>runtime</strong> library. The parallelizing compiler <strong>automatically</strong> detectsand parallelizes a code region with many loop <strong>invocation</strong>s. The profiling library determineshow aggressively to speculate and is the key to achieving high confidence speculation. The<strong>runtime</strong> library provides support for speculative execution, misspeculation detection, andrecovery.SPECCROSS’s <strong>runtime</strong> library implements a software-only speculative barrier, whichworks as a light-weight substitution for HWBS on commodity hardware. This <strong>runtime</strong>55

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

Saved successfully!

Ooh no, something went wrong!