Mitigando gargalos de desempenho na inversão de forma de onda em sistemas de memória compartilhada
Palavras-chave:
Autoajuste, Computação de alto desempenho, Sistemas de memória compartilhada, Escalonamento, OtimizaçãoResumo
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.