Mitigando gargalos de desempenho na inversão de forma de onda em sistemas de memória compartilhada
Felipe Hidequel Santos da Silva
João Batista Fernandes
https://orcid.org/0000-0001-7948-5802
Samuel Xavier de Souza
https://orcid.org/0000-0001-8747-4580
Ítalo Augusto Souza de Assis
https://orcid.org/0000-0003-4122-3115
Palavras-chave: Array, Array, Array, Array, Array
Resumo
A Inversão de Forma de Onda (FWI, do inglês Full Waveform Inversion) é uma técnica amplamente utilizada no processamento sísmico, cujo objetivo é otimizar modelos de velocidade que representam o subsolo, permitindo a geração de imagens mais precisas da subsuperfície, úteis para o setor de petróleo e gás. No entanto, a FWI apresenta um custo computacional extremamente elevado, necessitando de supercomputadores para executar modelos realistas, o que pode resultar em tempos de processamento de dias ou até meses. Para contornar essas limitações, a FWI é frequentemente adaptada para computação paralela, especialmente em sistemas de memória compartilhada com o uso da biblioteca OpenMP. Entre as estratégias para otimização, o escalonamento eficiente de tarefas paralelas é um fator crítico, e, nesse contexto, a PaScal Suite surge como uma ferramenta essencial para avaliar a escalabilidade do código, identificar gargalos e automatizar testes de desempenho, contribuindo diretamente para a análise e otimização da FWI. Embora o escalonador dinâmico de tarefas do OpenMP ofereça vantagens na distribuição de blocos de carga entre núcleos ociosos, ele exige a definição de um tamanho de bloco, cuja relação com o desempenho é complexa e difícil de determinar. Para evitar testes exaustivos, propomos o uso da biblioteca PATSMA (FERNANDES et al., 2024), uma ferramenta desenvolvida em C++ que realiza ajuste automático de parâmetros de execução em algoritmos paralelos. Na metodologia, conduzimos testes com a FWI e o PATSMA, variando o tamanho do problema em ambientes de supercomputadores e computação em nuvem, o que nos permitiu verificar uma redução de até 70,46% no tempo de execução em relação ao uso de escalonadores padrão do OpenMP. A análise de eficiência com o PaScal Suite indicou ainda que, apesar da alta paralelização, trechos críticos do código apresentavam gargalos. Após paralelizarmos essas regiões específicas, a eficiência geral da FWI aumentou de 82,06% para 85,75%, com melhorias significativas em áreas específicas, de 46% para 81% e de 56% para 84%. Os avanços desse estudo resultaram em diversas publicações: um artigo na revista SoftwareX, documentando o desenvolvimento do PATSMA; um artigo de conferência e um capítulo de livro apresentados no SSCAD 2024 sobre a análise de escalabilidade com o PaScal Suite; além de um resumo na conferência internacional ENERGY HPC. Atualmente, submetemos um segundo artigo de revista, abordando os resultados da aplicação do PATSMA na FWI. Como trabalhos futuros, pretendemos aprofundar a investigação e mitigação de gargalos na FWI, além de ampliar os testes da PaScal Suite para ambientes distribuídos, visando aumentar a eficiência e o desempenho da ferramenta em diferentes contextos computacionais.
Biografia do Autor
João Batista Fernandes
Possui graduação em Engenharia de Computação pela Universidade Federal do Rio Grande do Norte (2018) e em Ciência e Tecnologia pela mesma universidade (2015). Concluiu o mestrado em Engenharia de Computação (2020), com foco em computação de alto desempenho, e atualmente está cursando o doutorado, com previsão de conclusão em 2024, na área de balanceamento de carga distribuído para processos sísmicos. Durante o período de pós-graduação, participou de dois projetos de pesquisa, ambos voltados para o desenvolvimento de métodos que melhorassem o desempenho de algoritmos sísmicos, como Modelagem Acústica, RTM e FWI. Também colaborou em pesquisas com a Universidade de Queensland (Austrália) e o Instituto Riken (Japão).
Samuel Xavier de Souza
Engenheiro de Computação pela Universidade Federal do Rio Grande do Norte - UFRN (2000) e doutor em Engenharia Elétrica pela Katholieke Universiteit Leuven, Bélgica (2007). Trabalhou como Engenheiro de Software/Hardware no Centro Interuniversitário de Micro- e Nanoeletrônica - IMEC, Bélgica, e como consultor de pesquisa no Centro de Supercomputação de Flanders - VSC, Bélgica. Desde 2009 é professor do Departamento de Engenharia de Computação e Automação da UFRN. Fundou em 2016 o Núcleo de Processamento de Alto Desempenho-NPAD que hoje coordena visando facilitar o uso da supercomputação como ferramenta de pesquisa na UFRN. Em 2016, recebeu o prêmio Royal Society-Newton Advanced Fellowships por suas pesquisas em Software Paralelo Energeticamente Efficiente. Seus interesses de pesquisa estão em eficiência energética de software, eficiência e escalabilidade de sistemas paralelos, algoritmos e arquiteturas paralelas e suas aplicações.
Ítalo Augusto Souza de Assis
Professor do Departamento de Engenharias e Tecnologia (DETEC) da Universidade Federal Rural do Semi-Árido (UFERSA). Doutor em Engenharia Elétrica e da Computação (PPGEE - UFRN). Realizou doutorado sanduíche na UBC e na Georgia Tech financiado pelo Programa PDSE/CAPES. Possui pesquisas nos seguintes temas: Computação Paralela, HPC, GPGPU, algoritmo genético, lógica fuzzy, controle preditivo, algoritmos geofísicos (modelagem acústica, RTM, FWI).