top of page

Eficiência computacional

  • Foto do escritor: Rhama Analysis
    Rhama Analysis
  • 30 de mai. de 2010
  • 4 min de leitura

A minha carreira de professor e pesquisador tem envolvido aspectos computacionais de modelos matemáticos em hidrologia, hidráulica e qualidade da água. Para aqueles que desejam trabalhar neste assunto recomendo buscar um bom conhecimento de cálculo diferencial e principalmente cálculo numérico.

Os modelos matemáticos de todas as áreas possuem em comum a necessidade de resolver por discretização numérica equações diferenciais que se baseiam em funções contínuas. Algumas das principais dificuldades dos modelos, que exige grande processamento, se relacionam com a eficiência computacional. Por exemplo, os modelos climáticos estão limitados na sua discretização espacial pela capacidade de processamento dos computadores atuais. Os computadores possuem um ou mais processadores, onde são realizados os cálculos. Os micros antes tinham apenas um processador, hoje possuem vários. O acréscimo de processadores permite que cálculos possam ser realizados em paralelo, o que gerou a programação paralela, onde os programas distribuem as tarefas para mais de um processador. Em semanas anteriores apresentei os resultados de Adriano Paz que utilizou processamento paralelo para simular a planície do Pantanal por vários anos. No entanto, quando os cálculos têm ordem de precedência o processamento paralelo não apresenta ganhos.

Para ilustrar estes aspectos na simulação vou contar o que ocorreu comigo, deste o período do meu doutorado nos Estados Unidos entre 1975 e 1978, até o momento. A minha tese era a simulação hidrodinâmica e de qualidade da água em regime não-permanente de uma rede de rios. Para resolver as equações de escoamento uni-dimensional (2 equações: 1 de continuidade de massa e outra de quantidade de movimento) utiliza-se principalmente esquemas numéricos implícitos, que necessitam resolver em cada intervalo de tempo um sistema de equações de 2N equações x 2 N incógnitas, onde N é o número de seções do rio. No caso de qualidade da água resolve-se a equação de transporte de massa num sistema de N x N equações para cada parâmetro de qualidade da água, também para cada intervalo de tempo. Para rios sem confluências, a matriz de coeficientes do sistema de equações é banda, ou seja, os valores se acomodam na diagonal principal, sendo resolvida sem muito esforço pela operação somente dos valores não-zeros. Por exemplo, um rio com 100 seções, a matriz total de 200 x 200 teria 40000 valores, mas apenas 800 são não-zeros. No entanto, quando existem as confluências, devido à numeração não-contínua das seções, a matriz torna-se esparsa. Este foi um dos principais problemas que enfrentei na época, já que não havia solução para este tipo de problema com métodos diretos (como o de Gauss) e os métodos iterativos apresentavam sérios problemas de convergência para este tipo de equação. Preparei um algoritmo que resolvia este problema com alguma eficiência e para uma simulação de 36 horas com intervalo de tempo de 20 minutos tanto para hidrodinâmica como para qualidade da água, com 3 parâmetros (DBO, OD e coliformes) usava 1 segundo para computadores “main frame” da época. Portanto, não era um problema computacional. O Programa HEC-RAS utiliza este algoritmo que desenvolvi com alguma modificação (é única parte que não é pública do programa), segundo citação de seu manual.

Em todos estes anos não tive necessidade de melhorar computacionalmente o código preparado porque os tempos de máquina nunca foram um problema para os sistemas simulados. No entanto, recentemente quando reunimos a estrutura do modelo MGB-IPH, que utiliza para a propagação o modelo Muskingun e substituiu-se pela estrutura de propagação hidrodinâmica para simular a bacia Amazônica apareceu um problema computacional importante, devido a dimensão da bacia e do número de seções de rio. Em semana anterior apresentei os resultados obtidos por Rodrigo Paiva na sua tese de mestrado, simulando a bacia do rio Solimões, onde ele fez esta integração entre modelos. Mais recentemente, o modelo foi expandido para toda a bacia Amazônica, dentro de um projeto de pesquisa para o CTHidro, com envolvimento da ANA Agência Nacional de Água. Um dos objetivos do projeto é a previsão em tempo real, além estudos de cenários. Na discretização da bacia toda utilizou-se o seguinte:

Mini-bacias: 7000 (cobrindo toda a área da bacia Amazônica) Seções para representação hidrodinâmica: 9952 Confluências: 810 Condições de contorno: 812 Período simulado de 20 anos com intervalo de tempo de 1h, resultando em 175.320 intervalos de tempo.

Para simular 175.320 intervalos de tempo e resolver uma matriz de 19904 x 19904 com 400 milhões elementos, onde apenas 80.000 são não-zeros, (em cada intervalo de tempo) num PC com um processador 32 bits Intel® Core™2 Quad Q66 2.40 GHz e 4 GB de RAM. levou 6 dias de processamento. Isto limitava o uso do modelo para previsão. Neste momento a limitação computacional passou a ser muito importante.

Infelizmente este tipo de processamento não permite o uso de processamento paralelo já que as operações guardam dependência entre si. Para resolver esta situação foram revisadas várias alternativas de aprimorar o algoritmo. O programa fazia testes em cada intervalo de tempo para verificar quais valores eram zeros da matriz para depois realizar os cálculos (pivotar no método de Gauss). A solução do Rodrigo foi memorizar os locais não nulos da matriz e dentro do cálculo de cada intervalo tempo, evitar os testes na solução da matriz em cada intervalo de tempo, mantendo apenas os cálculos analíticos. Isto reduziu o tempo de simulação para apenas 3 horas, tornando novamente viável o uso do modelo. O ganho de tempo computacional foi de 50 vezes. Esta experiência mostra como é importante entender os aspectos de funcionamento do modelo para buscar solução de problemas de grande dimensão.

Além da eficiência na modelagem é necessário um bom conhecimento sobre a precisão numérica das discretizações, um problema crônico destes modelos quando não-controlado pelos usuários ou pelos programas, mas este é tema para uma outra semana

Posts Relacionados

Ver tudo

Comentários


Inscreva-se na nossa Newsletter

bottom of page