Support for parallel scan in OpenMP : Suporte de parallel scan em OpenMP

Orientadores: Guido Costa Souza de Araújo, Marcio Machado Pereira

Detalles Bibliográficos
Autor: Gomez Zegarra, Eder Maicol, 1989-
Tipo de documento: Tesis de maestría
Estado:Published version
Fecha de publicación:2018
País:Brasil
Institución:UNICAMP
Repositorio:Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP)
Lenguaje:Portugués
OAI Identifier:oai::1045562
Acceso en línea:https://hdl.handle.net/20.500.12733/1634255
Nivel de acceso:Acceso abierto
Palabra clave:Arquitetura de computador
OpenCL (Linguagem de programação de computador)
Compiladores (Computadores)
Computação heterogênea
Computer architecture
OpenCL (Computer program language)
Compiling (Electronic computers)
Heterogeneous computing
_version_ 1878752819276677120
author Gomez Zegarra, Eder Maicol, 1989-
author_browse Gomez Zegarra, Eder Maicol, 1989-
author_facet Gomez Zegarra, Eder Maicol, 1989-
author_role author
collection Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP)
description Orientadores: Guido Costa Souza de Araújo, Marcio Machado Pereira
eu_rights_str_mv openAccess
format masterThesis
id BR_2dff827e3ea7a393cffeb5f723b4db40
institution UNICAMP
instname_str Universidade Estadual de Campinas (UNICAMP)
language por
network_acronym_str BR
network_name_str Brasil
oai_identifier_str oai::1045562
publishDate 2018
publishDateSort 2018
publisher [s.n.]
publisherStr [s.n.]
reponame_str Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP)
spelling Support for parallel scan in OpenMP : Suporte de parallel scan em OpenMP Suporte de parallel scan em OpenMP Gomez Zegarra, Eder Maicol, 1989- Arquitetura de computador OpenCL (Linguagem de programação de computador) Compiladores (Computadores) Computação heterogênea Computer architecture OpenCL (Computer program language) Compiling (Electronic computers) Heterogeneous computing Orientadores: Guido Costa Souza de Araújo, Marcio Machado Pereira Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação Resumo: Prefix Scan (ou simplesmente scan) é um operador que computa todas as somas parciais de um vetor. A operação scan retorna um vetor onde cada elemento é a soma de todos os elementos precedentes até a posição correspondente. Scan é uma operação fundamental para muitos problemas relevantes, tais como: algoritmos de ordenação, análise léxica, comparação de cadeias de caracteres, filtragem de imagens, dentre outros. Embora exis- tam bibliotecas que fornecem versões paralelizadas de scan em CUDA e OpenCL, não existe uma implementação paralela do operador scan em OpenMP. Este trabalho propõe uma nova clausula que permite o uso automático do scan paralelo. Ao usar a cláusula pro- posta, um programador pode reduzir consideravelmente a complexidade dos algoritmos, permitindo que ele concentre a atenção no problema, e não em aprender novos modelos de programação paralela ou linguagens de programação. Scan foi projetado em ACLang (www.aclang.org), um framework de código aberto baseado no compilador LLVM/Clang, que recentemente implementou o OpenMP 4.X Accelerator Programming Model . AClang converte regiões do programa de OpenMP 4.X para OpenCL. Experimentos com um con- junto de algoritmos baseados em Scan foram executados nas GPUs da NVIDIA, Intel e ARM, e mostraram que o desempenho da clausula proposta é equivalente ao alcan- çado pela biblioteca de OpenCL, mas com a vantagem de uma menor complexidade para escrever o código Abstract: Prefix Scan (or simply scan) is an operator that computes all the partial sums of a vec- tor. A scan operation results in a vector where each element is the sum of the preceding elements in the original vector up to the corresponding position. Scan is a key opera- tion in many relevant problems like sorting, lexical analysis, string comparison, image filtering among others. Although there are libraries that provide hand-parallelized im- plementations of the scan in CUDA and OpenCL, no automatic parallelization solution exists for this operator in OpenMP. This work proposes a new clause to OpenMP which enables the automatic synthesis of the parallel scan. By using the proposed clause a programmer can considerably reduce the complexity of designing scan based algorithms, thus allowing he/she to focus the attention on the problem and not on learning new paral- lel programming models or languages. Scan was designed in AClang (www.aclang.org), an open-source LLVM/Clang compiler framework that implements the recently released OpenMP 4.X Accelerator Programming Model. AClang automatically converts OpenMP 4.X annotated program regions to OpenCL. Experiments running a set of typical scan based algorithms on NVIDIA, Intel, and ARM GPUs reveal that the performance of the proposed OpenMP clause is equivalent to that achieved when using OpenCL library calls, with the advantage of a simpler programming complexity Mestrado Ciência da Computação Mestre em Ciência da Computação CAPES [s.n.] https://hdl.handle.net/20.500.12733/1634255 GOMEZ ZEGARRA, Eder Maicol. Support for parallel scan in OpenMP: Suporte de parallel scan em OpenMP. 2018. 1 recurso online (52 p.) Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP. Disponível em: https://hdl.handle.net/20.500.12733/1634255. Acesso em: 28 fev. 2025.
spellingShingle Support for parallel scan in OpenMP : Suporte de parallel scan em OpenMP
Gomez Zegarra, Eder Maicol, 1989-
Arquitetura de computador
OpenCL (Linguagem de programação de computador)
Compiladores (Computadores)
Computação heterogênea
Computer architecture
OpenCL (Computer program language)
Compiling (Electronic computers)
Heterogeneous computing
status_str publishedVersion
title Support for parallel scan in OpenMP : Suporte de parallel scan em OpenMP
title_full Support for parallel scan in OpenMP : Suporte de parallel scan em OpenMP
title_fullStr Support for parallel scan in OpenMP : Suporte de parallel scan em OpenMP
title_full_unstemmed Support for parallel scan in OpenMP : Suporte de parallel scan em OpenMP
title_short Support for parallel scan in OpenMP : Suporte de parallel scan em OpenMP
title_sort Support for parallel scan in OpenMP : Suporte de parallel scan em OpenMP
topic Arquitetura de computador
OpenCL (Linguagem de programação de computador)
Compiladores (Computadores)
Computação heterogênea
Computer architecture
OpenCL (Computer program language)
Compiling (Electronic computers)
Heterogeneous computing
topic_facet Arquitetura de computador
OpenCL (Linguagem de programação de computador)
Compiladores (Computadores)
Computação heterogênea
Computer architecture
OpenCL (Computer program language)
Compiling (Electronic computers)
Heterogeneous computing
url https://hdl.handle.net/20.500.12733/1634255