Estudo de Técnicas de Programação Paralela através da Implementação do Método de Lattice Boltzmann

July 4, 2017 | Autor: Matheus Serpa | Categoria: Computer Science, Parallel Computing, High Performance Computing
Share Embed


Descrição do Produto

Estudo de Técnicas de Programação Paralela através da Implementação do Método Lattice Boltzmann Matheus da Silva Serpa, Claudio Schepke

Resumo 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.

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.