Decisão automatizada de mapeamento de tarefas com OpenACC em arquiteturas paralelas híbridas
Ano de defesa: | 2016 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Federal de Santa Maria
Brasil Ciência da Computação UFSM Programa de Pós-Graduação em Ciência da Computação Centro de Tecnologia |
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | http://repositorio.ufsm.br/handle/1/15054 |
Resumo: | 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. |