CCES Unicamp

Using OpenMP to Detect and Speculate Dynamic DOALL Loops

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 paral-lelized 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.

Honorio, Bruno & Labegalini de Carvalho, João Paulo & Skaf, Munir & Araujo, Guido. (2020). Using OpenMP to Detect and Speculate Dynamic DOALL Loops.

 

 

Related posts

Interaction of Fe2+, Co2+, Ni2+, Cu2+, Zn2+, Pb2+ e Cr3+ metal ions on B12N12 fullerene-like cages: A theoretical study

cces cces

Claudia Bauzer Medeiros elected for the Brazilian Academy of Sciences

cces cces

Multiscale Modeling of Dynamic Failure in Metallic Materials

cces cces