Exploração de oportunidades de melhoria de desempenho em um modelo climático - Rhuan Edson Caldini Costa (2020)
Modelos climáticos são programas complexos, que envolvem a implementação computacional de inúmeros cálculos matemáticos de forma a representar fenômenos físicos que interagem entre si. Tais fenômenos geralmente são representados por módulos específicos (atmosférico, oceânico, solo, etc.) que são executados de forma acoplada, isto é, realizam a simulação dos respectivos fenômenos para um certo intervalo de tempo, trocando informações entre si quando necessário. Desta complexidade, surge a necessidade de paralelizar e otimizar sua execução de modo a se obter resultados em tempo viável. Além da paralelização do modelo, técnicas de otimização voltadas à arquitetura de hardware utilizada também podem ser aplicadas, tais como vetorização e blocagem de loops. Este trabalho tem como objetivo explorar oportunidades de otimização de desempenho em modelos climáticos globais, utilizando como estudo de caso o Brazilian Earth System Model (BESM), um modelo desenvolvido pelo CPTEC/INPE com o principal objetivo de simular o clima global de modo a entender as causas das mudanças climáticas. Inicialmente, foi avaliado o desempenho original do BESM, verificando como o modelo estava sendo compilado, quais eram as técnicas de paralelização utilizadas, como seus módulos eram executados, e quais eram os pontos com maior consumo de CPU. Em seguida, baseado nas informações encontradas na análise inicial, foram exploradas possíveis otimizações de desempenho do modelo. Foram aplicadas melhorias no processo de compilação e execução do modelo, e também foram realizadas as alterações necessárias para permitir a execução dos módulos atmosférico e oceânico de forma concorrente, com diferentes quantidades de CPUs alocados para cada módulo. Após todas as otimizações aplicadas, foi obtida redução no tempo de execução de até quatro vezes quando utilizados 24 processadores, e foi reduzido pela metade o tempo mínimo de execução das simulações empregando centenas de processadores. Apesar dos resultados consideráveis alcançados, ainda há espaço para melhorias no BESM em trabalhos futuros, voltadas ao balanceamento de carga entre os processos MPI, especialmente no módulo atmosférico.