Resolução de um problema térmico inverso utilizando processamento paralelo em arquiteturas de memória compartilhada

dc.contributorSeleghim Junior, Paulo
dc.creatorAnsoni, Jonas Laerte
dc.date2010-09-03
dc.date2011-02-07
dc.date.accessioned2017-11-15T11:19:52Z
dc.date.available2017-11-15T11:19:52Z
dc.date.issued2017-11-15
dc.descriptionA programação paralela tem sido freqüentemente adotada para o desenvolvimento de aplicações que demandam alto desempenho computacional. Com o advento das arquiteturas multi-cores e a existência de diversos níveis de paralelismo é importante definir estratégias de programação paralela que tirem proveito desse poder de processamento nessas arquiteturas. Neste contexto, este trabalho busca avaliar o desempenho da utilização das arquiteturas multi-cores, principalmente o oferecido pelas unidades de processamento gráfico (GPUs) e CPUs multi-cores na resolução de um problema térmico inverso. Algoritmos paralelos para a GPU e CPU foram desenvolvidos utilizando respectivamente as ferramentas de programação em arquiteturas de memória compartilhada NVIDIA CUDA (Compute Unified Device Architecture) e a API POSIX Threads. O algoritmo do método do gradiente conjugado pré-condicionado para resolução de sistemas lineares esparsos foi implementado totalmente no espaço da memória global da GPU em CUDA. O algoritmo desenvolvido foi avaliado em dois modelos de GPU, os quais se mostraram mais eficientes, apresentando um speedup de quatro vezes que a versão serial do algoritmo. A aplicação paralela em POSIX Threads foi avaliada em diferentes CPUs multi-cores com distintas microarquiteturas. Buscando um maior desempenho do código paralelizado foram utilizados flags de otimização as quais se mostraram muito eficientes na aplicação desenvolvida. Desta forma o código paralelizado com o auxílio das flags de otimização chegou a apresentar tempos de processamento cerca de doze vezes mais rápido que a versão serial no mesmo processador sem nenhum tipo de otimização. Assim tanto a abordagem utilizando a GPU como um co-processador genérico a CPU como a aplicação paralela empregando as CPUs multi-cores mostraram-se ferramentas eficientes para a resolução do problema térmico inverso.
dc.descriptionParallel programming has been frequently adopted for the development of applications that demand high-performance computing. With the advent of multi-cores architectures and the existence of several levels of parallelism are important to define programming strategies that take advantage of parallel processing power in these architectures. In this context, this study aims to evaluate the performance of architectures using multi-cores, mainly those offered by the graphics processing units (GPUs) and CPU multi-cores in the resolution of an inverse thermal problem. Parallel algorithms for the GPU and CPU were developed respectively, using the programming tools in shared memory architectures, NVIDIA CUDA (Compute Unified Device Architecture) and the POSIX Threads API. The algorithm of the preconditioned conjugate gradient method for solving sparse linear systems entirely within the global memory of the GPU was implemented by CUDA. It evaluated the two models of GPU, which proved more efficient by having a speedup was four times faster than the serial version of the algorithm. The parallel application in POSIX Threads was evaluated in different multi-core CPU with different microarchitectures. Optimization flags were used to achieve a higher performance of the parallelized code. As those were efficient in the developed application, the parallelized code presented processing times about twelve times faster than the serial version on the same processor without any optimization. Thus both the approach using GPU as a coprocessor to the CPU as a generic parallel application using the multi-core CPU proved to be more efficient tools for solving the inverse thermal problem.
dc.formatapplication/pdf
dc.identifierhttp://www.teses.usp.br/teses/disponiveis/18/18147/tde-19012011-104826/
dc.identifierdoi:10.11606/D.18.2010.tde-19012011-104826
dc.identifier.urihttp://repositorio.eesc.usp.br/handle/RIEESC/2883
dc.languagept
dc.publisherBiblioteca Digital de Teses e Dissertações da USP
dc.publisherUniversidade de São Paulo
dc.publisherEscola de Engenharia de São Carlos
dc.rightsLiberar o conteúdo para acesso público.
dc.subjectGPGPU CUDA
dc.subjectGradiente conjugado pré-condicionado
dc.subjectMatriz esparsa
dc.subjectProcessamento paralelo
dc.subjectPOSIX threads
dc.subjectGPGPU CUDA
dc.subjectPreconditioned conjugate gradient algorithm
dc.subjectPOSIX threads
dc.subjectParallel processing
dc.subjectSparse numerical solver
dc.titleResolução de um problema térmico inverso utilizando processamento paralelo em arquiteturas de memória compartilhada
dc.titleResolution of an inverse thermal problem using parallel processing on shared memory architectures
dc.typeDissertação de Mestrado
Arquivos