Um Algoritmo Cuda em Diferenςas Finitas para a Discretizaςão das Equaςões de Navier-Stokes

Wesley dos S. Menenguci, Andrea M. P. Valli, Lucia Catabriga, Lucas Veronese

Abstract


As unidades de processamento gráfico (Graphics Processing Unit – GPU) surgiram como um poderoso dispositivo computacional e a plataforma Compute Unified Device Architecture (CUDA) é um ambiente adequado que permite a tradução quase direta de um código C para uma 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 objetico 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 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 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. Além disso, é discutido neste trabalho os benefícios e dificuldades da utilização das memórias compartilhada (shared memory) e global (global memory) existentes na GPU. O algoritmo C+CUDA foi verificado para um conjunto de problemas conhecidos da literatura e o tempo de processamento comparado com o mesmo algoritmo implementado em C. Os resultados numéricos mostraram que o tempo de processamento pode ser reduzido significamente utilizando C+CUDA.

Full Text:

PDF



Asociación Argentina de Mecánica Computacional
Güemes 3450
S3000GLN Santa Fe, Argentina
Phone: 54-342-4511594 / 4511595 Int. 1006
Fax: 54-342-4511169
E-mail: amca(at)santafe-conicet.gov.ar
ISSN 2591-3522