Advanced search
Start date
Betweenand


Using OpenMP to Detect and Speculate Dynamic DOALL Loops

Full text
Author(s):
Honorio, Bruno Chinelato ; de Carvalho, Joao P. L. ; Skaf, Munir ; Araujo, Guido ; Milfeld, K ; DeSupinski, BR ; Koesterke, L ; Klinkenberg, J
Total Authors: 8
Document type: Journal article
Source: OPENMP: PORTABLE MULTI-LEVEL PARALLELISM ON MODERN SYSTEMS; v. 12295, p. 16-pg., 2020-01-01.
Abstract

Production compilers such as GCC, Clang, IBM XL and the Intel C Compiler employ multiple loop parallelization techniques that help in the task of parallel programming. Although very effective, these techniques are only applicable to loops that the compiler can statically determine to have no loop-carried dependences (DOALL). Because of this restriction, a plethora of Dynamic DOALL (D-DOALL) loops are outright ignored, leaving the parallelism potential of many computationally intensive applications unexplored. This paper proposes a new analysis tool based on OpenMP clauses that allow the programmer to generate detailed profiling of any given loop by identifying its loop-carried dependences and producing carefully selected execution time metrics. The paper also proposes a set of heuristics to be used in conjunction with the analysis tool metrics to properly select loops which could be parallelized through speculative execution, even in the presence of loop-carried dependences. A thorough analysis of 180 loops from 45 benchmarks of three different suites (cBench, Parboil, and Rodinia) was realized using the Intel C Compiler and the proposed approach. Experimental results using static analysis from the Intel C Compiler showed that only 7.8% of the loops are DOALL. The proposed analysis tool exposed 39.5% May DOALL (M-DOALL) loops which could be eventually parallelized using speculative execution, as exemplified by loops from the Parboil sad program which produced a speedup of 1.92x. (AU)

FAPESP's process: 19/04536-9 - Improving performance of collision cross section calculation through component annotation
Grantee:Bruno Chinelato Honorio
Support Opportunities: Scholarships in Brazil - Doctorate
FAPESP's process: 13/08293-7 - CCES - Center for Computational Engineering and Sciences
Grantee:Munir Salomao Skaf
Support Opportunities: Research Grants - Research, Innovation and Dissemination Centers - RIDC
FAPESP's process: 16/15337-9 - Distributed Transactional Memories and Efficient Data Distribution Models to Speed-up Irregular Data Structure Intensive Applications
Grantee:João Paulo Labegalini de Carvalho
Support Opportunities: Scholarships in Brazil - Doctorate
FAPESP's process: 19/01110-0 - Novel code analysis to identify constructs suitable for hardware primitives
Grantee:João Paulo Labegalini de Carvalho
Support Opportunities: Scholarships abroad - Research Internship - Doctorate