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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.3 Compiler Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.3.1 Partitioning Scheduler and Worker . . . . . . . . . . . . . . . . . . 343.3.2 Generating Scheduler and Worker Functions . . . . . . . . . . . . 353.3.3 Scheduling Iterations . . . . . . . . . . . . . . . . . . . . . . . . . 393.3.4 Generating the computeAddr function . . . . . . . . . . . . . . . . 403.3.5 Putting It Together . . . . . . . . . . . . . . . . . . . . . . . . . . 413.4 Enable DOMORE in SPECCROSS . . . . . . . . . . . . . . . . . . . . . . 433.5 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.5.1 Cross-<strong>invocation</strong> Parallelization . . . . . . . . . . . . . . . . . . . 463.5.2 Synchronization Optimizations . . . . . . . . . . . . . . . . . . . . 463.5.3 Runtime Dependence Analysis . . . . . . . . . . . . . . . . . . . . 474 Speculatively Exploiting Cross-Invocation Parallelism 494.1 Motivation and Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.1.1 Limitations of analysis-based parallelization . . . . . . . . . . . . . 514.1.2 Speculative <strong>cross</strong>-<strong>invocation</strong> parallelization . . . . . . . . . . . . . 524.1.3 Automatic <strong>cross</strong>-<strong>invocation</strong> parallelization with software-only speculativebarrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554.2 SPECCROSS Runtime System . . . . . . . . . . . . . . . . . . . . . . . . 604.2.1 Misspeculation Detection . . . . . . . . . . . . . . . . . . . . . . . 604.2.2 Checkpointing and Recovery . . . . . . . . . . . . . . . . . . . . . 634.2.3 Runtime Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 654.3 SPECCROSS Parallelizing Compiler . . . . . . . . . . . . . . . . . . . . . 694.4 SPECCROSS Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.5 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.5.1 Barrier Removal Techniques . . . . . . . . . . . . . . . . . . . . . 734.5.2 Alternative Synchronizations . . . . . . . . . . . . . . . . . . . . . 744.5.3 Transactional Memory Supported Barrier-free Parallelization . . . . 74v

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

Saved successfully!

Ooh no, something went wrong!