Estudo de Técnicas de Programação Paralela através da Implementação do Método Lattice Boltzmann
Palavras-chave:
Dinâmica, dos, Fluidos, Computacional, Interfaces, Programação, Paralela, Método, Lattice, BoltzmannResumo
A evolução dos sistemas computacionais contribuiu para o avanço das pesquisas relacionadas à mecânica dos fluidos. Por meio de descrições matemáticas, que relacionam diferentes propriedades físicas de líquidos e gases, a Dinâmica dos Fluidos Computacional possibilita a simulação numérica de uma ampla diversidade de estruturas e fenômenos físicos cotidianos, tais como: furacões, previsão de tempo, aerodinâmica de veículos e fluxos hídricos. Em função disso, desenvolveram-se diversos métodos e algoritmos baseados em simulações numéricas, onde as equações que representam o domínio físico são discretizados, gerando um sistema de equações lineares, resolvido por um método numérico. Técnicas alternativas, como o Método de Lattice Boltzmann (MLB) buscam simplificar essas etapas. O MLB faz uso de valores físicos reais e o comportamento das partículas é representado por um modelo discreto composto por uma malha que possuiu diversos pontos. Do ponto de vista computacional, as operações do MLB são essencialmente locais e, devido a isso, a paralelização do algoritmo torna-se uma possível alternativa para prover um melhor aproveitamento do hardware e ganho de desempenho. Assim, o objetivo deste trabalho é estudar e avaliar diversas técnicas de programação paralela para reduzir o tempo de execução do MLB utilizando diferentes níveis de paralelismo em hardware. Uma das formas de explorar o paralelismo é fazer uso de memória compartilhada, onde todas as unidades de processamento podem acessar a memória diretamente e comunicar-se dessa forma. OpenMP e Pthreads são interfaces para processamento paralelo que exploram concorrência em memória compartilhada. Nesta pesquisa foram desenvolvidas duas versões paralelas do MLB, utilizando OpenMP e Pthreads. A fim de avaliar o ganho de desempenho foram simulados dois casos de passagem de fluxos de fluido através de canais com obstáculos. O primeiro é composto por barreiras nas bordas horizontais e no segundo, além das barreiras que delimitam o escoamento do fluido, foram colocadas seis barreiras paralelas ao eixo y. A arquitetura do ambiente de execução contem dois processadores Intel Xeon 2.00GHz, cada um com 16 cores, 8 físicos e 8 lógicos(Hyper-Threading). Os testes foram executados no sistema operacional Ubuntu. As implementações paralelas do método mostraram que é possível obter um desempenho significativo em ambientes de memória compartilhada, sendo que a versão em OpenMP apresenta aceleração maior que a versão em Pthreads. Com base nos estudos de caso, percebe-se que a distribuição das barreiras é um fator determinante no desempenho paralelo. Ao aumentar-se os obstáculos, foi possível verificar que a aceleração foi menor. A leve diminuição de desempenho se deve as operações que necessitam de mais computação. Estas são executadas apenas em pontos que não são barreiras. Como trabalhos futuros pretende-se estudar outras técnicas de programação paralela. Este trabalho foi desenvolvido recebendo fomento da PROBIC-FAPERGS.Downloads
Os dados de download ainda não estão disponíveis.
Publicado
2020-02-14
Edição
Seção
Artigos
Como Citar
Estudo de Técnicas de Programação Paralela através da Implementação do Método Lattice Boltzmann. Anais do Salão Inovação, Ensino, Pesquisa e Extensão, [S. l.], v. 5, n. 2, 2020. Disponível em: https://periodicos.unipampa.edu.br/index.php/SIEPE/article/view/65782. Acesso em: 22 set. 2026.