Rogério Luis Rizzi, D.Sc
Modelagem Computacional Paralela para
Problemas da Hidrodinâmica e de Transporte
de Substâncias
I Jornada de Computação de Alto Desempenho
- LNCC,
INTRODUÇÃO
•
Um adequado tratamento sobre um tema tão relevante e
amplo quanto a
Modelagem Computacional Paralela para
Problemas da Hidrodinâmica e de Transporte de
Substâncias
deveria considerar:
–
A Modelagem;
–
As Etapas de um Modelo Computacional Paralelo;
–
Os Modelos Hidrodinâmico e de Transporte de
Substâncias.
Sem apropriado conhecimento dos fundamentos físicos,
matemáticos e computacionais não se faz modelagem
computacional!
INTRODUÇÃO
No que se refere ao
MODELO COMPUTACIONAL PARALELO
• 01: Ambiente Computacional;• 02: Modelos Matemáticos (hidrodinâmica e de transporte); • 03: Geração de Malhas Numéricas;
• 04: Particionamento de Malha; • 05: Balanceamento de Carga; • 06: Métodos de Discretização;
• 07: Construção de Esquemas Numéricos;
• 08: Métodos de Solução de Sistemas de Equações; • 09: Solução Paralela.
Modelos HIDRA e UnHIDRA
(Unstructured HIDRA)
Modelo Matemático
Modelo Matemático
•
Modelo para a hidrodinâmica 3D
(águas rasas, hidrostático):•
Modelo para o transporte de substâncias 3D:
MODELO HIDRODINÂMICO
Principais aspectos da formulação
Modelos Discretizados
•
Abordagem para solução da ESW: método de Casulli:
– Separação dos termos das EDPs responsáveis pela estabilidade do algoritmo de solução numérica;
– Desacoplamento da solução através da substituição das expressões para as velocidades na expressão para os níveis de água;
– Redução do amortecimento na integração temporal: abordagem de Patnaik;
– Modo implícito: gradientes de elevação da superfície da água, difusão vertical, equação da continuidade;
– Modo explícito: advecção (horizontal e vertical), difusão horizontal e força de Coriolis;
– O algoritmo numérico é semi-implícito, SDP, tem mínima implicidade, sendo que a estabilidade independe da celeridade.
Modelos Discretizados
• Discretização semi-implícita e semi-lagrangeana em volumes finitos e diferenças finitas para a Hidrodinâmica:
• Abordagem semi-implicita;
• Equações são invariantes sob rotação simples;
• Especificação de diversas condições de contorno;
• Esquemas para interpolação (malha, semi-lagrangeano, etc.);
• Métodos para localizar e interceptar pontos;
• Métodos de integração Runge-Kutta regressivo (2ª-3ª O);
• Subciclo para a integração temporal dos termos explícitos;
• Método do GC, Thomas e de Cholesky;
Modelos Discretizados
Modelos Discretizados
onde:
Modelos Discretizados
•
Algoritmo (hidrodinâmica)
Inicializa Inicializa Inicializa
Inicializaççççãoãoão e condião e condie condie condiçççções de contorno para a Hidrodinâmicaões de contorno para a Hidrodinâmicaões de contorno para a Hidrodinâmicaões de contorno para a Hidrodinâmica
1. 1. 1.
1. Decompõe_UDecompõe_UDecompõe_UDecompõe_UNNNN_interior_interior_interior_interior
2. 2. 2.
2. Calcula_U_e_V_nodosCalcula_U_e_V_nodosCalcula_U_e_V_nodosCalcula_U_e_V_nodos interiorinteriorinteriorinterior
3. 3. 3.
3. Calcula_velocidades_lagrangeanasCalcula_velocidades_lagrangeanasCalcula_velocidades_lagrangeanasCalcula_velocidades_lagrangeanas
4. 4. 4.
4. Calcula_pressão_e_densidadeCalcula_pressão_e_densidadeCalcula_pressão_e_densidadeCalcula_pressão_e_densidade
5. 5. 5.
5. Calcula_coeficientes_viscosidadeCalcula_coeficientes_viscosidadeCalcula_coeficientes_viscosidadeCalcula_coeficientes_viscosidade
6. 6. 6.
6. Calcula_difusãoCalcula_difusãoCalcula_difusãoCalcula_difusão
7. 7. 7.
7. Calcula_subciclosCalcula_subciclosCalcula_subciclosCalcula_subciclos
8. 8. 8.
8. Calcula_operador_FUCalcula_operador_FUCalcula_operador_FUCalcula_operador_FU
9. 9. 9.
9. Atualiza_FronteirasAtualiza_FronteirasAtualiza_FronteirasAtualiza_Fronteiras
10. 10. 10.
10. Monta_matriz_G_e_monta_matriz_AMonta_matriz_G_e_monta_matriz_AMonta_matriz_G_e_monta_matriz_AMonta_matriz_G_e_monta_matriz_A
11. 11. 11.
11. Calcula_inversas_ACalcula_inversas_ACalcula_inversas_ACalcula_inversas_A
12. 12. 12.
12. Resolve_nivelResolve_nivelResolve_nivelResolve_nivel
13. 13. 13.
13. Calcula_UCalcula_UCalcula_UCalcula_U
14. 14. 14.
14. Calcula_WCalcula_WCalcula_WCalcula_W
15. 15. 15.
15. Atualiza_Atualiza_Atualiza_Atualiza_úúúúltima_camadaltima_camadaltima_camadaltima_camada
16. 16. 16.
MODELO DE TRANSPORTE
Principais aspectos da formulação
Modelos Discretizados
•
Discretização semi-implícita e semi-lagrangeana em volumes
finitos (e diferenças finitas) para o Transporte
• Diversas abordagens: esquemas semi-implícitos;
• Discretização semi-lagrangeana 2D por camadas, 3D;
• Discretização via método FLM Sweby;
• Discretização via método de Casulli, etc.;
• Esquemas para interpolação (malha, semi-lagrangeano, etc.);
• Métodos para localizar e interceptar pontos;
• Métodos de integração Runge-Kutta regressivo (2ª-3ª O);
• Subciclo para a integração temporal dos termos explícitos;
Modelos Discretizados
•
Modelo Discretizado(MDF+MVF):
Modelos Discretizados
•
Algoritmo (transporte)
Inicializa Inicializa Inicializa
Inicializaççççãoãoãoão e condie condie condie condiçççções de contorno para o transporteões de contorno para o transporteões de contorno para o transporteões de contorno para o transporte
1. 1. 1.
1. Calcula_e_atualiza_Calcula_e_atualiza_Calcula_e_atualiza_Calcula_e_atualiza_úúúúltima_camadaltima_camadaltima_camadaltima_camada
2. 2. 2.
2. Calcula_C_mCalcula_C_mCalcula_C_mCalcula_C_méééédiodiodiodio
3. 3. 3.
3. Calcula_C_virtualCalcula_C_virtualCalcula_C_virtualCalcula_C_virtual
4. 4. 4.
4. Calcula_funCalcula_funCalcula_funCalcula_funçççção_monitoraão_monitoraão_monitoraão_monitora
5. 5. 5.
5. Calcula_funCalcula_funCalcula_funCalcula_funçççção_limitadoraão_limitadoraão_limitadoraão_limitadora
6. 6. 6.
6. Calcula_funCalcula_funCalcula_funCalcula_funçççção_interpoladoraão_interpoladoraão_interpoladoraão_interpoladora
7. 7. 7.
7. Calcula_subciclosCalcula_subciclosCalcula_subciclosCalcula_subciclos
8. 8. 8.
8. Monta_vetor_BMonta_vetor_BMonta_vetor_BMonta_vetor_B
9. 9. 9.
9. Monta_coeficientes_matriz_AMonta_coeficientes_matriz_AMonta_coeficientes_matriz_AMonta_coeficientes_matriz_A
10. 10. 10.
10. Resolve_sistemaResolve_sistemaResolve_sistemaResolve_sistema
11. 11. 11.
Domínio Computacional
•
Malha horizontal: Não-Estruturada Ortogonal
• A escolha da MNEO está vinculada ao método de solução; • Os triângulos devem ser acutângulos (θθθθ<90º);
Domínio Computacional
Domínio Computacional
•
Problemas 3D
inflow
outflow
Complexidade da fronteira inferior, onde há um grande aninhamento de isolinhas nas regiões
mais rasas e no canal de navegação
Domínio Computacional
Domínio Computacional
•
Particionamento de malha:
– Problema de particionamento de grafos, onde os vértices
representam os nodos da malha e as arestas representam a relação de vizinhança (faces elementos);
– Um problema de k-particionamento de grafos, que consiste em dividir o grafos em k subgrafos, tal que cada um contenha quantidade proporcional de vértices e que a quantidade de arestas entre os subgrafos seja mínima;
•
Alguns atributos desejados:
– Distribuição balanceada da carga entre os processadores que devem receber uma qtde de elementos proporcional a sua
capacidade de processamento;
– Minimização do tempo de sincronização entre os processadores através da minimização do número total de arestas (ou nodos) das fronteiras.
Domínio Computacional
• Geração de Malhas Não-Estruturadas:
— TRIANGLE, EASYMESH, ...
• Particionamento do Domínio Computacional:
— METIS, CHACO, JOSTLE,...
• Visualização:
Domínio Computacional
Domínio Computacional
• Malha gerada para discretizara Lagoa dos Patos
• Malha Particionada em 12 subdomínios
Domínio Computacional
Domínio Computacional
•
Malha gerada
para discretizar o
Lago de Itaipu
Domínio Computacional
Domínio Computacional
• Malha Particionada em 18 subdomínios
• Malha gerada para discretizar o Rio Guaíba
Solução Paralela
•
Cluster de PC (UNIOESTE): Linux, gcc, C;
— Boa relação custo/benefício;
Solução Paralela
•
Decomposição de dados:
–
Paralelização de algoritmos (
solver
), PETSC
–
O sistema de equações global é resolvido através de um
método paralelizado;
–
Métodos do subespaço de Krylov (GC, GMRES,...)..
•
Decomposição de domínio:
—
Método Schur;
—
Método Aditivo Schwarz.
•
Balanceamento de carga;
•
Métodos Multigrid;
•
Métodos de decomposição de domínio (MDD):
– Conjunto de técnicas e métodos matemáticos, numéricos e computacionais para resolver problemas em paralelo;
– A solução global é obtida pela combinação apropriada das soluções locais;
– Os subdomínios são tratados (quase) independentemente.
Guaíba 200
Solução Paralela
D_data x MDD
Legenda
Solução Paralela
• MDD Aditivo Schwarz : com sobreposição (que pode variar)
0
a) b)
1
• Região sobreposta assegura a continuidade da solução;
• CC obtidas conhecendo-se os valores das vizinhanças.
Solução Paralela
• MDD Schur: sem sobreposição (solução sistema de interface)
• Células são ordenadas de forma que as que pertencem às fronteiras são numeradas após as internas;
• Continuidade da solução garantida pela solução de um sistema de interface;
• Aproximação para a inversa para evitar preenchimento da matriz;
• O termo Eij faz a interação entre a interface local e a interface dos vizinhos.
Solução Paralela
•
Métodos multigrid (MM):
– MM estão associados ao comportamento da convergência de métodos iterativos (MI);
– MI são eficientes na eliminação dos componentes de alta freqüência, mas não na supressão das componentes suaves dos erros;
– Como as componentes suaves do erro aparecem ser mais oscilatórios em malha menos refinada, a idéia é transferir o problema para malha com resolução mais grosseira;
– A repetição desse processo origina métodos multigrid;
– O processo inicia no nível mais grosseiro da malha, onde é encontrada uma solução inicial. Essa solução é transferida para uma malha mais refinada e o processo se repete até que o nível mais refinado seja alcançado.
Solução Paralela
• MMG, que usam informações geométricas do problema, consistem basicamente em:
– Utilização de métodos iterativos: objetiva suavizar os erros;
– Transferência de informações entre malhas: operadores de interpolação e de restrição;
– Correção em malha grossa: obter uma aproximação para o erro na malha grossa que é utilizada para corrigir a solução na malha fina.
Solução Paralela
Solução Paralela
•
Métodos multigrid e MDD:
•
Etapa 1: Geração e particionamento de malhas;
•
Etapa 2: Criação da hierarquia de malhas;
• Inicialmente gera-se a malha mais grossa. Gera-se as demais malhas através de subdivisão sucessiva dos elementos.
Solução Paralela
•
Métodos multigrid e MDD:
•
Etapa 3: Montagem dos sistemas de equações;
•
...
Solução Paralela
•
Métodos multigrid e MDD
– Método iterativo GMRES: para obter a solução em cada nível da malha;
– Multigrid: para acelerar a convergência do método;
– Métodos de Decomposição de Domínio: para obter a solução em paralelo.
•
Balanceamento de carga
– consiste em atribuir cargas proporcionais entre diversos processadores;
– Objetiva diminuir o tempo ocioso dos processadores;
– Pode ser:
• Estático: Quando toda a informação para o balanceamento está disponível antes do processamento.
• Semi-estático: O balanceamento ocorre lentamente ao longo do tempo. Emprega-se um algoritmo estático no início e permite-se que a mesma possua algum desbalanceamento após certo número de passos, quando então é aplicado novamente o algoritmo.
• Dinâmico: Utilizado em situações onde a carga dos processadores varia durante a execução tornando necessário a redistribuição de carga para manter o equilíbrio.
•
O balanceamento deve ser feito de forma a atender três
requisitos básicos:
– A carga de trabalho deve ser bem balanceada entre os processadores;
– A comunicação entre os processadores deve ser minimizada;
– O tempo de execução do algoritmo de balanceamento deve ser tal que o ganho obtido com seu uso seja maior que o custo de sua execução.
•
Deve considerar:
– Avaliação da Carga;
– Verificação da relação custo-benefício;
– Cálculo da carga a ser transferida;
– Transferência da carga. 47
•
Substâncias saindo do domínio computacional.
•
Destaque na execução do transporte de substâncias, que é
calculado em
malha refinada localmente
, e que é obtida a
partir da malha da hidrodinâmica.
Solução Paralela
• Alguns resultados: Malhado Rio Guaíba particionada com o RCB, (com campo de velocidades):
• Alguns resultados: Malha do Rio Guaíba particionada com o METIS, (com campo de velocidades):
Solução Paralela
• Alguns resultadosSolução Paralela
• Alguns resultados 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.6 0.1 0.5 0.4 0.3 0.2 it e ra ç ã o 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.6 0.1 0.5 0.4 0.3 0.2 it e ra ç ã o 2 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.6 0.1 0.5 0.4 0.3 0.2 it e ra ç ã o 3Solução Paralela
• Alguns resultadosSolução Paralela
• Alguns resultados– Neumann (gradiente nulo) para fronteiras outflow; – Dirichlet para fronteiras inflow.
• CC gradiente nulo na Decomposição de dados;
Solução Paralela
• Alguns resultadosSolução Paralela
• Alguns resultadosSolução Paralela
• Alguns resultados: Métodos e pré-condicionadores:
0.33 0.39 0.410.34 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Número de Proce ssos (Guaiba_200)
E fi c iê n c ia
GC KS-DIC(0) KS-IC(0) GC-Pol
0.62 0.70 0.68 0.62 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Núme ro de Proce ssos (Guiba_100)
E fi c iê n c ia
Solução Paralela
• Alguns resultados - Métodos GC ×××× Krylov-Schwarz ×××× MAAS :
0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Número de processos (Guaiba_200)
T e m p o d e e x e c u ç ã o (s ) . .. GC KS-DIC(0) MAAS 0.20 0.160.32 0.00 0.20 0.40 0.60 0.80 1.00 1.20 1.40 1.60 1.80 2.00 2.20 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Número de processos (Guaiba_100)
T e m p o d e e x e c u ç ã o ( s ) . GC KS-DIC(0) MAAS
Solução Paralela
•
Alguns
resultados:
Qualidade
numérica
solução
monoprocessada x solução paralela.
A curáci a (qual idade n uméri ca) em 500 ci cl os: sol ução mon oprocessada x sol ução paralela (float )
0 .0 0 E +0 0 5 .0 0 E -0 7 1 .0 0 E -0 6 1 .5 0 E -0 6 2 .0 0 E -0 6 2 .5 0 E -0 6 3 .0 0 E -0 6 3 .5 0 E -0 6 4 .0 0 E -0 6 1 3 5 7 9 1 1 1 3 1 5 1 7 1 9 2 1 2 3 2 5 2 7 2 9 Nú m e ro d e c é lu la s (la d o e s q u e rd o )
A curáci a (quali dade n umérica) em 500 ci cl os: sol ução mon oprocessada x sol ução paralela (doub le )
0 .0 0 E +0 0 5 .0 0 E -1 2 1 .0 0 E -1 1 1 .5 0 E -1 1 2 .0 0 E -1 1 2 .5 0 E -1 1 3 .0 0 E -1 1 3 .5 0 E -1 1 4 .0 0 E -1 1 4 .5 0 E -1 1 1 3 5 7 9 1 1 1 3 1 5 1 7 1 9 2 1 2 3 2 5 2 7 2 9 Nú me ro d e c é lu la s (la d o e s q u e rd o )
Solução Paralela
•
Alguns resultados:
Qualidade numérica método paralelo
(Método Krylov-Schwarz x GC):
1. BATISTA, F.: Unioeste / Mestrando UFRGS; 2. DILLON, A. B.: UCS;
3. LAMBOIA, F.: Unioeste / Mestranda UFPR; 4. OLIVEIRA, M. P.: MAT - Unioeste;
5. PERLIN, H. A.: Unioeste / Mestrando UTFPR 6. ROMANO, G.: Mestrando UFRGS;
7. SAUTER, E: Unioeste / Mestrando UFRGS; 8. SCHMIDT, C. C.: Unioeste / M.Sc pela UFRN; 9. VASATA, D.: INF - Unioeste;
10. ZAGO, R. L.: Unioeste / Mestrando UFRGS; 11. ANGELOSSI, K. H.: MAT / INF - Unioeste; 12. MENEZES, R. R.: Formado Unioeste;
13. MARTINOTTO, A. L. (Doutorando, prof. UCS); 14. PICININ, D. (M.Sc, prof. UCS).
15. GUILHERME GALANTE, M.Sc – prof. Unioeste; 16. ROGÉRIO LUIS RIZZI D.Sc. – prof. Unioeste;
17. RICARDO VARGAS DORNELES, D.Sc. – prof. UCS.