Logical Inference Techniques for Loop Parallelization

被引:19
|
作者
Oancea, Cosmin E. [1 ]
Rauchwerger, Lawrence [2 ]
机构
[1] Univ Copenhagen, HIPERFIT, Dept Comp Sci, DK-1168 Copenhagen, Denmark
[2] Texas A&M Univ, Parasol Lab, College Stn, TX 77843 USA
关键词
Performance; Design; Algorithms; auto-parallelization; USR; independence predicates; DATA-FLOW ANALYSIS; ARRAY;
D O I
10.1145/2345156.2254124
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper presents a fully automatic approach to loop parallelization that integrates the use of static and run-time analysis and thus overcomes many known difficulties such as nonlinear and indirect array indexing and complex control flow. Our hybrid analysis framework validates the parallelization transformation by verifying the independence of the loop's memory references. To this end it represents array references using the USR (uniform set representation) language and expresses the independence condition as an equation, S = empty set, where S is a set expression representing array indexes. Using a language instead of an array-abstraction representation for S results in a smaller number of conservative approximations but exhibits a potentially-high runtime cost. To alleviate this cost we introduce a language translation F from the USR set-expression language to an equally rich language of predicates (F(S) double right arrow S = empty set). Loop parallelization is then validated using a novel logic inference algorithm that factorizes the obtained complex predicates (F(S)) into a sequence of sufficient-independence conditions that are evaluated first statically and, when needed, dynamically, in increasing order of their estimated complexities. We evaluate our automated solution on 26 benchmarks from PERFECT-CLUB and SPEC suites and show that our approach is effective in parallelizing large, complex loops and obtains much better full program speedups than the Intel and IBM Fortran compilers.
引用
收藏
页码:509 / 520
页数:12
相关论文
共 50 条
  • [1] Loop Parallelization Techniques for FPGA Accelerator Synthesis
    Oliver Reiche
    M. Akif Özkan
    Frank Hannig
    Jürgen Teich
    Moritz Schmid
    [J]. Journal of Signal Processing Systems, 2018, 90 : 3 - 27
  • [2] Loop Parallelization Techniques for FPGA Accelerator Synthesis
    Reiche, Oliver
    Ozkan, M. Akif
    Hannig, Frank
    Teich, Juergen
    Schmid, Moritz
    [J]. JOURNAL OF SIGNAL PROCESSING SYSTEMS FOR SIGNAL IMAGE AND VIDEO TECHNOLOGY, 2018, 90 (01): : 3 - 27
  • [3] Plugging anti and output dependence removal techniques into loop parallelization algorithm
    Calland, PY
    Darte, A
    Robert, Y
    Vivien, F
    [J]. PARALLEL COMPUTING, 1997, 23 (1-2) : 251 - 266
  • [4] Using knowledge-based techniques on loop parallelization for parallelizing compilers
    Yang, CT
    Tseng, SS
    Chuang, CD
    Shih, WC
    [J]. PARALLEL COMPUTING, 1997, 23 (03) : 291 - 309
  • [5] MATHEMATICAL INFERENCE AND LOGICAL INFERENCE
    Hamami, Yacin
    [J]. REVIEW OF SYMBOLIC LOGIC, 2018, 11 (04): : 665 - 704
  • [6] OPTIMAL LOOP PARALLELIZATION
    AIKEN, A
    NICOLAU, A
    [J]. SIGPLAN NOTICES, 1988, 23 (07): : 308 - 317
  • [7] Automatic loop parallelization
    Kumar, M
    Patnaik, LM
    [J]. COMPUTER JOURNAL, 1997, 40 (06): : 301 - 301
  • [8] A new model of exploiting loop parallelization using knowledge-based techniques
    Yang, CT
    Tseng, SS
    Tsai, CJ
    Chuang, CD
    Chuang, SW
    [J]. SEVENTH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS: WORKSHOPS, PROCEEDINGS, 2000, : 9 - 14
  • [9] Rationalizability and logical inference
    Balkenborg, Dieter
    [J]. GAMES AND ECONOMIC BEHAVIOR, 2018, 110 : 248 - 257
  • [10] Validation of Loop Parallelization and Loop Vectorization Transformations
    Dutta, Sudakshina
    Sarkar, Dipankar
    Rawat, Arvind
    Singh, Kulwant
    [J]. ENASE: PROCEEDINGS OF THE 11TH INTERNATIONAL CONFERENCE ON EVALUATION OF NOVEL SOFTWARE APPROACHES TO SOFTWARE ENGINEERING, 2016, : 195 - 202