Dynamic and Speculative Polyhedral Parallelization of Loop Nests Using Binary Code Patterns

被引:0
|
作者
Jimborean, Alexandra [1 ]
Clauss, Philippe [2 ]
Dollinger, Jean-Francois [2 ]
Loechner, Vincent [2 ]
Martinez Caamano, Juan Manuel [2 ]
机构
[1] Uppsala Univ, UPMARC, Uppsala, Sweden
[2] Univ Strasbourg, CNRS, INRIA, LSIIT, Strasbourg, France
关键词
Dynamic optimizations; speculative parallelization; binary code patterns; templates; polyhedral model; runtime;
D O I
10.1016/j.procs.2013.05.443
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Speculative parallelization is a classic strategy for automatically parallelizing codes that cannot be handled at compile-time due to the use of dynamic data and control structures. Another motivation of being speculative is to adapt the code to the current execution context, by selecting at run-time an efficient parallel schedule. However, since this parallelization scheme requires on-the-fly semantics verification, it is in general difficult to perform advanced transformations for optimization and parallelism extraction. We propose a framework dedicated to speculative parallelization of scientific nested loop kernels, able to transform the code at runtime by re-scheduling the iterations to exhibit parallelism and data locality. The run-time process includes a transformation selection guided by profiling phases on short samples, using an instrumented version of the code. During this phase, the accessed memory addresses are interpolated to build a predictor of the forthcoming accesses. The collected addresses are also used to compute on-the-fly dependence distance vectors by tracking accesses to common addresses. Interpolating functions and distance vectors are then employed in dynamic dependence analysis and in selecting 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 parallelized version, 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. Parallel code generation is achieved almost at no cost by using binary code patterns that are generated at compile-time and that are simply patched at run-time to result in the transformed code. 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.
引用
收藏
页码:2575 / 2578
页数:4
相关论文
共 31 条
  • [21] Dynamic texture recognition using local binary patterns with an application to facial expressions
    Zhao, Guoying
    Pietikainen, Matti
    IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, 2007, 29 (06) : 915 - 928
  • [22] Identification of JPEG files fragments on digital media using binary patterns based on Huffman code table
    Sorokin, Alexander
    Makushenko, Ekaterina
    2016 THIRD INTERNATIONAL CONFERENCE ON DIGITAL INFORMATION PROCESSING, DATA MINING, AND WIRELESS COMMUNICATIONS (DIPDMWC), 2016, : 137 - 141
  • [23] Spatio-Temporal Saliency Detection in Dynamic Scenes using Local Binary Patterns
    Muddamsetty, Satya M.
    Sidibe, Desire
    Tremeau, Alain
    Meriaudeau, Fabrice
    2014 22ND INTERNATIONAL CONFERENCE ON PATTERN RECOGNITION (ICPR), 2014, : 2353 - 2358
  • [24] DYNAMIC BACKGROUND MODELING AND SUBTRACTION USING SPATIO-TEMPORAL LOCAL BINARY PATTERNS
    Zhang, Shengping
    Yao, Hongxun
    Liu, Shaohui
    2008 15TH IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING, VOLS 1-5, 2008, : 1556 - 1559
  • [25] A New Disassembly Approach for Binary Code Using Dynamic Multiple-path Exploration and Static Disassembly
    Qiu, Jing
    Su, Xiaohong
    Ma, Peijun
    APPLIED DECISIONS IN AREA OF MECHANICAL ENGINEERING AND INDUSTRIAL MANUFACTURING, 2014, 577 : 852 - 855
  • [26] Smoke detection in video sequences based on dynamic texture using volume local binary patterns
    Lin, Gaohua
    Zhang, Yongming
    Zhang, Qixing
    Jia, Yang
    Xu, Gao
    Wang, Jinjun
    KSII TRANSACTIONS ON INTERNET AND INFORMATION SYSTEMS, 2017, 11 (11): : 5522 - 5536
  • [27] Ternary Gray code-based phase unwrapping for 3D measurement using binary patterns with projector defocusing
    Zheng, Dongliang
    Qian Kemao
    Da, Feipeng
    Seah, Hock Soon
    APPLIED OPTICS, 2017, 56 (13) : 3660 - 3665
  • [28] A full code-patterns coverage high-speed embedded ROM using dynamic virtual guardian technique
    Chang, MF
    Chiou, LY
    Wen, KA
    IEEE JOURNAL OF SOLID-STATE CIRCUITS, 2006, 41 (02) : 496 - 506
  • [29] Turning Programs against Each Other: High Coverage Fuzz-Testing using Binary-Code Mutation and Dynamic Slicing
    Kargen, Ulf
    Shahmehri, Nahid
    2015 10TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE 2015) PROCEEDINGS, 2015, : 782 - 792
  • [30] Matched filtering Generalized Phase Contrast using binary phase for dynamic spot- and line patterns in biophotonics and structured lighting
    Banas, Andrew
    Aabo, Thomas
    Palima, Darwin
    Gluckstad, Jesper
    OPTICS EXPRESS, 2013, 21 (02): : 1849 - 1856