Título: | Programação paralela do método dos elementos de contorno |
Autor(es): | Miura Junior, Inácio |
Orientador(es): | Albuquerque, Éder Lima de |
Assunto: | Linguagem de programação (Computadores) Software gratuito Python (Linguagem de programação de computador) |
Data de apresentação: | 18-Dez-2020 |
Data de publicação: | 21-Out-2021 |
Referência: | MIURA JÚNIOR, Inácio. Programação paralela do método dos elementos de contorno. 2020. 104 f., il.Trabalho de Conclusão de Curso (Bacharelado em Engenharia Mecânica)—Universidade de Brasília, Brasília, 2020. |
Resumo: | O presente trabalho explora técnicas de programação de alto desempenho para
aperfeiçoar um código de método dos elementos de contorno (MEC). Serão discutidas
as vantagens da implementação da programação em paralelo, passando por uma revisão
teórica sobre vetorização, multi-threading e programação paralela em clusters. A implementação
do MEC foi escrita em Python devido a facilidade de programação que reduz
o tempo gasto na etapa de desenvolvimento. Serão avaliadas as partes que mais consomem
tempo de processamento para uma otimização utilizando a biblioteca Cython, que
transforma trechos do programa em extensões em C. Foi explorado o uso de Softwares
livres, Open Source, para soluções de geração de CAD (FreeCad, Designspark Mechanical),
geração de malha (GMSH), leitura e conversão de malha (Meshio), visualização e
pós-processamento (ParaView). Por fim, foi analisado o impacto da implementação de paralelismo,
com memória compartilhada, em um dos trechos críticos da rotina de cálculo e
foram discutidos os aspectos práticos e dificuldades técnicas, deste método, com o intuito
de fomentar o uso de novas práticas mais eficientes de programação. A paralelização da
rotina de integração, existente no código, aumentou a velocidade por um fator igual ao
número de processadores utilizados. |
Abstract: | The present work explore high performance programming techniques to enhance
a boundary element method (BEM) code. It was discussed the advantages of implementing
parallel programming, throughout the concept of vectorization, multi-threading and
parallel programming on clusters. The BEM implementation has been written in Python
due to the ease of programming that reduces the time spent in the development stage.
The most time consuming parts will be evaluated for a optimization utilizing the Cython
library, that turns program snippets into C extensions. Free Open Source Softwares will
be explored for solutions of CAD generation (FreeCad, Designspark Mechanical), Mesh
generation (GMSH), Mesh reading and conversion (Meshio), visualization and post processing
(ParaView).Finally, it was analised the impact of a parallel implementation, with
shared memory, on a critical section of the calculation routine and it was discussed the
practical aspects and technical dificulties of such method, with the intention of fomenting
the use of new and more efficient programming practices. The paralelization of the
integration routine, that exist in the code, enhanced the speed by a factor equal to the
number of processors utilized. |
Informações adicionais: | Trabalho de Conclusão de Curso (graduação)—Universidade de Brasília, Faculdade de Tecnologia, Departamento de Engenharia Mecânica, 2020. |
Licença: | A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor que autoriza a Biblioteca Digital da Produção Intelectual Discente da Universidade de Brasília (BDM) a disponibilizar o trabalho de conclusão de curso por meio do sítio bdm.unb.br, com as seguintes condições: disponível sob Licença Creative Commons 4.0 International, que permite copiar, distribuir e transmitir o trabalho, desde que seja citado o autor e licenciante. Não permite o uso para fins comerciais nem a adaptação desta. |
Aparece na Coleção: | Engenharia Mecânica
|
Todos os itens na BDM estão protegidos por copyright. Todos os direitos reservados.