Dynamic and Speculative Polyhedral Parallelization Using Compiler-Generated Skeletons

被引:0
|
作者
Alexandra Jimborean
Philippe Clauss
Jean-François Dollinger
Vincent Loechner
Juan Manuel Martinez Caamaño
机构
[1] University of Uppsala,UPMARC
[2] University of Strasbourg,ICube, INRIA, CNRS
关键词
Algorithmic skeletons; Polytope model; Automatic parallelization; Speculative parallelization; Dynamic parallelization; Loop nests; Compilation;
D O I
暂无
中图分类号
学科分类号
摘要
We propose a framework based on an original generation and use of algorithmic skeletons, and dedicated to speculative parallelization of scientific nested loop kernels, able to apply at run-time polyhedral transformations to the target code in order to exhibit parallelism and data locality. Parallel code generation is achieved almost at no cost by using binary algorithmic skeletons that are generated at compile-time, and that embed the original code and operations devoted to instantiate a polyhedral parallelizing transformation and to verify the speculations on dependences. The skeletons are patched at run-time to generate the executable code. The run-time process includes a transformation selection guided by online profiling phases on short samples, using an instrumented version of the code. During this phase, the accessed memory addresses are used to compute on-the-fly dependence distance vectors, and are also interpolated to build a predictor of the forthcoming accesses. Interpolating functions and distance vectors are then employed for dependence analysis to select a parallelizing transformation that, if the prediction is correct, does not induce any rollback during execution. In order to ensure that the rollback time overhead stays low, the code is executed in successive slices of the outermost original loop of the nest. Each slice can be either a parallel version which instantiates a skeleton, a sequential original version, or an instrumented version. Moreover, such slicing of the execution provides the opportunity of transforming differently the code to adapt to the observed execution phases, by patching differently one of the pre-built skeletons. The framework has been implemented with extensions of the LLVM compiler and an x86-64 runtime system. Significant speed-ups are shown on a set of benchmarks that could not have been handled efficiently by a compiler.
引用
收藏
页码:529 / 545
页数:16
相关论文
共 50 条
  • [21] Can High Throughput Atone for High Latency in Compiler-Generated Protocol Code?
    Jongmans, Sung-Shik T. Q.
    Arbab, Farhad
    FUNDAMENTALS OF SOFTWARE ENGINEERING, FSEN 2015, 2015, 9392 : 238 - 258
  • [22] Dynamic Parallelization of Single-Threaded Binary Programs using Speculative Slicing
    Wang, Cheng
    Wu, Youfeng
    Borin, Edson
    Hu, Shiliang
    Liu, Wei
    Sager, Dave
    Ngai, Tin-fook
    Fang, Jesse
    ICS'09: PROCEEDINGS OF THE 2009 ACM SIGARCH INTERNATIONAL CONFERENCE ON SUPERCOMPUTING, 2009, : 158 - 168
  • [23] Supporting Speculative Parallelization in the Presence of Dynamic Data Structures
    Tian, Chen
    Feng, Min
    Gupta, Rajiv
    ACM SIGPLAN NOTICES, 2010, 45 (06) : 62 - 73
  • [24] Supporting Speculative Parallelization in the Presence of Dynamic Data Structures
    Tian, Chen
    Feng, Min
    Gupta, Rajiv
    PLDI '10: PROCEEDINGS OF THE 2010 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2010, : 62 - 73
  • [25] Compiler support for dynamic speculative pre-execution
    Ro, WW
    Gaudiot, JL
    INTERACT-7 2003: SEVENTH WORKSHOP ON INTERACTION BETWEEN COMPILERS AND COMPUTER ARCHITECTURES, PROCEEDINGS, 2003, : 14 - 23
  • [26] Distributed Speculative Parallelization using Checkpoint Restart
    Ghoshal, Devarshi
    Ramkumar, Sreesudhan R.
    Chauhan, Arun
    PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE (ICCS), 2011, 4 : 422 - 431
  • [27] Compiler/Runtime Framework for Dynamic Dataflow Parallelization of Tiled Programs
    Kong, Martin
    Pop, Antoniu
    Pouchet, Louis-Noel
    Govindarajan, R.
    Cohen, Albert
    Sadayappan, P.
    ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 2014, 11 (04)
  • [28] Dynamic branch speculation in a speculative parallelization architecture for computer clusters
    Puiggali, Joan
    Szymanski, Boleslaw K.
    Jove, Teo
    Marzo, Jose L.
    CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2013, 25 (07): : 932 - 960
  • [29] General compiler framework for speculative optimizations using data speculative code motion
    Dai, XR
    Zhai, A
    Hsu, WC
    Yew, PC
    CGO 2005: INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, 2005, : 280 - 290
  • [30] IR-Level Dynamic Data Dependence Using Abstract Interpretation Towards Speculative Parallelization
    Omar, Rasha
    El-Mahdy, Ahmed
    Rohou, Erven
    IEEE ACCESS, 2020, 8 : 99910 - 99921