Solução ponta a ponta em GPU do método sem malha local Petrov-Galerkin (MLPG)
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
Tipo de documento: | Tese |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFMG |
Texto Completo: | http://hdl.handle.net/1843/32868 https://orcid.org/0000-0002-7353-1254 |
Resumo: | Este trabalho apresenta um procedimento massivamente paralelo ponta a ponta para a solução de problemas de valor de contorno em unidades de processamento gráfico (graphics processing units - GPU). A proposta é uma estratégia integrada que envolve não apenas o cálculo das contribuições nodais e a montagem da matriz de rigidez usando o método Meshless Local Petrov Galerkin (MLPG), mas também a solução iterativa do sistema de equações algébricas com o uso dos métodos da família dos Gradientes Conjugados (CG). A contribuição mais importante é o MLPG ponta a ponta em GPU implementado e tirando proveito máximo da arquitetura SIMT (Single Instruction Multiple Thread) do dispositivo. Desde os cálculos iniciais até a entrega da solução para o problema tratado, as etapas integradas são computadas exclusivamente na GPU para evitar custos relacionados à movimentação e conversão de dados. A solução proposta usa a natureza substancialmente paralela do MLPG mantendo cada nó da nuvem em uma thread no dispositivo, permanecendo desta forma até a finalização da computação da última etapa do processo com subsequente entrega dos valores de interesse nos respectivos nós da nuvem. Dessa maneira, são necessárias estruturas auxiliares mínimas e poucos pontos de sincronização. Variações da solução são testadas para avaliar o impacto efetivo na GPU, suportando decisões mais precisas. Entre o que é testado estão o posicionamento inicial dos nós no domínio, as técnicas de funções de forma do MLPG e quatro solvers diferentes da família dos Gradientes Conjugados, sendo eles: (i) Gradientes BiConjugados - BICG, (ii) Gradientes Conjugados Quadrático - CGS, (iii) Gradientes BiConjugados Estabilizado - BICG-Stab e (iv) Gradientes BiConjugados Estabilizado Aprimorado - I-BICG-Stab. Para avaliar a viabilidade da solução e as métricas de desempenho, é utilizado o problema do capacitor de duas placas paralelas. Apesar da simplicidade do problema, os algoritmos são os mesmos usados para problemas complexos, e foi observado um speedup de sete vezes na solução completa. Este valor pode ser ainda mais expressivo com o crescimento do número de nós da nuvem durante a discretização de domínio. |
id |
UFMG_13b1223d9c55cd63ff49f615cf78913a |
---|---|
oai_identifier_str |
oai:repositorio.ufmg.br:1843/32868 |
network_acronym_str |
UFMG |
network_name_str |
Repositório Institucional da UFMG |
repository_id_str |
|
spelling |
Renato Cardoso Mesquitahttp://lattes.cnpq.br/7452085194074257Ricardo Luiz da Silva AdrianoRenato Antônio Celso FerreiraMarcio Matias AfonsoEduardo Henrique da Rocha CoppoliAlexandre Ramos Fonsecahttp://lattes.cnpq.br/2859269540331865Lucas Pantuza Amorim2020-03-12T17:29:15Z2020-03-12T17:29:15Z2019-12-04http://hdl.handle.net/1843/32868https://orcid.org/0000-0002-7353-1254Este trabalho apresenta um procedimento massivamente paralelo ponta a ponta para a solução de problemas de valor de contorno em unidades de processamento gráfico (graphics processing units - GPU). A proposta é uma estratégia integrada que envolve não apenas o cálculo das contribuições nodais e a montagem da matriz de rigidez usando o método Meshless Local Petrov Galerkin (MLPG), mas também a solução iterativa do sistema de equações algébricas com o uso dos métodos da família dos Gradientes Conjugados (CG). A contribuição mais importante é o MLPG ponta a ponta em GPU implementado e tirando proveito máximo da arquitetura SIMT (Single Instruction Multiple Thread) do dispositivo. Desde os cálculos iniciais até a entrega da solução para o problema tratado, as etapas integradas são computadas exclusivamente na GPU para evitar custos relacionados à movimentação e conversão de dados. A solução proposta usa a natureza substancialmente paralela do MLPG mantendo cada nó da nuvem em uma thread no dispositivo, permanecendo desta forma até a finalização da computação da última etapa do processo com subsequente entrega dos valores de interesse nos respectivos nós da nuvem. Dessa maneira, são necessárias estruturas auxiliares mínimas e poucos pontos de sincronização. Variações da solução são testadas para avaliar o impacto efetivo na GPU, suportando decisões mais precisas. Entre o que é testado estão o posicionamento inicial dos nós no domínio, as técnicas de funções de forma do MLPG e quatro solvers diferentes da família dos Gradientes Conjugados, sendo eles: (i) Gradientes BiConjugados - BICG, (ii) Gradientes Conjugados Quadrático - CGS, (iii) Gradientes BiConjugados Estabilizado - BICG-Stab e (iv) Gradientes BiConjugados Estabilizado Aprimorado - I-BICG-Stab. Para avaliar a viabilidade da solução e as métricas de desempenho, é utilizado o problema do capacitor de duas placas paralelas. Apesar da simplicidade do problema, os algoritmos são os mesmos usados para problemas complexos, e foi observado um speedup de sete vezes na solução completa. Este valor pode ser ainda mais expressivo com o crescimento do número de nós da nuvem durante a discretização de domínio.This work presents an end-to-end massively parallelized procedure for the solution of boundary value problems on Graphics Processing Units (GPU). The proposal is an integrated strategy that not only entails the calculation of nodal contributions, and the stiffness matrix assembly using the Meshless Local Petrov Galerkin Method (MLPG) but also the iterative solution of the system of algebraic equations in combination with methods from the Conjugate Gradient (CG) family. The most important contribution is a complete end-to-end MLPG implementation in GPU taking full advantage of the device's Single Instruction Multiple Thread (SIMT) architecture. From initial calculations to solution delivery for the problem addressed, the integrated steps are computed exclusively in the GPU to avoid costs related to data movement and conversion. The proposed solution takes advantage of the parallel nature of the MLPG by holding each cloud node in a thread on the device, until the final computation of the last process step is completed with subsequent delivery of the values of interest to the respective cloud nodes. Thus minimal auxiliary structures and few synchronization points are required. Different solution variations are tested to assess the effective impact on the GPU, supporting more accurate decisions. Among others, the tests include variations on the initial node position in the domain, the MLPG form function techniques and four different solvers of the Conjugate Gradient family, namely: (i) BiConjugate Gradients - BICG, (ii) Quadratic Conjugate Gradients - CGS, (iii) BiConjugate Gradients Stabilized - BICG-Stab and (iv) BiConjugate Gradients Enhanced - I-BICG-Stab. To evaluate the solution viability and performance metrics, the two parallel plate capacitor problem is used. Despite the simplicity of the problem, the application of the proposed algorithms to more complex problems is straightforward, and a sevenfold speedup is observed in the end-to-end solution. This number can be even more significant with cloud node growth during domain discretization.CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível SuperiorporUniversidade Federal de Minas GeraisPrograma de Pós-Graduação em Engenharia ElétricaUFMGBrasilENG - DEPARTAMENTO DE ENGENHARIA ELÉTRICAhttp://creativecommons.org/licenses/by-nc/3.0/pt/info:eu-repo/semantics/openAccessEngenharia elétricaEletromagnetismoGPUMétodo sem malhaMLPGSolucionadorSolução ponta a ponta em GPU do método sem malha local Petrov-Galerkin (MLPG)info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMGCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8920https://repositorio.ufmg.br/bitstream/1843/32868/2/license_rdf33b8016dc5c4681c1e7a582a4161162cMD52ORIGINAL_LucasPantuzaAmorim_tese.pdf_LucasPantuzaAmorim_tese.pdfapplication/pdf3151267https://repositorio.ufmg.br/bitstream/1843/32868/4/_LucasPantuzaAmorim_tese.pdfc72f9850db2499c9004b45b49e4ae7b5MD54LICENSElicense.txtlicense.txttext/plain; charset=utf-82119https://repositorio.ufmg.br/bitstream/1843/32868/5/license.txt34badce4be7e31e3adb4575ae96af679MD55TEXT_LucasPantuzaAmorim_tese.pdf.txt_LucasPantuzaAmorim_tese.pdf.txtExtracted texttext/plain203086https://repositorio.ufmg.br/bitstream/1843/32868/6/_LucasPantuzaAmorim_tese.pdf.txta9fa544524ca7e857fc806df81730901MD561843/328682020-03-13 03:41:45.514oai:repositorio.ufmg.br:1843/32868TElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEgRE8gUkVQT1NJVMOTUklPIElOU1RJVFVDSU9OQUwgREEgVUZNRwoKQ29tIGEgYXByZXNlbnRhw6fDo28gZGVzdGEgbGljZW7Dp2EsIHZvY8OqIChvIGF1dG9yIChlcykgb3UgbyB0aXR1bGFyIGRvcyBkaXJlaXRvcyBkZSBhdXRvcikgY29uY2VkZSBhbyBSZXBvc2l0w7NyaW8gSW5zdGl0dWNpb25hbCBkYSBVRk1HIChSSS1VRk1HKSBvIGRpcmVpdG8gbsOjbyBleGNsdXNpdm8gZSBpcnJldm9nw6F2ZWwgZGUgcmVwcm9kdXppciBlL291IGRpc3RyaWJ1aXIgYSBzdWEgcHVibGljYcOnw6NvIChpbmNsdWluZG8gbyByZXN1bW8pIHBvciB0b2RvIG8gbXVuZG8gbm8gZm9ybWF0byBpbXByZXNzbyBlIGVsZXRyw7RuaWNvIGUgZW0gcXVhbHF1ZXIgbWVpbywgaW5jbHVpbmRvIG9zIGZvcm1hdG9zIMOhdWRpbyBvdSB2w61kZW8uCgpWb2PDqiBkZWNsYXJhIHF1ZSBjb25oZWNlIGEgcG9sw610aWNhIGRlIGNvcHlyaWdodCBkYSBlZGl0b3JhIGRvIHNldSBkb2N1bWVudG8gZSBxdWUgY29uaGVjZSBlIGFjZWl0YSBhcyBEaXJldHJpemVzIGRvIFJJLVVGTUcuCgpWb2PDqiBjb25jb3JkYSBxdWUgbyBSZXBvc2l0w7NyaW8gSW5zdGl0dWNpb25hbCBkYSBVRk1HIHBvZGUsIHNlbSBhbHRlcmFyIG8gY29udGXDumRvLCB0cmFuc3BvciBhIHN1YSBwdWJsaWNhw6fDo28gcGFyYSBxdWFscXVlciBtZWlvIG91IGZvcm1hdG8gcGFyYSBmaW5zIGRlIHByZXNlcnZhw6fDo28uCgpWb2PDqiB0YW1iw6ltIGNvbmNvcmRhIHF1ZSBvIFJlcG9zaXTDs3JpbyBJbnN0aXR1Y2lvbmFsIGRhIFVGTUcgcG9kZSBtYW50ZXIgbWFpcyBkZSB1bWEgY8OzcGlhIGRlIHN1YSBwdWJsaWNhw6fDo28gcGFyYSBmaW5zIGRlIHNlZ3VyYW7Dp2EsIGJhY2stdXAgZSBwcmVzZXJ2YcOnw6NvLgoKVm9jw6ogZGVjbGFyYSBxdWUgYSBzdWEgcHVibGljYcOnw6NvIMOpIG9yaWdpbmFsIGUgcXVlIHZvY8OqIHRlbSBvIHBvZGVyIGRlIGNvbmNlZGVyIG9zIGRpcmVpdG9zIGNvbnRpZG9zIG5lc3RhIGxpY2Vuw6dhLiBWb2PDqiB0YW1iw6ltIGRlY2xhcmEgcXVlIG8gZGVww7NzaXRvIGRlIHN1YSBwdWJsaWNhw6fDo28gbsOjbywgcXVlIHNlamEgZGUgc2V1IGNvbmhlY2ltZW50bywgaW5mcmluZ2UgZGlyZWl0b3MgYXV0b3JhaXMgZGUgbmluZ3XDqW0uCgpDYXNvIGEgc3VhIHB1YmxpY2HDp8OjbyBjb250ZW5oYSBtYXRlcmlhbCBxdWUgdm9jw6ogbsOjbyBwb3NzdWkgYSB0aXR1bGFyaWRhZGUgZG9zIGRpcmVpdG9zIGF1dG9yYWlzLCB2b2PDqiBkZWNsYXJhIHF1ZSBvYnRldmUgYSBwZXJtaXNzw6NvIGlycmVzdHJpdGEgZG8gZGV0ZW50b3IgZG9zIGRpcmVpdG9zIGF1dG9yYWlzIHBhcmEgY29uY2VkZXIgYW8gUmVwb3NpdMOzcmlvIEluc3RpdHVjaW9uYWwgZGEgVUZNRyBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgbmVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgZGUgcHJvcHJpZWRhZGUgZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3Ugbm8gY29udGXDumRvIGRhIHB1YmxpY2HDp8OjbyBvcmEgZGVwb3NpdGFkYS4KCkNBU08gQSBQVUJMSUNBw4fDg08gT1JBIERFUE9TSVRBREEgVEVOSEEgU0lETyBSRVNVTFRBRE8gREUgVU0gUEFUUk9Dw41OSU8gT1UgQVBPSU8gREUgVU1BIEFHw4pOQ0lBIERFIEZPTUVOVE8gT1UgT1VUUk8gT1JHQU5JU01PLCBWT0PDiiBERUNMQVJBIFFVRSBSRVNQRUlUT1UgVE9ET1MgRSBRVUFJU1FVRVIgRElSRUlUT1MgREUgUkVWSVPDg08gQ09NTyBUQU1Cw4lNIEFTIERFTUFJUyBPQlJJR0HDh8OVRVMgRVhJR0lEQVMgUE9SIENPTlRSQVRPIE9VIEFDT1JETy4KCk8gUmVwb3NpdMOzcmlvIEluc3RpdHVjaW9uYWwgZGEgVUZNRyBzZSBjb21wcm9tZXRlIGEgaWRlbnRpZmljYXIgY2xhcmFtZW50ZSBvIHNldSBub21lKHMpIG91IG8ocykgbm9tZXMocykgZG8ocykgZGV0ZW50b3IoZXMpIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBkYSBwdWJsaWNhw6fDo28sIGUgbsOjbyBmYXLDoSBxdWFscXVlciBhbHRlcmHDp8OjbywgYWzDqW0gZGFxdWVsYXMgY29uY2VkaWRhcyBwb3IgZXN0YSBsaWNlbsOnYS4KCg==Repositório de PublicaçõesPUBhttps://repositorio.ufmg.br/oaiopendoar:2020-03-13T06:41:45Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false |
dc.title.pt_BR.fl_str_mv |
Solução ponta a ponta em GPU do método sem malha local Petrov-Galerkin (MLPG) |
title |
Solução ponta a ponta em GPU do método sem malha local Petrov-Galerkin (MLPG) |
spellingShingle |
Solução ponta a ponta em GPU do método sem malha local Petrov-Galerkin (MLPG) Lucas Pantuza Amorim GPU Método sem malha MLPG Solucionador Engenharia elétrica Eletromagnetismo |
title_short |
Solução ponta a ponta em GPU do método sem malha local Petrov-Galerkin (MLPG) |
title_full |
Solução ponta a ponta em GPU do método sem malha local Petrov-Galerkin (MLPG) |
title_fullStr |
Solução ponta a ponta em GPU do método sem malha local Petrov-Galerkin (MLPG) |
title_full_unstemmed |
Solução ponta a ponta em GPU do método sem malha local Petrov-Galerkin (MLPG) |
title_sort |
Solução ponta a ponta em GPU do método sem malha local Petrov-Galerkin (MLPG) |
author |
Lucas Pantuza Amorim |
author_facet |
Lucas Pantuza Amorim |
author_role |
author |
dc.contributor.advisor1.fl_str_mv |
Renato Cardoso Mesquita |
dc.contributor.advisor1Lattes.fl_str_mv |
http://lattes.cnpq.br/7452085194074257 |
dc.contributor.referee1.fl_str_mv |
Ricardo Luiz da Silva Adriano |
dc.contributor.referee2.fl_str_mv |
Renato Antônio Celso Ferreira |
dc.contributor.referee3.fl_str_mv |
Marcio Matias Afonso |
dc.contributor.referee4.fl_str_mv |
Eduardo Henrique da Rocha Coppoli |
dc.contributor.referee5.fl_str_mv |
Alexandre Ramos Fonseca |
dc.contributor.authorLattes.fl_str_mv |
http://lattes.cnpq.br/2859269540331865 |
dc.contributor.author.fl_str_mv |
Lucas Pantuza Amorim |
contributor_str_mv |
Renato Cardoso Mesquita Ricardo Luiz da Silva Adriano Renato Antônio Celso Ferreira Marcio Matias Afonso Eduardo Henrique da Rocha Coppoli Alexandre Ramos Fonseca |
dc.subject.por.fl_str_mv |
GPU Método sem malha MLPG Solucionador |
topic |
GPU Método sem malha MLPG Solucionador Engenharia elétrica Eletromagnetismo |
dc.subject.other.pt_BR.fl_str_mv |
Engenharia elétrica Eletromagnetismo |
description |
Este trabalho apresenta um procedimento massivamente paralelo ponta a ponta para a solução de problemas de valor de contorno em unidades de processamento gráfico (graphics processing units - GPU). A proposta é uma estratégia integrada que envolve não apenas o cálculo das contribuições nodais e a montagem da matriz de rigidez usando o método Meshless Local Petrov Galerkin (MLPG), mas também a solução iterativa do sistema de equações algébricas com o uso dos métodos da família dos Gradientes Conjugados (CG). A contribuição mais importante é o MLPG ponta a ponta em GPU implementado e tirando proveito máximo da arquitetura SIMT (Single Instruction Multiple Thread) do dispositivo. Desde os cálculos iniciais até a entrega da solução para o problema tratado, as etapas integradas são computadas exclusivamente na GPU para evitar custos relacionados à movimentação e conversão de dados. A solução proposta usa a natureza substancialmente paralela do MLPG mantendo cada nó da nuvem em uma thread no dispositivo, permanecendo desta forma até a finalização da computação da última etapa do processo com subsequente entrega dos valores de interesse nos respectivos nós da nuvem. Dessa maneira, são necessárias estruturas auxiliares mínimas e poucos pontos de sincronização. Variações da solução são testadas para avaliar o impacto efetivo na GPU, suportando decisões mais precisas. Entre o que é testado estão o posicionamento inicial dos nós no domínio, as técnicas de funções de forma do MLPG e quatro solvers diferentes da família dos Gradientes Conjugados, sendo eles: (i) Gradientes BiConjugados - BICG, (ii) Gradientes Conjugados Quadrático - CGS, (iii) Gradientes BiConjugados Estabilizado - BICG-Stab e (iv) Gradientes BiConjugados Estabilizado Aprimorado - I-BICG-Stab. Para avaliar a viabilidade da solução e as métricas de desempenho, é utilizado o problema do capacitor de duas placas paralelas. Apesar da simplicidade do problema, os algoritmos são os mesmos usados para problemas complexos, e foi observado um speedup de sete vezes na solução completa. Este valor pode ser ainda mais expressivo com o crescimento do número de nós da nuvem durante a discretização de domínio. |
publishDate |
2019 |
dc.date.issued.fl_str_mv |
2019-12-04 |
dc.date.accessioned.fl_str_mv |
2020-03-12T17:29:15Z |
dc.date.available.fl_str_mv |
2020-03-12T17:29:15Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/1843/32868 |
dc.identifier.orcid.pt_BR.fl_str_mv |
https://orcid.org/0000-0002-7353-1254 |
url |
http://hdl.handle.net/1843/32868 https://orcid.org/0000-0002-7353-1254 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
http://creativecommons.org/licenses/by-nc/3.0/pt/ info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc/3.0/pt/ |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal de Minas Gerais |
dc.publisher.program.fl_str_mv |
Programa de Pós-Graduação em Engenharia Elétrica |
dc.publisher.initials.fl_str_mv |
UFMG |
dc.publisher.country.fl_str_mv |
Brasil |
dc.publisher.department.fl_str_mv |
ENG - DEPARTAMENTO DE ENGENHARIA ELÉTRICA |
publisher.none.fl_str_mv |
Universidade Federal de Minas Gerais |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFMG instname:Universidade Federal de Minas Gerais (UFMG) instacron:UFMG |
instname_str |
Universidade Federal de Minas Gerais (UFMG) |
instacron_str |
UFMG |
institution |
UFMG |
reponame_str |
Repositório Institucional da UFMG |
collection |
Repositório Institucional da UFMG |
bitstream.url.fl_str_mv |
https://repositorio.ufmg.br/bitstream/1843/32868/2/license_rdf https://repositorio.ufmg.br/bitstream/1843/32868/4/_LucasPantuzaAmorim_tese.pdf https://repositorio.ufmg.br/bitstream/1843/32868/5/license.txt https://repositorio.ufmg.br/bitstream/1843/32868/6/_LucasPantuzaAmorim_tese.pdf.txt |
bitstream.checksum.fl_str_mv |
33b8016dc5c4681c1e7a582a4161162c c72f9850db2499c9004b45b49e4ae7b5 34badce4be7e31e3adb4575ae96af679 a9fa544524ca7e857fc806df81730901 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG) |
repository.mail.fl_str_mv |
|
_version_ |
1801676767213125632 |