63ª Reunião Anual da SBPC |
A. Ciências Exatas e da Terra - 2. Ciência da Computação - 12. Simulação |
ESTUDO DE UM ALGORITMO DE OTIMIZAÇÃO PARA GERAÇÃO DE MEIOS PARTICULADOS UTILIZANDO GPU |
Hélvio de Farias Costa Peixoto 1 Lucas Pereira de Gouveia 1 Diogo Tenório Cintra 1 William Wagner Matos Lira 2 |
1. Laboratório de Computação Científica e Visualização - LCCV, CTEC, UFAL 2. Prof. Dr./Orientador – LCCV, CTEC, UFAL |
INTRODUÇÃO: |
Este trabalho apresenta o desenvolvimento em placas gráficas (GPU) de uma estratégia para geração de meios particulados a partir da minimização de funções que relacionam as distâncias entre essas partículas. Essa geração de partículas é utilizada em simulações computacionais através do Método dos Elementos Discretos, o qual vem se mostrando como uma das principais técnicas numéricas para análise de problemas em meios descontínuos e sua aplicação é bastante promissora na resolução de problemas que envolvem fenômenos de fragmentação, fraturamento, impacto, colisão, cravação e fluxo. A meta principal deste trabalho é buscar um ganho computacional na geração dessas partículas. O algoritmo clássico de Levenberg-Maquardt é utilizado na minimização das funções, onde trechos paralelizáveis são identificados e programados em GPU. Atualmente, estes dispositivos são encontrados em placas gráficas e possuem múltiplos núcleos de processamento que podem trabalhar em paralelo, de forma a obter um melhor desempenho em relação à programação convencional em CPU. A programação direta na GPU é alcançada através da utilização da API CUDA. Exemplos numéricos são usados para ilustrar e validar a estratégia proposta. |
METODOLOGIA: |
A metodologia de desenvolvimento desta pesquisa divide-se em três etapas. A primeira etapa refere-se aos estudos necessários para o desenvolvimento da pesquisa. Neste item, os seguintes estudos são realizados: a) Estudo de conceitos básicos e avançados relacionados ao tema otimização, onde são estudados, por exemplo, técnicas de otimização lineares e não-lineares, incluindo ou não restrições. b) Estudo de conceitos básicos e avançados relacionados ao tema processamento de alto desempenho, direcionando para o estudo de tópicos relacionados à programação direta na placa gráfica através das GPUs, os quais permitem o desenvolvimento de algoritmos mais rápidos para geração de partículas. A segunda etapa da metodologia de desenvolvimento do trabalho refere-se especificamente ao desenvolvimento e implementação do algoritmo computacional utilizado na minimização de distâncias entre as partículas usando a GPU, representando uma técnica alternativa para geração de meios particulados. A terceira etapa corresponde à elaboração de exemplos numéricos para validação do algoritmo de geração de partículas apresentado, incluindo testes de desempenho para verificação do custo computacional associado ao seu uso. |
RESULTADOS: |
Após estudos relacionados à técnica de minimização de Levenberg-Marquardt, utilizada na estratégia para geração de partículas, observa-se que essa técnica apresenta duas etapas que requerem elevado esforço computacional: a multiplicação de matrizes e a solução de um sistema de equações lineares. Para reduzir esses esforços computacionais, a multiplicação de matrizes é implementada em GPU utilizando-se a biblioteca CUBLAS (biblioteca de operações com matrizes e vetores otimizada para GPU), enquanto que a solução de sistemas lineares é implementada com a utilização da biblioteca CULA (biblioteca de operações de álgebra linear). Após a implementação desses procedimentos, realizam-se testes numéricos para validação da estratégia proposta, os quais apresentam comportamento idêntico ao da versão serial. Na sequência, são realizados testes de desempenho entre as versões serial e paralela. A versão paralela apresenta resultados até 8 vezes mais rápidos. |
CONCLUSÃO: |
Neste trabalho é apresentada uma implementação em placa gráfica (GPU) de um algoritmo de geração de meios particulados densos fazendo uso da técnica Levenberg-Marquardt para a minimização das distâncias entre as partículas do meio. Após a análise dos resultados de desempenho, percebe-se que houve um ganho significativo no tempo de processamento desse algoritmo para o caso específico da minimização da distância entre partículas, quando comparadas as versões serial e paralela dessa mesma aplicação. A versão paralela apresentou resultados bastante significantes, e, ainda possui potencial para melhorias, visto que apenas duas funções deste algoritmo foram paralelizadas. Com a paralelização utilizando CUDA, pode-se alcançar tempos ainda melhores. Espera-se que em próximas etapas deste trabalho o resultado seja ainda melhor, fazendo uso de técnicas de paralelização mais avançadas em CUDA. Sendo assim, nota-se que os objetivos almejados foram alcançados: a paralelização do algoritmo utilizando a API CUDA e o ganho de desempenho em relação à versão serial do mesmo. |
Palavras-chave: Método dos Elementos Discretos, Geração de Partículas, Programação em GPU. |