dc.creator | Ferrari, Renato Pizzinato | |
dc.date.accessioned | 2018-12-10T14:56:53Z | |
dc.date.available | 2018-12-10T14:56:53Z | |
dc.date.issued | 2016-03-28 | |
dc.identifier.uri | http://repositorio.ufsm.br/handle/1/15054 | |
dc.description.abstract | This master’s work focused on the development of a decision-making method with automated
steps in order to assist the developer to take the following decision in a given hybrid
system: in which system drive a particular task should be mapped, in order to obtain the best
performance available hardware? Parallel programs target this work should be developed with
the standard OpenACC, using compiler directives to express parallelism and is designed to facilitate
programming in hybrid systems consisting of CPU and GPU.A approach used in this
study is empirical, based on observations performance programs in different configurations and
with different parameters and input data. The formulated proposals do not aim to guarantee the
best decision mapping, but short, as far as possible, the decision process. Aiming to further
discuss this issue of performance at the beginning of this master’s work were made experiments
with a benchmark for OpenACC. The approach adopted in this study is hypothesis that performance
CPU and GPU can be estimated for a given task at a given real hybrid system. This
estimate can be approximated as, at worst, will be equivalent to an erroneous estimate made
manually, which will be perceived and can be corrected for subsequent executions. Thus suggests
that the performance estimation of CPU and GPU is made based jointly on the following
criteria: size of the input data, complexity in time and space and performance target hardware
benchmarks. To form a basis for decision support, it is proposed that a table is built and maintained
on each line is a benchmark in OpenACC, possibly belonging to a suite of benchmarks
as EPCC. His creation, which requires multiple runs of some benchmarks, occurs only once
for a given hybrid system and its data are potentially utilized in different applications and executions.
Aiming achieve the goal of shortening the process and require a minimum developer
interference, has developed a tool that automates parts of this process. The assessment tool was
carried out in order to test its functionality, limitations and quality of the forward estimates of
scientific computing programs. Three programs, belonging to the benchmark Polybench were
chosen. They are: gramschmidt (decomposition by Gram-Schmidt method), lu (LU decomposition)
and durbin (system solution Toeplitz matrix). Each has different computational
complexity. The effectiveness of automated decision can be verified by comparing the run times
between Host, Device and Tools. The automated decision by the tool was determined that the
Gram-Schmidt function execution on GPU when the order of the matrix was greater than or
equal to 400. The difference between the observed order matrix 300 for Order 400 is calculated
due to the difference between the estimated amount of arithmetic operations of the function
correlation and Gram-Schmidt function. The effectiveness of the decision tool, which is based
on the analysis of a benchmark is restricted to algorithms that have computational complexity
in time similar to the benchmark. The differences in values of memory allocated by the benchmark
and the parallelized program are due to parameters that are not easily measured, with for
example the dependence between variables. Therefore it is recommended that the choice of the
memory value used as a decision criterion is made through an iterative process, taking as initial
parameter value obtained in the analysis of benchmark. | eng |
dc.language | por | por |
dc.publisher | Universidade Federal de Santa Maria | por |
dc.rights | Attribution-NonCommercial-NoDerivatives 4.0 International | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/4.0/ | * |
dc.subject | OpenACC | por |
dc.subject | GPU | por |
dc.subject | Processamento paralelo | por |
dc.subject | OpenMP | eng |
dc.title | Decisão automatizada de mapeamento de tarefas com OpenACC em arquiteturas paralelas híbridas | por |
dc.title.alternative | Automated decision on task mapping with OpenACC over hybrid parallel architectures | eng |
dc.type | Dissertação | por |
dc.description.resumo | O presente trabalho de mestrado concentrou-se no desenvolvimento de um método de
decisão com etapas automatizadas, a fim de auxiliar o desenvolvedor a tomar a seguinte decisão
em um dado sistema híbrido: em qual unidade do sistema deve ser mapeada uma determinada
tarefa, para que se obtenha o melhor desempenho no hardware disponível? Os programas paralelos
alvo deste trabalho devem ser desenvolvidos com o padrão OpenACC, que usa diretivas de
compilação para expressar o paralelismo e foi criado para facilitar a programação em sistemas
híbridos formados por CPU e GPU.A abordagem utilizada neste trabalho é empírica, baseada
em observações do desempenho de programas em diferentes configurações e com diferentes
parâmetros e dados de entrada. As propostas formuladas não têm por objetivo garantir a melhor
decisão de mapeamento, mas sim abreviar, na medida do possível, o processo de decisão.
Visando aprofundar esta questão de desempenho, no início deste trabalho de mestrado foram
feitos experimentos com um benchmark para OpenACC. A abordagem adotada neste trabalho
tem por hipótese que o desempenho em CPU e em GPU possa ser estimado para uma determinada
tarefa, em um dado sistema híbrido real. Essa estimativa pode ser aproximada pois,
no pior dos casos, será equivalente a uma estimativa errônea realizada manualmente, que será
percebida e poderá ser corrigida para execuções subsequentes. Dessa forma propõe que a estimativa
de desempenho em CPU e GPU seja feita baseando-se conjuntamente nos seguintes
critérios:tamanho dos dados de entrada, complexidade no tempo e no espaço e desempenho do
hardware alvo em benchmarks. Para formar uma base de apoio à decisão, propõe-se que seja
construída e mantida uma tabela em que cada linha é um benchmark em OpenACC, possivelmente
pertencente a uma suite de benchmarks como o EPCC. Sua criação, que requer várias
execuções de alguns benchmarks, ocorre uma única vez para um dado sistema híbrido e seus
dados são, potencialmente, aproveitados em diferentes aplicações e execuções.Visando atingir
o objetivo de abreviar o processo e exigir um mínimo de interferência do desenvolvedor,
desenvolveu-se uma ferramenta que automatiza partes desse processo. Foram escolhidos três
programas, pertencentes ao benchmark Polybench. São eles: gramschmidt (decomposição
pelo método de Gram-Schmidt), lu (decomposição LU) e durbin (solução de sistema com
matriz de Toeplitz). Cada um deles possui complexidade computacional diferente. A eficácia
da decisão automatizada pode ser verificada comparando-se os tempos de execução entre Host,
Device e da Ferramenta. A decisão automatizada realizada pela ferramenta determinou que a
execução da função de Gram-Schmidt fosse na GPU quando a ordem da matriz fosse maior ou
igual 400. A diferença entre a ordem da matriz observada 300 para ordem calculada 400 é devida
à diferença entre a quantidade de operações aritméticas estimadas da função de correlação
e a função de Gram-Schmidt. A eficácia da ferramenta de decisão, que tem por base a análise
de um benchmark é restringida aos algoritmos que possuem complexidade computacional no
tempo similar ao do benchmark. As diferenças dos valores da memória alocada pelo benchmark
e o programa paralelizado devem-se a parâmetros que não são facilmente mensuráveis, como
por exemplo a dependência entre as variáveis. Portanto recomenda-se que a escolha do valor da
memória utilizada como critério de decisão seja feita através de um processo iterativo, tomando
como parâmetro inicial o valor obtido na análise do benchmark. | por |
dc.contributor.advisor1 | Charao, Andrea Schwertner | |
dc.contributor.advisor1Lattes | http://lattes.cnpq.br/8251676116103188 | por |
dc.contributor.referee1 | Lima, João Vicente Ferreira | |
dc.contributor.referee1Lattes | http://lattes.cnpq.br/6266546896929217 | por |
dc.contributor.referee2 | Campos Velho, Haroldo Fraga de | |
dc.contributor.referee2Lattes | http://lattes.cnpq.br/5142426481528206 | por |
dc.creator.Lattes | http://lattes.cnpq.br/0015021275451887 | por |
dc.publisher.country | Brasil | por |
dc.publisher.department | Ciência da Computação | por |
dc.publisher.initials | UFSM | por |
dc.publisher.program | Programa de Pós-Graduação em Ciência da Computação | por |
dc.subject.cnpq | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO | por |
dc.publisher.unidade | Centro de Tecnologia | por |