Busca avançada
Ano de início
Entree


Using OpenMP to Detect and Speculate Dynamic DOALL Loops

Texto completo
Autor(es):
Honorio, Bruno Chinelato ; de Carvalho, Joao P. L. ; Skaf, Munir ; Araujo, Guido ; Milfeld, K ; DeSupinski, BR ; Koesterke, L ; Klinkenberg, J
Número total de Autores: 8
Tipo de documento: Artigo Científico
Fonte: OPENMP: PORTABLE MULTI-LEVEL PARALLELISM ON MODERN SYSTEMS; v. 12295, p. 16-pg., 2020-01-01.
Resumo

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)

Processo FAPESP: 19/04536-9 - Melhorando o desempenho do cálculo da seção de choque transversal através de anotações de componentes
Beneficiário:Bruno Chinelato Honorio
Modalidade de apoio: Bolsas no Brasil - Doutorado
Processo FAPESP: 13/08293-7 - CECC - Centro de Engenharia e Ciências Computacionais
Beneficiário:Munir Salomao Skaf
Modalidade de apoio: Auxílio à Pesquisa - Centros de Pesquisa, Inovação e Difusão - CEPIDs
Processo FAPESP: 16/15337-9 - Memória Transacional Distribuída e Modelos Eficientes de Distribuição de Dados para Acelerar Aplicações com Estruturas de Dados Irregulares.
Beneficiário:João Paulo Labegalini de Carvalho
Modalidade de apoio: Bolsas no Brasil - Doutorado
Processo FAPESP: 19/01110-0 - Análise de código para identificação de construções afins à primitivas de hardware
Beneficiário:João Paulo Labegalini de Carvalho
Modalidade de apoio: Bolsas no Exterior - Estágio de Pesquisa - Doutorado