The Community for Technology Leaders
2016 International Conference on Parallel Architecture and Compilation Techniques (PACT) (2016)
Haifa, Israel
Sept. 11, 2016 to Sept. 15, 2016
ISBN: 978-1-5090-5308-7
pp: 207-219
Jialu Huang , Google Inc., United States
Prakash Prabhu , Google Inc., United States
Thomas B. Jablin , UIUC, United States
Soumyadeep Ghosh , Princeton University, United States
Sotiris Apostolakis , Princeton University, United States
Jae W. Lee , Sungkyunkwan University, South Korea
David I. August , Princeton University, United States
Automatic parallelization has shown promise in producing scalable multi-threaded programs for multi-core architectures. Most existing automatic techniques parallelize independent loops and insert global synchronization between loop invocations. For programs with many loop invocations, frequent synchronization often becomes the performance bottleneck. Some techniques exploit cross-invocation parallelism to overcome this problem. Using static analysis, they partition iterations among threads to avoid cross-thread dependences. However, this approach may fail if dependence pattern information is not available at compile time. To address this limitation, this work proposes SPECCROSS-the first automatic parallelization technique to exploit cross-invocation parallelism using speculation. With speculation, iterations from different loop invocations can execute concurrently, and the program synchronizes only on misspeculation. This allows SPECCROSS to adapt to dependence patterns that only manifest on particular inputs at runtime. Evaluation on eight programs shows that SPECCROSS achieves a geomean speedup of 3.43× over parallel execution without cross-invocation parallelization.
Synchronization, Instruction sets, Parallel processing, Runtime, Runtime library, Hardware

J. Huang et al., "Speculatively exploiting cross-invocation parallelism," 2016 International Conference on Parallel Architecture and Compilation Techniques (PACT), Haifa, Israel, 2016, pp. 207-219.
81 ms
(Ver 3.3 (11022016))