Speculatively Exploiting Cross-Invocation Parallelism

被引:3
作者
Huang, Jialu [2 ]
Prabhu, Prakash [2 ]
Jablin, Thomas B. [3 ]
Ghosh, Soumyadeep [1 ]
Apostolakis, Sotiris [1 ]
Lee, Jae W. [4 ]
August, David I. [1 ]
机构
[1] Princeton Univ, Princeton, NJ 08544 USA
[2] Google Inc, Mountain View, CA 94043 USA
[3] UIUC, Urbana, IL 61801 USA
[4] Sungkyunkwan Univ, Seoul, South Korea
来源
2016 INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURE AND COMPILATION TECHNIQUES (PACT) | 2016年
基金
美国国家科学基金会;
关键词
Automatic parallelization; Barrier speculation; Code optimization;
D O I
10.1145/2967938.2967959
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
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 SPEC CROSS achieves a geomean speedup of 3.43x over parallel execution without cross-invocation parallelization.
引用
收藏
页码:207 / 219
页数:13
相关论文
共 52 条
  • [1] Allen Randy, 2002, OPTIMIZING COMPILERS
  • [2] [Anonymous], 2008, PACT
  • [3] [Anonymous], 1993, ISCA
  • [4] [Anonymous], 1993, SC
  • [5] Berger EmeryD., 2009, OOPSLA
  • [6] Best M. J., 2011, PLDI
  • [7] Blumofe R.D., 1995, PPoPP
  • [8] Butenhof DR., 1997, Programming with POSIX Threads
  • [9] Campanoni Simone., 2012, CGO
  • [10] Carothers C. D., 2002, DR DOBBS AUG