Tesis
IMPLEMENTAÇÃO DE MODELOS DE MECÂNICA DOS FLUIDOS COMPUTACIONAL EM SISTEMAS MANY-CORE USANDO C+CUDA.
Fecha
2011-08-25Registro en:
MENENGUCI, W. S., IMPLEMENTAÇÃO DE MODELOS DE MECÂNICA DOS FLUIDOS COMPUTACIONAL EM SISTEMAS MANY-CORE USANDO C+CUDA.
Autor
CATABRIGA, L.
VALLI, A. M. P.
DE SOUZA, A. F.
COUTINHO, A. L. G. A.
Institución
Resumen
As unidades de processamento gráfico (Graphics Processing Unit -- GPU) surgiram como um poderoso dispositivo computacional e a plataforma Compute Unified Device Architecture (CUDA) como um ambiente adequado para a implementação de um código na GPU. Especializada inicialmente em processamento gráfico, a GPU vem sendo designada à otimização de cálculos lógicos e aritméticos beneficiando diversas áreas de pesquisa com a redução do tempo de computação. O objetivo deste trabalho é mostrar como aplicações em mecânica dos fluidos, discretizadas pelo método das diferenças finitas, podem lucrar bastante com esta tecnologia. Implementações paralelas na GPU em C+CUDA das equações de Navier-Stokes e de transporte são comparadas com uma versão sequencial implementada na CPU em C. É utilizada uma formulação em diferenças finitas implícita-explícita, sendo o algoritmo caracterizado como sendo explícito nas velocidades e temperatura e implícito na pressão. A resolução dos sistemas lineares resultantes é feita utilizando um esquema de coloração Red-Black para as células internas da malha e o método iterativo successive-over-relaxation (SOR), denominado Red-Black-SOR. É discutido
neste trabalho os impactos do uso de tipos de dados double e float e também a utilização de memórias shared e global existentes na GPU. O algoritmo C+CUDA é verificado para o seguinte conjunto de problemas conhecidos da literatura: cavidade com cobertura deslizante, escoamento sobre um degrau, escoamento laminar com um obstáculo cilíndrico, convecção natural e convecção de Rayleigh-Bénard, considerando casos bidimensionais e tridimensionais. O tempo de processamento é comparado com o mesmo algoritmo implementado em C. Os resultados numéricos mostraram que é possível alcançar speedups da ordem de 85 vezes para dados float e 61 vezes para dados double utlizando C+CUDA.