Você está na página 1de 257

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL

ESCOLA DE ENGENHARIA PROGRAMA DE PS-GRADUAO EM ENGENHARIA CIVIL

COMPUTAO PARALELA NA ANLISE DE PROBLEMAS DE ENGENHARIA UTILIZANDO O MTODO DOS ELEMENTOS FINITOS

JOO RICARDO MASUERO

Porto Alegre 2009

JOO RICARDO MASUERO

COMPUTAO PARALELA NA ANLISE DE PROBLEMAS DE ENGENHARIA UTILIZANDO O MTODO DOS ELEMENTOS FINITOS

Tese apresentada ao Programa de Ps-Graduao em Engenharia Civil da Universidade Federal do Rio Grande do Sul, como parte dos requisitos para obteno do ttulo de Doutor em Engenharia. Orientao: Prof. Dr. ARMANDO MIGUEL AWRUCH

Porto Alegre 2009

M424c

Masuero, Joo Ricardo Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos / Joo Ricardo Masuero. 2009. Tese (doutorado) Universidade Federal do Rio Grande do Sul. Escola de Engenharia. Programa de Ps-Graduao em Engenharia Civil. Porto Alegre, BR-RS, 2009. Orientao: Prof. Dr. Armando Miguel Awruch 1. Elementos finitos. 2. Dinmica dos slidos computacional. 3. Dinmica dos fluidos computacional. 4. Estruturas (Engenharia). I. Awruch, Armando Miguel, orient. II. Ttulo. CDU-624.04(043)

JOO RICARDO MASUERO

COMPUTAO PARALELA NA ANLISE DE PROBLEMAS DE ENGENHARIA UTILIZANDO O MTODO DOS ELEMENTOS FINITOS

Esta tese de doutorado foi julgada adequada para a obteno do ttulo de DOUTOR EM ENGENHARIA, rea de Concentrao Estruturas, e aprovada em sua forma final pelo orientador e pelo Programa de Ps-Graduao em Engenharia Civil da Universidade Federal do Rio Grande do Sul. Orientao: Prof. Dr. Armando Miguel Awruch
Porto Alegre, 20 de maro de 2009

Prof. Armando Miguel Awruch Dr. Pela Universidade Federal do Rio de Janeiro Orientador Prof. Fernando Schnaid Coordenador do PPGEC/UFRGS

BANCA EXAMINADORA Prof. Jos Alberto Cuminato Dr. pela Universidade de Oxford/ UK(USP) Prof. Philippe Olivier Alexandre Navaux Dr. Pelo Institut National Polytechnique de Grenoble/Fr (UFRGS) Profa. Adriane Prisco Petry Dr.a. pela Universidade Federal do Rio Grande do Sul (UFRGS) Prof. Incio Benvegnu Morsh Dr. pela Universidade Federal do Rio Grande do Sul (UFRGS)

minha famlia. Por todo amor e apoio.

AGRADECIMENTOS
Gostaria de agradecer inicialmente ao prof. Armando Miguel Awruch, pelo entusiasmo, companheirismo e apoio com que me orientou ao longo desses muitos anos. E tambm pela presso, gentil e bem humorada, mas firme e constante, sem a qual eu certamente no chegaria ao fim deste trabalho. Ao colegas Gustavo Bono, Alexandre Luis Braun e Martin Poulsen Kessler, pela valiosa ajuda para resolver diversas dvidas sobre as formulaes abordadas, por permitirem que eu trabalhasse sobre os cdigos por eles desenvolvidos e por me fornecerem exemplos adequados aos objetivos do meu trabalho, sem os quais teria sido impossvel realizar as comparaes e testes necessrios. Ao meus colegas do Departamento de Engenharia Civil da UFRGS, pelo incentivo. Especialmente ao colega e amigo Incio Benvegn Morsch, que nunca deixou de demonstrar de forma concreta seu apoio e que, como chefe do DECIV, fez o possvel para eu pudesse dedicar o mximo de tempo a este trabalho. Ao pessoal da secretaria do PPGEC: Liliani, Carmen e Ana Luiza, pela eficincia e pelo carinho. Ao Departamento de Engenharia Civil, pelas valiosas horas de trabalho disponibilizadas para o doutoramento. Ao Programa de Ps-Graduao em Engenharia Civil, por todo o apoio recebido. s agncias de fomento CAPES e CNPq, sem cujo apoio boa parte da pesquisa no pas no seria possvel, esta inclusive. Aos meus pais, talo e Maria do Carmo, por me darem os valores e o amor necessrios para me tornar aquilo que hoje eu sou. Aos meus filhos, Guilherme e Carolina, pelo amor irrestrito e incondicional, e pela compreenso pelas muitas e muitas horas que no pude estar com eles em funo da tese. E finalmente, minha esposa ngela, pelo amor, pelo companheirismo, pela compreenso, pelo carinho, pelo apoio e por me fazer uma pessoa melhor.

RESUMO
MASUERO, J.R. Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos. 2009. Tese (Doutorado em Engenharia) Programa de PsGraduao em Engenharia Civil, UFRGS, Porto Alegre O objetivo deste trabalho estudar algoritmos paralelos para a soluo de problemas de Mecnica dos Slidos, Mecnica dos Fludos e Interao Fluido-Estrutura empregando o Mtodo dos Elementos Finitos para uso em configuraes de memria distribuda e compartilhada. Dois processos para o particionamento da estrutura de dados entre os processadores e diviso de tarefas foram desenvolvidos baseados na aplicao do mtodo de particionamento em faixas e do mtodo da bisseco coordenada recursiva no sobre a geometria da malha mas sim diretamente sobre o sistema de equaes, atravs de reordenaes nodais para minimizao da largura da banda. Para ordenar a comunicao entre os processadores, foi desenvolvido um algoritmo simples e genrico baseado em uma ordenao circular e alternada que permite a organizao eficiente dos processos mesmo em cenrios nos quais cada processador precisa trocar dados com todos os demais. Os algoritmos selecionados foram todos do tipo iterativo, por sua adequabilidade ao paralelismo de memria distribuda. Foram desenvolvidos cdigos paralelos para o Mtodo dos Gradientes Conjugados utilizado em problemas de Mecnica dos Slidos, para o esquema explcito de Taylor-Galerkin com um passo e iteraes utilizado na simulao de escoamentos compressveis em regime transnico e supersnico, para o esquema explcito de TaylorGalerkin com 2 passos para simulao de escoamentos incompressveis em regime subsnico e para interao fludo-estrutura usando o esquema explcito de dois passos para o fludo e o mtodo implcito de Newmark no contexto do mtodo de estabilizao -Generalizado para a estrutura, com acoplamento particionado. Numerosas configuraes foram testadas com problemas tridimensionais utilizando elementos tetradricos e hexadricos em clusters temporrios e permanentes, homogneos e heterogneos, com diferentes tamanhos de problemas, diferentes nmeros de computadores e diferentes velocidades de rede.

Palavras-chave: Computao Paralela, Dinmica dos Slidos Computacional, Dinmica dos Fludos Computacional, Mtodo dos Elementos Finitos, Computao de Alto Desempenho

ABSTRACT
MASUERO, J.R. Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos. 2009. Tese (Doutorado em Engenharia) Programa de PsGraduao em Engenharia Civil, UFRGS, Porto Alegre Analysis and development of distributed memory parallel algorithms for the solution of Solid Mechanics, Fluid Mechanics and Fluid-Structure Interaction problems using the Finite Element Method is the main goal of this work. Two process for mesh partitioning and task division were developed, based in the Stripwise Partitioning and the Recursive Coordinate Bisection Methods, but applied not over the mesh geometry but over the resultant system of equations through a nodal ordering algorithm for system bandwidth minimization. To schedule the communication tasks in scenarios where each processor must exchange data with all others in the cluster, a simple and generic algorithm based in a circular an alternate ordering was developed. The algorithms selected to be parallelized were of iterative types due to their suitability for distributed memory parallelism. Parallel codes were developed for the Conjugate Gradient Method ( for Solid Mechanics analysis), for the explicit one-step scheme of Taylor-Galerkin method (for transonic and supersonic compressible flow analysis), for the two-step explicit scheme of Taylor-Galerkin method (for subsonic incompressible flow analysis) and for a Fluid-Structure Interaction algorithm using a coupling model based on a partitioned scheme. Explicit two-step scheme of Taylor-Galerkin were employed for the fluid and the implicit Newmark algorithm for the structure. Several configurations were tested for three-dimensional problems using tetrahedral and hexahedral elements in uniform and nonuniform clusters and grids, with several sizes of meshes, numbers of computers and network speeds. Key-words: Parallel Computing, Computational Solid Dynamics, Computational Fluid Dynamics, Finite Element Method, High Performance Computing

SUMRIO
LISTA DE FIGURAS LISTASDE TABELAS 1 INTRODUO .................................................................................................................. 23 1.1 COMPUTAO DE ALTO DESEMPENHO ............................................................ 24 1.2 TERMINOLOGIA E CONCEITOS BSICOS SOBRE PARALELISMO ............... 26 1.3 MTRICA DE PROGRAMAS PARALELOS ........................................................... 29 1.4 COMUNICAO DE DADOS,DIVISO DE TAREFAS E BALANCEAMENTO 35 1.5 DINMICA DOS FLUDOS COMPUTACIONAL EMPREGANDO O MTODO DOS ELEMENTOS FINITOS ................................................................................... 42 1.6 DINMICA DOS SLIDOS COMPUTACIONAL EMPREGANDO O MTODO DOS ELEMENTOS FINITOS .................................................................................... 45 1.7 INTERAO FLUDO-ESTRUTURA ...................................................................... 48 1.8 OBJETIVOS E METODOLOGIA DO PRESENTE TRABALHO ............................ 49 1.9 ORGANIZAO DO TRABALHO ........................................................................... 53 2 PARTICIONAMENTO DOS DADOS E BALANCEAMENTO .................................. 55 2.1 PRINCPIOS BSICOS .............................................................................................. 55 2.2 DIVISO DE TAREFAS BASEADAS EM NS ...................................................... 57 2.3 OTIMIZAO DA DIVISO DE TAREFAS ATRAVS DE UMA NICA REORDENAO NODAL PRVIA ........................................................................ 64 2.4 OTIMIZAO DA DIVISO DE TAREFAS ATRAVS DE REORDENAES NODAIS SUCESSIVAS ............................................................................................ 66 2.5 BALANCEAMENTO DAS CARGAS DE TRABALHO ........................................... 89 3 COMUNICAO DE DADOS ATRAVS DA REDE ................................................. 96 3.1 O PROBLEMA DA ORDEM DE COMUNICAO ................................................ 96 3.2 UMA ORDEM DE COMUNICAO GENRICA E EFICIENTE ......................... 99 4 ALGORITMOS SELECIONADOS PARA PARALELIZAO ............................... 108 4.1 MTODO DOS GRADIENTES CONJUGADOS .................................................... 108 4.1.1 Mtodo dos gradientes conjugados com precondicionador diagonal ou de Jacobi ................................................................................................................................... 110 4.1.2 Mtodo dos gradientes conjugados com precondicionador de Cholesky ........ 113 4.2 ESCOAMENTOS COMPRESSVEIS EM REGIME TRANSNICO E SUPERSNICO ....................................................................................................... 116 4.2.1 As equaes de conservao ............................................................................ 116 4.2.2 A formulao de Taylor-Galerkin com esquema de um passo iterativa .......... 118 4.2.3 Tcnica de integrao multi-tempo usando sub-ciclos .................................... 120 4.2.4 A implementao paralela para o esquema de um passo com iteraes .......... 124 4.3 ESCOAMENTOS INCOMPRESSVEIS EM REGIME SUBSNICO .................. 129 4.3.1 A formulao de Taylor-Galerkin com esquema de dois passos ..................... 129 4.3.2 A implementao paralela para o esquema de dois passos .............................. 130 4.4 INTERAO FLUDO ESTRUTURA .................................................................... 133 4.4.1 A anlise conjunta do fludo e da estrutura ..................................................... 133 4.4.2 A implementao paralela para IFE ................................................................ 135

5 RESULTADOS OBTIDOS PARA CONFIGURAES DE MEMRIA DISTRIBUDA................................................................................................................ 138 5.1 MTODO DOS GRADIENTES CONJUGADOS .................................................... 140 5.1.1 Precondicionador diagonal ou de Jacobi ......................................................... 143 5.1.2 Precondicionador de Choleski ......................................................................... 149 5.2 ESCOAMENTOS COMPRESSVEIS EM REGIME TRANSNICO E SUPERSNICO ....................................................................................................... 154 5.2.1 Elementos Hexadricos Escoamento em torno de uma esfera ..................... 154 5.2.2 Elementos Hexadricos Escoamento em torno de um veculo espacial. ...... 167 5.2.3 Elementos Tetradricos Escoamento supersnico em torno de uma esfera . 172 5.2.4 Elementos Tetradricos Escoamento supersnico em torno de uma modelo de avio ................................................................................................................ 175 5.2.5 Elementos Tetradricos Escoamento transnico em torno de uma asa delta usando a tcnica de sub-ciclos ........................................................................ 187 5.3 ESCOAMENTOS INCOMPRESSVEIS EM REGIME SUBSNICO .................. 190 5.3.1 Cavidade de fundo flexvel .............................................................................. 190 5.3.2 Escoamento bidimensional em torno de uma edificao prismtica ............... 192 5.3.3 Escoamento tridimensional em torno de uma edificao prismtica ............... 194 5.4 INTERAO FLUDO-ESTRUTURA..................................................................... 196 5.5 SISTEMATIZAO DOS RESULTADOS.............................................................. 201 6 RESULTADOS OBTIDOS PARA CONFIGURAES DE MEMRIA COMPARTILHADA E HBRIDAS MEMRIA COMPARTILHADA MEMRIA DISTRIBUDA .................................................................................................................................... 206 6.1 CONSIDERAES GERAIS SOBRE A IMPLEMENTAO ............................. 206 6.2 IMPACTO SOBRE O DESEMPENHO DO USO PLENO DOS NCLEOS DE UM PROCESSADOR ...................................................................................................... 208 6.3 PARALELISMO SEM O USO DA REDE ............................................................... 209 6.4 PARALELISMO HBRIDO COM E SEM O USO DA REDE................................. 215 6.5 SISTEMATIZAO DOS RESULTADOS ............................................................. 226 7 CONCLUSES E SUGESTES ................................................................................... 228 7.1 CONCLUSES ......................................................................................................... 228 7.2 SUGESTES PARA TRABALHOS FUTUROS ..................................................... 232 REFERNCIAS BIBLIOGRFICAS ................................................................................. 235 ANEXO 1 .............................................................................................................................. 243

LISTA DE FIGURAS
Figura 1.1: Previso de speed-up pelas leis de Amdahl e Gustafson ..................................... .34 Figura 1.2: Particionamento em faixas ................................................................................... .37 Figura 1.3: Particionamento em faixas com fronteira no retas ............................................. .37 Figura 1.4 Particionamento inercial em faixas ....................................................................... .38 Figura 1.5: Particionamento atravs de bisseco recursiva por coordenadas ....................... .39 Figura 1.6: Particionamento inercial por bisseco recursiva por coordenadas..................... .39 Figura 2.1: Partio nodal da malha baseada em um ordenao arbitrria dos ns ............... .60 Figura 2.2: Partio de um sistema de equaes baseada em um ordenao arbitrria dos ns .. ............................................................................................................................................ 61 Figura 2.3: Partio nodal da malha baseada em um ordenao tima dos ns ..................... 62 Figura 2.4: Diviso de um sistema de equaes baseada em um ordenao tima dos ns ... 62 Figura 2.5: Partio nodal no uniforme da malha baseada em um ordenao tima dos ns .. ............................................................................................................................................ 63 Figura 2.6: Diviso ineficiente de tarefas para quatro processadores lgicos segundo o tratamento 1RN................................................................................................................... 66 Figura 2.7: Partio ineficiente de um sistema de equaes por quatro processadores lgicos. ............................................................................................................................................ 67 Figura 2.8: Diviso tima de tarefas para quatro processadores lgicos................................. 67 Figura 2.9: Diviso de tarefas por bisseco para quatro processadores lgicos primeira etapa ................................................................................................................................... 68 Figura 2.10: Partio do sistema de equaes por bisseco para quatro processadores lgicos primeira etapa. ................................................................................................................. 68 Figura 2.11: Reordenao nodal para cada parte da malha de forma independente .............. 69 Figura 2.12: Reordenao nodal para cada parte do sistema de equaes de forma independente ...................................................................................................................... 69 Figura 2.13: Sistema de equaes dividido com um mnimo de comunicao de dados entre processadores. ..................................................................................................................... 70 Figura 2.14: Malha inicial onde o tratamento nRN ser aplicado ........................................... 71 Figura 2.15: Primeira diviso do tratamento nRN................................................................... 72

Figura 2.16: Segunda etapa de diviso do tratamento nRN .................................................... 72 Figura 2.17: Terceira etapa de diviso do tratamento nRN..................................................... 72 Figura 2.18: Ultima etapa do tratamento nRN ........................................................................ 73 Figura 2.19: Distribuio de ns e elementos em grupos aps diviso de tarefas por ns com a malha sem nenhum tratamento. Malha utilizada no exemplo 5.2.3 para simulao de escoamento transnico em torno de uma esfera ................................................................. 75 Figura 2.20: Distribuio de ns e elementos em grupos aps diviso de tarefas por ns com a malha com tratamento 1RN. Malha utilizada no exemplo 5.2.3 para simulao de escoamento transnico em torno de uma esfera ................................................................. 76 Figura 2.21: Distribuio de ns e elementos em grupos aps diviso de tarefas por ns com a malha com tratamento nRN. Malha utilizada no exemplo 5.2.3 para simulao de escoamento transnico em torno de uma esfera ................................................................. 77 Figura 2.22: Distribuio de ns e elementos em grupos aps diviso de tarefas por ns com a malha original (sem tratamento), com o tratamento 1RN e nRN. Malha utilizada no exemplo 5.2.2 para simulao de escoamento supersnico em torno de um veculo espacial ............................................................................................................................................ 79 Figura 2.23: Distribuio de ns e elementos em grupos aps diviso de tarefas para a malha sem nenhum tratamento. Malha utilizada no exemplo 5.2.4 ............................................. 82 Figura 2.24: Distribuio de ns e elementos em grupos aps diviso de tarefas com a malha sem nenhum tratamento - cortes. Malha utilizada no exemplo 5.2.4 ................................. 83 Figura 2.25: Distribuio de ns e elementos em grupos aps diviso de tarefas para a malha com o tratamento 1RN. Malha utilizada no exemplo 5.2.4. ............................................... 85 Figura 2.26: Distribuio de ns e elementos em grupos aps diviso de tarefas para a malha com o tratamento 1RN - cortes. Malha utilizada no exemplo 5.2.4. .................................. 86 Figura 2.27: Distribuio de ns e elementos em grupos aps diviso de tarefas para a malha com o tratamento nRN. Malha utilizada no exemplo 5.2.4. ............................................... 88 Figura 2.28: Distribuio de ns e elementos em grupos aps diviso de tarefas para a malha com o tratamento nRN - cortes. Malha utilizada no exemplo 5.2.4. .................................. 89 Figura 3.1: Comunicao entre 8 processadores organizada segundo uma ordem seqencial 1 at 8 exceto a si mesmo..................................................................................................... 98 Figura 3.2: Comunicao entre 8 processadores em que as cada processador se comunica apenas com o imediatamente anterior e imediatamente posterior, adequada ao tratamento 1RN para diviso de tarefas ................................................................................................ 99 Figura 3.3: Comunicao entre 4 processadores em 3 etapas globais, configurao sem tempo de espera, 3 etapas penalizao nula. ............................................................................... 102

Figura 3.4: Comunicao entre 5 processadores em 6 etapas globais, configurao com tempo de espera e penalizao de 2 etapas.................................................................................. 102 Figura 3.5: Comunicao entre 7 processadores em 8 etapas globais, configurao com tempo de espera e penalizao de 2 etapas.................................................................................. 103 Figura 3.6: Comunicao entre 8 processadores em 8 etapas globais, configurao com tempo de espera e penalizao de 1 etapa. .................................................................................. 104 Figura 3.7: Comunicao entre 11 processadores em 13 etapas globais, configurao com tempo de espera e penalizao de 3 etapas................................................................ 105/106 Figura 4.1: Tcnica de subciclos aplicada na integrao no tempo....................................... 123 Figura 5.1: Placa quadrada espessa com carga centrada utilizada nos testes de desempenho do solver paralelo usando Gradientes Conjugados. ............................................................... 141 Figura 5.2: Velocidade relativa da soluo de sistema de equaes atravs do Mtodo dos Gradientes Conjugados com precondicionador Diagonal em comparao com a soluo do mesmo sistema pela decomposio direta de Gauss ........................................................ 142 Figura 5.3: Tempo de soluo utilizando Gradientes Conjugados com precondicionador Diagonal em funo do tamanho do problema em graus de liberdade, para os diversos processadores utilizados ................................................................................................... 144 Figura 5.4: Speed-up da implementao paralela para Gradientes Conjugados com precondicionador Diagonal em funo do tamanho do problema para diferentes tamanhos de clusters(2 a 8 computadores).. ..................................................................................... 145 Figura 5.5: Speed-up de Gradientes Conjugados com precondicionador Diagonal em funo nmero de computadores utilizados para alguns tamanhos de problemas em milhares de graus de liberdade. ............................................................................................................ 146 Figura 5.6: Eficincia de paralelizao de Gradientes Conjugados com precondicionador Diagonal (a) em funo do tamanho do problema para diferentes tamanhos de clusters e (b) em do tamanho de cluster para diferentes tamanhos de problemas em milhares de graus de liberdade............................................................................................................................ 147 Figura 5.7: Frao serial de Karp-Flatt para Gradientes Conjugados com precondicionador Diagonal (a) em funo do tamanho do problema para diferentes tamanhos de clusters e (b) em funo do tamnho de cluster para diferentes tamanhos de problemas em milhares de graus de liberdade. ............................................................................................................ 147 Figura 5.8: Eficincia de paralelizao de Gradientes Conjugados com precondicionador Diagonal em funo tamanho do problema em graus de liberdade para conjuntos de 4 computadores com diferentes graus de homogeneidade................................................... 148 Figura 5.9: Tempo de soluo utilizando Gradientes Conjugados com precondicionador de Choleski em funo do tamanho do problema em graus de liberdade, para os diversos processadores utilizados ................................................................................................... 150

Figura 5.10: Speed-up de Gradientes Conjugados com precondicionador de Choleski em funo do tamanho do problema para diferentes tamanhos de clusters ........................... 151 Figura 5.11: Speed-up de Gradientes Conjugados com precondicionador de Choleski em funo nmero de computadores utilizados para alguns tamanhos de problemas em milhares de graus de liberdade.......................................................................................... 152 Figura 5.12: Eficincia de paralelizao de Gradientes Conjugados com precondicionador de Choleski (a) em funo do tamanho do problema para diferentes tamanhos de clusters e (b) em funo do tamanho de cluster para diferentes tamanhos de problemas (x 1000 GL)..152 Figura 5.13: Frao serial de Karp-Flatt para Gradientes Conjugados com precondicionador de Choleski (a) em funo do tamanho do problema para diferentes tamanhos de clusters e (b) em funo do tamanho de cluster para diferentes tamanhos de problemas (x 1000 GL). .......................................................................................................................................... 153 Figura 5.14: Eficincia de paralelizao da implementao para Gradientes Conjugados com precondicionador de Choleski em funo tamanho do problema em graus de liberdade para conjuntos de 4 computadores com diferentes graus de homogeneidade .......................... 153 Figura 5.15: Geometria do domnio e discretizao empregada para o problema de escoamento ao redor de uma esfera .................................................................................. 154 Figura 5.16: (a)Tempo de soluo por passo de tempo e (b) velocidade de processamento para o algoritmo seqencial do esquema explicito de 1 passo com iteraes em funo do tamanho do problema em milhares de graus de liberdade, para processadores com freqncia entre 1,2 e 1,53 GHz ....................................................................................... 157 Figura 5.17: Speed-up da implementao paralela para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade.......................................................................................... 157 Figura 5.18: Eficincia de paralelizao da implementao para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade .................................................................. 158 Figura 5.19: Frao serial da implementao para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade.......................................................................................... 159 Figura 5.20: Tempo de soluo por passo de tempo para o algoritmo paralelo do esquema explicito de 1 passo com iteraes em funo do tamanho do problema em milhares de graus de liberdade, para processadores com freqncia entre 2,3 e 2,5 GHz.................. 160 Figura 5.21: Speed-up do esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade. Cluster permanente, rede de 100 Mbps .......................................................... 161

Figura 5.22: Eficincia de paralelizao da implementao para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade. Cluster permanente, rede de 100 Mbps.. 161 Figura 5.23: Frao serial da implementao para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade. Cluster permanente, rede de 100 Mbps ........................ 162 Figura 5.24: Speed-up da implementao paralela para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problema. Cluster permanente, rede de 1 Gbps................................................................................ 163 Figura 5.25: Eficincia de paralelizao da implementao para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problema. Cluster permanente, rede de 1 Gbps ............................................................... 163 Figura 5.26: Frao serial da implementao para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problema. Cluster permanente, rede de 1 Gbps ................................................................................ 164 Figura 5.27: Ganho de speed-up com o uso de uma rede de 1 Gbps em comparao a uma rede de 100 Mbps para o esquema explcito de um passo com iteraes em funo tamanho do problema para diferentes tamanhos de clusters ........................................................... 165 Figura 5.28: Previso do tamanho timo do cluster para o esquema explcito de um passo com iteraes ............................................................................................................................ 166 Figura 5.29: (a) Eficincia de paralelizao e (b) speed-up da implementao paralela para o esquema explcito de um passo com iteraes usando redes e conjuntos de computadores de diferentes velocidades para 2 tamanhos de problemas, em milhares de graus de liberdade............................................................................................................................ 167 Figura 5.30: Malha VE1 utilizada na discretizao do escoamento em torno de um veculo espacial.............................................................................................................................. 168 Figura 5.31: Speed-up do algoritmo paralelo para o esquema explcito com 1 passo e iteraes para as malhas VE1 e VE2 utilizadas na discretizao do escoamento em torno de um veculo espacial................................................................................................................. 170 Figura 5.32: Eficincia de paralelizao do algoritmo para o esquema explcito com 1 passo e iteraes para as malhas VE1 e VE2 utilizadas na discretizao do escoamento em torno de um veculo espacial........................................................................................................... 171 Figura 5.33: Frao serial do algoritmo para o esquema explcito com 1 passo e iteraes para as malhas VE1 e VE2 utilizadas na discretizao do escoamento em torno de um veculo espacial.............................................................................................................................. 172

Figura 5.34: Malha de elementos tetradricos utilizada para o problema de escomanento supersnico em torno de uma esfera................................................................................. 172 Figura 5.35: Speed-up obtido para o problema de escomanento supersnico em torno de uma esfera com diversos tratamentos para a diviso de tarefas, malha de tetraedros .............. 173 Figura 5.36: Eficincia de paralelizao obtida para o problema de escomanento supersnico em torno de uma esfera com diversos tratamentos para a diviso de tarefas, malha de tetraedros .......................................................................................................................... 174 Figura 5.37: Viso geral do problema de escoamento supersnico em torno de um modelo de avio. Distribuio da densidade ...................................................................................... 176 Figura 5.38: Domnio do problema de escoamento em torno de um modelo de avio e discretizao utilizando elementos tetradricos lineares .................................................. 177 Figura 5.39: Speed-up obtido para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Navier-Stokes, malhas (a) NS1, (b) NS2, (c) NS3 e (d) NS4 ................................................................................................................................... 178 Figura 5.40: Eficincia de paralelizao obtido para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Navier-Stokes, malhas (a) NS1, (b) NS2, (c) NS3 e (d) NS4 ............................................................................................................. 179 Figura 5.41: Frao serial para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Navier-Stokes, malhas (a) NS1, (b) NS2, (c) NS3 e (d) NS4 180 Figura 5.42: Speed-up obtido para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Euler, malhas (a) EU1, (b) EU2 e (c) EU3 ................. 182 Figura 5.43: Eficincia de paralelizao obtido para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Euler, malhas (a) EU1, (b) EU2 e (c) EU3 .......................................................................................................................................... 183 Figura 5.44: Frao serial obtida para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Euler, malhas (a) EU1, (b) EU2 e (c) EU3 ................. 185 Figura 5.45: Malha utilizada na anlise paralela do escoamento transnico ao redor de uma asa delta com a tcnica de sub-ciclos................................................................................ 187 Figura 5.46: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo com a tcnica de sub-ciclos para na anlise paralela do escoamento transnico ao redor de uma asa delta ............................................................................................................................ 189 Figura 5.47: Malha utilizada na anlise do escoamento em cavidade................................... 191 Figura 5.48: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo do esquema explcito de dois passos na anlise do escoamento em cavidade ...................... 191 Figura 5.49: Malha utilizada na anlise do escoamento bidimensional em torno de uma edificao prismtica ........................................................................................................ 193

Figura 5.50: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo do esquema explcito de dois passos na anlise do escoamento em torno de uma edificao prismtica ......................................................................................................................... 193 Figura 5.51: Domnio computacional e condies de contorno do escoamento tridimensional em torno de uma edificao prismtica ............................................................................ 194 Figura 5.52: Malha utilizada na anlise do escoamento tridimensional em torno de uma edificao prismtica ........................................................................................................ 195 Figura 5.53: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo do esquema explcito de dosi passos para na anlise do escoamento em cavidade............... 195 Figura 5.54: Malhas para o fludo e para a estrutura usadas na simulao do problema de escoamento em cavidade com fundo flexvel ................................................................... 196 Figura 5.55: Malha utilizada na discretizao do teto da edificao sob escoamento bidimensional.................................................................................................................... 197 Figura 5.56: Malha utilizada na discretizao do edifcio imerso em um escoamento tridimensional .................................................................................................................. 197 Figura 5.57: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo de interao fludo-estrutura na anlise do escoamento em cavidade com fundo flexvel... 199 Figura 5.58: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo de interao fludo-estrutura na anlise do escoamento bidimensional em torno de edificao com teto composto por membrana flexvel....................................................................... 200 Figura 5.59: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo de interao fludo-estrutura na anlise do escoamento tridimensional em torno de edifcio flexvel ............................................................................................................................. 201 Figura 6.1: Speed-ups obtidos para as malhas VE1 (a) e VE2 (b) em um processador multincleos com MPI empregada em conjunto com os compiladores Compaq v.6.6 e Intel v.9.1, e com OpenMP em conjunto com o compilador Intel v.9.1 ................................... 211 Figura 6.2: Velocidades relativas obtidas para as malhas VE1 (a) e VE2 (b) em um processador multi-ncleos com MPI empregada em conjunto com os compiladores Compaq v.6.6 e Intel v.9.1 e com OpenMP em conjunto com o compilador Intel v.9.1 . 212 Figura 6.3: Speed-ups obtidos para as malhas NS1 (a) e NS2 (b) em um processador multincleos com MPI empregada em conjunto com os compiladores Compaq v.6.6 e Intel v.9.1, e com OpenMP em conjunto com o compilador Intel v.9.1 ................................... 213 Figura 6.4: Velocidades relativas obtidas para as malhas NS1 (a) e NS2 (b) em um processador multi-ncleos com MPI empregada em conjunto com os compiladores Compaq v.6.6 e Intel v.9.1 e com OpenMP em conjunto com o compilador Intel v.9.1. 214 Figura 6.5 Speed-ups obtidos em cluster permanente com processadores multi-ncleos para o problema VE1 com (a) compilador Compaq v.6.6 / MPI, (b) compilador Intel v.9.1 / MPI, (c) compilador Intel v.9.1 / OpenMP + MPI e para o problema VE2 com (d) compilador

Compaq v.6.6 / MPI, (e) compilador Intel v.9.1 / MPI, (f) compilador Intel v.9.1 / OpenMP + MPI. ............................................................................................................................... 218 Figura 6.6: Velocidades relativas obtidas em cluster permanente com processadores multincleos para o problema VE1 com (a) compilador Compaq v.6.6 / MPI, (b) compilador Intel v.9.1 / MPI, (c) compilador Intel v.9.1 / OpenMP + MPI e para o problema VE2 com (d) compilador Compaq v.6.6 / MPI, (e) compilador Intel v.9.1 / MPI, (f) compilador Intel v.9.1 / OpenMP + MPI. .................................................................................................... 220 Figura 6.7: Fraes seriais obtidas em cluster permanente com processadores multi-ncleos para o problema VE1 malha de hexaedros. ................................................................... 221 Figura 6.8: Fraes seriais obtidas em cluster permanente com processadores multi-ncleos para o problema VE2 malha de hexaedros. ................................................................... 221 Figura 6.9: Speed-ups obtidos em cluster permanente com processadores multi-ncleos para o problema NS1 com (a) compilador Compaq v.6.6 / MPI, (b) compilador Intel v.9.1 / MPI, (c) compilador Intel v.9.1 / OpenMP + MPI e para o problema NS2 com (d) compilador Compaq v.6.6 / MPI, (e) compilador Intel v.9.1 / MPI, (f) compilador Intel v.9.1 / OpenMP + MPI.. .............................................................................................................................. 222 Figura 6.10: Velocidades relativas obtidas em cluster permanente com processadores multincleos para o problema NS1 com (a) compilador Compaq v.6.6 / MPI, (b) compilador Intel v.9.1 / MPI, (c) compilador Intel v.9.1 / OpenMP + MPI e para o problema NS2 com (d) compilador Compaq v.6.6 / MPI, (e) compilador Intel v.9.1 / MPI, (f) compilador Intel v.9.1 / OpenMP + MPI. .................................................................................................... 223 Figura 6.11: Fraes seriais obtidas em cluster permanente com processadores multi-ncleos para o problema NS1. ....................................................................................................... 225 Figura 6.12: Fraes seriais obtidas em cluster temporrio com processadores multi-ncleos para o problema NS1 e NS2 ............................................................................................. 225

LISTA DE TABELAS
Tabela 2.1: Comunicao de dados entre processadores e redundncia computacional para malha sem tratamento ......................................................................................................... 80 Tabela 2.2: Comunicao de dados entre processadores e redundncia computacional para malha com tratamento 1RN ................................................................................................ 84 Tabela 2.3: Comunicao de dados entre processadores e redundncia computacional para malha com tratamento nRN ................................................................................................ 87 Tabela 2.4: Balanceamento da diviso de tarefas para do modelo simplificado de avio, sem tratamento e com os tratamentos 1RN e nRN..................................................................... 93 Tabela 2.5: Comunicao de dados entre processadores e redundncia computacional para malha sem tratamento aps balanceamento da diviso de tarefas ...................................... 94 Tabela 2.6: Comunicao de dados entre processadores e redundncia computacional para malha com tratamento 1RN aps balanceamento da diviso de tarefas ............................. 94 Tabela 2.7: Comunicao de dados entre processadores e redundncia computacional para malha com tratamento nRN aps balanceamento da diviso de tarefas ............................. 95 Tabela 3.1: Exemplo de matriz de incrementos para um conjunto de 16 processadores lgicos .......................................................................................................................................... 101 Tabela 4.1: Algoritmo do Mtodo dos Gradientes Conjugados, formulao elemento-porelemento, paralelizao otimizada para configuraes de memria distribuda ....... 111/112 Tabela 4.2: Alteraes necessrias ao algoritmo do Mtodo dos Gradientes Conjugados, formulao elemento-por-elemento, para contemplar o precondicionador de Cholesky . 114 Tabela 4.3: Alteraes necessrias ao algoritmo do Mtodo dos Gradientes Conjugados, formulao elemento-por-elemento, para contemplar o precondicionador de Cholesky em verso paralela otimizada para mquinas de memria distribuda .................................... 115 Tabela 4.4: Algoritmo do esquema explcito de Taylor-Galerkin de um passo com iteraes, paralelizao otimizada para configuraes de memria distribuda ......................... 126/127 Tabela 4.5: Algoritmo do esquema explcito de Taylor-Galerkin de dois passos sem iteraes, paralelizao otimizada para configuraes de memria distribuda ..................131/132/133 Tabela 4.6: Algoritmo de soluo para problemas de interao fludo-estrutura, paralelizao otimizada para configuraes de memria distribuda ............................................... 135/136 Tabela 5.1 Descrio dos testes de paralelismo realizados para configuraes de memria distribuda. ......................................................................................................................... 137 Tabela 5.2: Famlia de malhas utilizada no teste de desempenho do solver paralelo usando Gradientes Conjugados ...................................................................................................... 141

Tabela 5.3: Conjunto de computadores utilizados em cluster temporrio para teste da soluo paralela usando Gradientes Conjugados ............................................................................ 143 Tabela 5.4: Conjunto de computadores heterogneos utilizados em cluster temporrio para teste da soluo paralela usando Gradientes Conjugados.................................................. 148 Tabela 5.5: Nmero de iteraes at a convergncia para o Mtodo dos Gradientes Conjugados com pr-condicionador de Cholesky, verso seqencial e paralela .............. 151 Tabela 5.6 Famlia de malhas de elementos hexadricos lineares usadas no problema de escoamento em torno de uma esfera ................................................................................. 155 Tabela 5.7: Conjunto de computadores utilizados em cluster temporrio para teste da implementao paralela do esquema explcito de 1 passo com iteraes.......................... 156 Tabela 5.8: Conjunto de computadores utilizados em cluster permanente para teste da implementao paralela do esquema explcito de 1 passo com iteraes......................... 160 Tabela 5.9. Caractersticas das malhas utilizadas na discretizao do escoamento em torno de um veculo espacial........................................................................................................... 167 Tabela 5.10: Freqncia dos processadores utilizados na simulao do escoamento em torno de um veculo espacial...................................................................................................... 169 Tabela 5.11: Freqncia dos processadores utilizados na simulao do escoamento supersnico em torno de uma esfera................................................................................. 173 Tabela 5.12: Desempenho relativo para rede de 100Mbps, escoamento em torno de uma esfera, malha de tetraedros................................................................................................ 175 Tabela 5.13: Caractersticas das malhas utilizadas na discretizao do escoamento em torno de um modelo de avio.......................................................................................................... 177 Tabela 5.14: Desempenho relativo para rede de 100Mbps, escoamento em torno de um modelo de avio, malha NS2. ............................................................................................ 181 Tabela 5.15: Valores mximos de speed-up e a eficincia computacional correspondente para as malhas de hexaedros e tetraedros utilizadas na simulao de escoamentos em torno de um veculo espacial e de um modelo de avio.................................................................. 186 Tabela 5.16: Distribuio dos elementos da malha em funo do passo de tempo mnimo a ser empregado Escoamento transnico em torno de uma asa delta ........................................ 188 Tabela 5.17: Valores mdios de speed-up para aplicaes com elementos hexadricos e rede de 100Mbps........................................................................................................................ 202 Tabela 5.18 Valores consolidados de speed-up para aplicaes com elementos tetradricos e rede de 100Mbps:............................................................................................................... 203 Tabela 5.19: Valores mdios de speed-up para aplicaes com elementos hexadricos, rede de 1 Gbps e tratamento 1RN.............................................................................................. 204

Tabela 5.20: Valores consolidados de speed-up para aplicaes com elementos hexadricos, rede de 1 Gbps e tratamento nRN...................................................................................... 204 Tabela 5.21: Valores mdios de speed-up para aplicaes com elementos tetradricos, rede de 1 Gbps e tratamento 1RN................................................................................................... 205 Tabela 5.22: Valores mdios de speed-up para aplicaes com elementos tetradricos, rede de 1 Gbps e tratamento nRN................................................................................................... 205 Tabela 6.1: Caractersticas das malhas utilizadas nos testes com configuraes de memria compartilhada.................................................................................................................... 207 Tabela 6.2: Velocidade relativa de processamento quando mais de um ncleo do processador utilizado de forma plena malhas NS1, NS2, VE1 e VE2............................................ 209

LISTA DE ABREVIATURAS, SIGLAS E SMBOLOS


Letras Romanas Maisculas 1RN : tratamento da malha para diviso de tarefas com 1 reordenao nodal......................... 64 A : matriz de coeficientes de um sistema de equaes, matriz de rigidez global................... 108 Ae : matriz de rigidez em coordenadas globais do elemento e ............................................... 106 B : matriz de precondicionamento de Choleski...................................................................... 107 CFL : nmero de Courant-Friedrichs-Levy............................................................................ 119 CAF : coeficiente de amortecimento artificial. ...................................................................... 119 CS : coeficiente de segurana ................................................................................................. 119 Ei : elementos conectados aos ns alocados ao processador lgico i .................................... 111

EiP : conjunto de elementos prprios do processador i .......................................................... 109

EiC : conjunto de elementos comuns conectados aos ns do processador i ........................... 109 Ep: eficincia de programa executado de forma paralela com p processadores ....................... 30
F : vetor de fluxo convectivo.................................................................................................. 117 G : vetor de fluxo difusivo ..................................................................................................... 117 HPC : High Performance Computing Computao de Alto Desempenho............................ 27

IDi : ndice de desempenho absoluto do processador i ............................................................ 90 IDRi : ndice de desempenho relativo do processador i .......................................................... 90
INC : matriz de incrementos................................................................................................... 100 ITD : ndice de troca de dados.................................................................................................. 81

L : comprimento de referncia................................................................................................ 117


M : matriz de massa consistente............................................................................................. 119 ML : matriz de massa discrreta. .............................................................................................. 119 N : nmero total de ns da malha ............................................................................................. 91

N i : quantidade de ns da malha alocada ao processador i ..................................................... 91 N i+ : equaes nodais dos ns dos elementos conectados aos ns do processador i ............. 111 Sele : sensor de presso nodal.................................................................................................. 119 Si : sensor de presso em nvel de n ..................................................................................... 119 Sp: speed-up para p processadores ............................................................................................ 29 S : speed-up para infinitos processadores............................................................................... 33 T : temperatura, ...................................................................................................................... 117

U : vetor de incgnitas das variveis de conservao ............................................................ 117 W : matriz de precondicionamento diagonal ou de Jacobi..................................................... 106

Letras Romanas Minsculas

a : velocidade do som ............................................................................................................. 117


ap : vetor resultante do produto A p ...................................................................................... 110 b : vetor de termos independentes.......................................................................................... 108

bb : produto escalar b b equivalente ao quadrado do mdulo do vetor resduo inicial......... 110 cv : calor especifico a volume constante ................................................................................. 117 e : energiaa total especfica..................................................................................................... 117 n : contador de iteraes ......................................................................................................... 106
nRN : tratamento da malha para diviso de tarefas com n reordenaes nodais...................... 70

nel : nmero total de elementos da malha .............................................................................. 120 nEk : grupo do passo de tempo ................................................................................................ 120 p: nmero de processadores...................................................................................................... 29 p : presso termodinmica ...................................................................................................... 117
p : vetor direo de busca global ............................................................................................ 110 pe : vetor direo de busca p/ as equaes nodais correspondentes aos ns do elemento e ... 110

pap : produto escalar p ap .................................................................................................... 110 qj : vetor de fluxo de calor, ..................................................................................................... 113
r : vetor resduo ...................................................................................................................... 110

rr : produto escalar r r equivalente ao quadrado do mdulo do vetor resduo ..................... 110 rz : produto r z ..................................................................................................................... 110 ts: tempo de execuo de um programa de forma seqencial................................................... 29 tp: tempo de execuo de um programa de forma paralela com p processadores .................... 29 tsi : tempo de execuo de um programa no processador i de forma seqencial ...................... 30 tsref : tempo de execuo de um programa no processador de referncia de forma seqencial 30 tser : tempo de execuo serial de um programa paralelo ......................................................... 31 tred : tempo gasto com redundncia computacional .................................................................. 31 ti : tempo de processamento puro (tempo de CPU) do processador i ...................................... 91 tm : tempo de processamento mdio (tempo de CPU) de vrios processadores i .................... 91 u : energia interna especfica .................................................................................................. 117 tol : tolerncia ........................................................................................................................... 91

vri : velocidade de processamento relativa do processador i ..................................................... 30 vrp : velocidade relativa de execuo em paralelo com p processadores .................................. 31 vi : componente da velocidade na direo da coordenada xi................................................... 117
x : coordenadas espaciais (para escoamento) ......................................................................... 112 x : vetor de incgnitas............................................................................................................. 108 x0 :vetor estimativa inicial....................................................................................................... 110 z : vetor resduo precondicionado........................................................................................... 110

Letras Gregas Maisculas

Nij : equaes nodais do processador i necessrias ao processador j. .................................. 111 tg : passo de tempo do grupo g ............................................................................................. 114
g t Ek : passo de tempo do elemento k k pertencente ao grupo g............................................. 121

tEmin : passo de tempo mnimo para toda a malha................................................................. 120 tEk : passo de tempo mnimo do elemento i.......................................................................... 120

Letras Gregas Minsculas

: frao serial de um programa.............................................................................................. 31

: massa especfica ............................................................................................................... 113 ij : componentes do tensor de tenses viscosas ..................................................................... 113 ij : funo delta de Kronecker ............................................................................................... 113

: uma constante do gs ...................................................................................................... 114

23

1 INTRODUO
A anlise numrica de problemas de engenharia uma das reas de maior demanda por capacidade computacional. Os modelos numricos empregados geralmente implicam na soluo de sistemas que alcanam milhes de equaes, necessitando para isso de grandes velocidades de processamento, e a manipulao e armazenamento das enormes estruturas de dados correspondentes exigem grande quantidade de memria local e secundria. Quando os problemas envolvidos so transientes, a necessidade de simulao dos fenmenos na escala de tempo real faz com que grandes recursos computacionais sejam empregados por longos perodos de tempo. Apesar dos altos custos envolvidos, a simulao computacional de fenmenos fsicos complexos em modelos com caractersticas e geometria detalhadas mais barata e mais flexvel que a anlise experimental dos mesmos problemas, sendo, portanto, utilizada em larga escala no projeto e desenvolvimento de sistemas de energia, aeroespaciais, estruturais, bioqumicos e meteorolgicos, complementando e substituindo parcialmente a anlise experimental. O emprego do Mtodo dos Elementos Finitos na simulao de problemas cientficos e de engenharia nas reas de Dinmica dos Slidos Computacional, Dinmica dos Fludos Computacional e Interao Fludo-Estrutura, entre outros, esto entre as aplicaes que exigem grande capacidade de processamento e de armazenamento, em especial em simulaes tridimensionais, em funo da complexidade das geometrias estudadas, do grau de discretizao dos modelos numricos necessrios e das limitaes de estabilidade para avano temporal dos esquemas explcitos usualmente empregados. Oliveira Jr. (2006) relata tempos de CPU de at 480 horas para a simulao de modelos de escoamento turbulento em domnios de geometria simples utilizados para validao dos cdigos computacionais implementados. Xavier (2008) indica tempos de CPU em torno de 350 horas para aplicaes similares com malhas de 72 mil elementos hexadricos, e de 100 a 840 horas para modelos com 76 mil elementos hexadricos, tempos considerveis para estruturas de dados relativamente
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

24

pequenas. Estes exemplos mostram como mesmo pequenos centros de pesquisa necessitam de computao de alto desempenho para o desenvolvimento de algoritmos numricos e sua validao.

1.1 COMPUTAO DE ALTO DESEMPENHO


Como em vrias outras reas da computao, a busca por maior desempenho computacional no processamento cientfico de alto desempenho (High Performance Computing HPC) tm levado desenvolvimento de vrias novas tecnologias de software e hardware, e a disponibilidade dessas tecnologias propicia o uso de modelos e algoritmos mais complexos com ainda maior demanda computacional. Duas estratgias principais tem sido utilizadas na busca por elevadas capacidades de processamento. Cronologicamente, a primeira a ser empregada foi a construo de unidades de processamento de grande desempenho, em geral vetoriais, os super computadores. Por seu elevado custo de desenvolvimento e pela demanda mundial de um reduzido nmero de unidades, impedindo a diluio desses custos no processo de fabricao, os

supercomputadores tm um custo de implantao e manuteno bastante alto e, pela velocidade de desenvolvimento tecnolgico do hardware, uma vida til relativamente curta antes que seja superado em desempenho por solues muito mais baratas e, principalmente, com um custo de operao muito menor. Desta forma, tm sido utilizados principalmente em reas estratgicas, para fins militares, em laboratrios estatais, em centros de pesquisa e universidade e em grandes empresas de tecnologia. A segunda estratgia a da adio. Utilizar um determinado nmero de unidades de processamento de menor desempenho de forma coordenada para obter uma maior capacidade de processamento pela execuo simultnea de instrues, dando origem aos computadores paralelos. A unio de um nmero muito grande de processadores relativamente simples forma um computador massivamente paralelo. Com a popularizao dos computadores pessoais, a estratgia para HPC tem sido a utilizao no mais de processadores especificamente desenvolvidos para o processamento cientfico, mas sim a utilizao de processadores destinados a uso geral ou de derivativos de alto desempenho das arquiteturas empregadas nesses processadores, bem como do maior nmero
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

25

possvel de componentes presentes nos computadores de uso geral como memria, circuitos de controle, unidades de armazenamento ou, novamente, derivativos de alto desempenho das tecnologias utilizadas nesses componentes. Isso proporcionou um custo bastante mais baixo na aquisio e principalmente na manuteno dos computadores de alto desempenho, uma vez que boa parte do custo de desenvolvimento da tecnologia bsica de seus componentes amortizada pelo enorme mercado mundial de computadores pessoais atualmente existente. Na lista mantida pelo site Top500 (Top500, 2008) com os 500 computadores mais rpidos do mundo, em novembro de 2008, seis deles utilizavam o processador AMD Opteron (AMD, 2008), um derivativo para estaes de trabalho e servidores dos processadores Athlon 64 ou Phenom, de uso geral , e um utilizava o processador Intel Xeon (Intel, 2008), tambm um derivativo para estaes de trabalho e servidores do processador Core 2 de uso geral. Para que um computador paralelo obtenha alto desempenho, preciso que os processadores comuniquem-se entre si de maneira rpida, seja atravs do acesso comum memria principal (paralelismo de memria compartilhada), seja atravs de uma rede de comunicao (paralelismo de memria distribuda). Em geral o paralelismo de memria compartilhada limita-se a um nmero relativamente pequeno de processadores, uma vez que os circuitos de lgica e controle do acesso de diversos processadores simultaneamente memria tornam-se exponencialmente mais complexos e caros com o aumento do nmero de processadores. No paralelismo de memria distribuda, cada processador tm acesso somente memria a ele diretamente alocada, e o acesso aos dados na memria de outros processadores ocorre atravs de mensagens entre os processadores por uma rede de conexo. O desempenho computacional obtido dependente da latncia, taxa de transferncia e topologia dessa rede, e contnuos esforos tm sido feitos para encontrar tecnologias de interconexo que proporcionem maior desempenho. A juno dos dois modelos d origem a configuraes hbridas, em que conjuntos de processadores com acesso a uma memria comum, chamados de ns ou nodos, comunicam-se com outros conjuntos atravs de uma rede de interconexo. Todas essas caractersticas de hardware voltadas para o paralelismo necessitam de softwares adequados para que se tornem operacionais, desde sistemas operacionais, protocolos de comunicao, compiladores at as aplicaes. Escrever cdigos que tirem proveito do paralelismo, seja ele de memria compartilhada, memria distribuda ou ambas implica em
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

26

entender o funcionamento de cada uma das configuraes, os gargalos ao desempenho e em utilizar e desenvolver algoritmos que sejam adequados ao ambiente paralelo. Qualquer que seja a configurao de paralelismo, os algoritmos utilizados devem permitir que tarefas sejam feitas simultaneamente. Os processos de soluo iterativos, nos quais os valores das variveis do problema na iterao i+1 so calculados de forma independente a partir dos valor das variveis na iterao i so especialmente adequados. No paralelismo de memria compartilhada, a principal preocupao evitar problemas de conflito de memria, que ocorrem quando mais de um processador tenta alterar simultaneamente o contedo de uma mesma varivel, seja por uma organizao de dados e/ou de operaes que a evite, seja pelo uso de instrues de sincronizao. No paralelismo de memria distribuda, os algoritmos empregados devem prever formas de dividir as tarefas entre os processadores, balancear a carga de trabalho entre eles e definir quais variveis devem ser comunicadas entre processadores e em que etapa do processo. Uma viso geral desses tpicos pode ser encontrada em Martins et al. (2008) e um painel bastante completo em Dorneles (2003).

1.2 TERMINOLOGIA E CONCEITOS BSICOS SOBRE PARALELISMO


At 2005 todos os processadores de computadores pessoais continham um nico ncleo fsico de processamento, ou seja, um conjunto de circuitos eletrnicos capazes de executar de forma autnoma um determinado cdigo de processamento. Paralelismo de memria compartilhada era obtido pela adio de mais processadores a uma placa-me, com circuitos de controle especialmente projetados para isso. Esse tipo de sistema atualmente chamado de multisoquete (multi-socket), pois os processadores so conectados s placas-me atravs de um soquete. Em 2005 tanto a Intel como a AMD lanaram processadores hoje denominados de processadores de ncleos mltiplos (multi core). Na sua verso mais simples, cada ncleo ou core corresponde a circuitos eletrnicos de um processador completo, encapsulados juntos em um mesmo invlucro e compartilhando as vias de conexo com a placa me. Em sua verso mais sofisticada, os ncleos esto interconectados atravs de vias especiais de alta velocidade, e tem um cache e e uma controladora de memria comum.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

27

Em 2001 a Intel desenvolveu uma tecnologia chamada Hyper-Threading, na qual um ncleo de processamento fsico podia ser configurado no equivalente a dois processadores lgicos, um com a quase totatlidade dos recursos fsicos do processador e o outro aproveitando unidades lgicas e aritmticas e de processamento de ponto flutuante que no estivessem em uso. Os processadores lgicos assim formados so bastante heterogneos na capacidade de processamento. Assim, quanto ao paralelismo de memria compartilhada, um computador pode ter uma placa me multi-soquete, em cada soquete pode estar conectado um processador de mltiplos ncleos, cada ncleo pode representar mais de um processador lgico. Neste texto, em situaes genricas que podem ser aplicadas tanto um computador, a um processador fsico de um computador, a um ncleo de processamento de um processador fsico de um computador ou a um processador lgico de um ncleo de processamento de um processador fsico de um computador, ser utilizado o termo processador lgico para designar indistintamente qualquer uma das entidades citadas como uma unidade autnoma de processamento. Quando, em funo da caractersticas especficas do assunto em discusso, se fizer necessrio distingi-los, isso ser feito atravs dos termos correspondentes computador, processador e ncleo. Os clusters so agrupamentos de computadores independentes, homogneos ou no, interconectados por uma rede de comunicao. As principais vantagens nesse modelo so os custos baixos e alta escalabilidade (PEZZI, 2006). A capacidade computacional da arquitetura pode ser facilmente aumentada pela adio de mais computadores ao longo do tempo. Originalmente referindo-se a um computador especfico construdo em 1994 por Thomas Sterling e Donald Becker na NASA, Beowulf a denominao empregada para uma classe de clusters formados por computadores pessoais comuns de uso geral executando um sistema operacional livre e de fonte aberta como o BSB, Linux ou Solaris e conectados por uma pequena rede local TCP/IP. De todas as alternativas disponveis para HPC, a que apresenta o menor custo de implantao e manuteno, pois todos os seus componentes de hardware so adquiridos de fornecedores de computadores de uso geral, e no h custos com o software. Clusters com computadores pessoais podem eventualmente utilizar software proprietrio, no sendo mais classificados de Beowulf.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

28

Clusters so denominados permanentes quando especificamente configurados para o processamento paralelo e utilizados somente para essa atividade. Clusters temporrios so conjuntos de computadores de emprego geral temporariamente interconectados atravs de uma rede local para a soluo conjunta de tarefas de HPC. Os Grids distinguem-se dos clusters temporrios por serem em geral mais heterogneos e geograficamente mais

dispersos, podendo pertencer a redes diferentes e executando tarefas que no necessitem de uma forte sincronizao. Quando um computador faz parte de um cluster, ele recebe a denominao de n ou nodo. Neste texto, ser utilizada a designao nodo para evitar confuso com os ns das malhas de elementos finitos utilizadas na discretizao espacial dos problemas. Se os nodos de um cluster tm, cada um, um nico processador lgico, esse cluster classificado como de paralelismo de memria distribuda. Havendo mais de um processador lgico por nodo, dentro do nodo h paralelismo de memria compartilhada e entre nodos h paralelismo de memria distribuda. Programas para processamento paralelo so geralmente implementados em linguagens correntes de alto nvel para processamento cientfico como C, C++ ou Fortran, com a adio de bibliotecas de paralelizao que permitem mobilizar os diversos processadores lgicos presentes . As duas APIs (Aplication Programming Interface) mais comumente utilizadas para implementar processamento paralelo so OpenMP (Open Multi Processing) e MPI (Message Passing Interface ). A biblioteca OpenMP destina-se a paralelismo de memria compartilhada, permitindo que os diversos processadores lgicos presentes sejam mobilizados para a execuo de um mesmo cdigo e tenham acesso direto s variveis, que so comuns. O emprego mais usual do OpenMP permitir o paralelismo de laos do programa, repartindo as repeties do lao em tantos grupos seqenciais quanto forem os processadores lgicos e atribuindo a cada processador lgico uma das seqncias de repeties. As variveis e vetores presentes no cdigo so duplicados tantas vezes quantos forem os processadores lgicos, de modo que, ao iniciar o lao, cada processador tem uma cpia idntica e independente das variveis do programa. Ao final do lao as variveis so unificadas com os diversos valores gerados em cada lao. Existem na biblioteca uma srie de comandos que permitem que algumas variveis sejam comuns a todos os processadores lgicos (no sejam duplicadas nem independentes), que sejam privadas (duplicadas e independentes para cada lao), que determinados trechos do
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

29

cdigo sejam executados por um processador lgico de cada vez (no haja modificao simultnea de uma mesma varivel ou posio de vetor pelos diversos processadores), e impor em quantas partes um lao deve ser dividido (OPENMP, 2008). A biblioteca MPI destinada tanto a mquinas de memria compartilhada quanto distribuda, e funciona basicamente implementando comandos que permitem a transferncia de conjuntos de dados (vetores) entre diversos processadores lgicos atravs da rede de dados. Os cdigos que esto sendo executados nos diversos processadores lgicos so independentes e autnomos, no sendo obrigatoriamente iguais (ARGONE, 2005).

1.3 MTRICA DE PROGRAMAS PARALELOS


Na execuo de um programa seqencial, a capacidade computacional disponvel de um nico processador utilizada para o processamento do cdigo em um tempo transcorrido total indicado por ts. Quando o mesmo programa executado de forma paralela por p processadores lgicos idnticos, considera-se que a capacidade computacional disponvel p vezes maior, e que portanto o tempo transcorrido para a execuo do programa deve ser p vezes menor. Esta condio corresponde a aplicaes nas quais nenhum esforo computacional associado diviso de tarefas entre os processadores, comunicao, sincronizao ou agrupamento de dados, somente possvel quando no existe dependncia entre os dados ou tarefas de cada processador (embarrassingly parallel problems). Se tp o tempo efetivamente transcorrido na execuo do programa com p processadores, define-se como a acelerao ou ganho de velocidade de processamento (speed-up) a razo (Wilkinson e Allen,1999)
Sp = ts tp

(1.1)

Denomina-se speed-up absoluto quando o tempo de execuo do programa seqencial ts corresponde ao melhor algoritmo seqencial possvel, e speed-up relativo quanto utilizado o mesmo algoritmo paralelo com apenas um processador. Quando no especificado, deve-se considerar o speed-up como relativo, vez que ele no requer a implementao de um cdigo seqencial diferente do utilizado com vrios processadores.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

30

O speed-up ideal ou terico aquele no qual Sp = p, indicando que toda a capacidade computacional disponvel utilizada para acelerar a execuo do programa. Denomina-se speed-up superlinear quando o valor obtido com p processadores maior que p. Speed-up superlinear ocorre na maioria das vezes com estruturas de dados relativamente pequenas com o uso de um nmero reduzido de processadores, e em geral decorrente de um melhor desempenho da estrutura de cache dos processadores com uma quantidade menor de dados por processador no cdigo paralelo em relao ao seqencial, resultando num melhor desempenho da memria e, conseqentemente, maior velocidade de processamento. Define-se como eficincia de paralelizao para p processadores lgicos Ep a razo

Ep =

Sp p

ts p tp

(1.2)

A eficincia de paralelizao inidica quanto do ganho de velocidade terico ou ideal foi alcanado. As equaes acima so vlidas apenas quando os p processadores tm a mesma capacidade de processamento. Quando o conjunto de processadores utilizados heterogneo, uma metodologia diferente precisa ser utilizada para a avaliao dos parmetros speed-up e eficincia de paralelizao. O tempo transcorrido na execuo do cdigo seqencial por cada processador indicado por

tsi . Considerando-se como tempo de referncia tsref o tempo de execuo de um processador


i qualquer (por exemplo o do primeiro processador t1 s ), a velocidade relativa vr de cada

processador pode ser calculada por

vri =

tsref tsi

(1.3)

A velocidade relativa define a capacidade computacional relativa disponvel de cada processador em termos de velocidade de processamento daquele cdigo. Se um determinado nmero de processadores for utilizado para a execuo paralela do programa, a velocidade relativa ideal ou terica seria a soma das velocidades relativas dos diversos processadores. A velocidade relativa de execuo em paralelo com p processadores vrp dada por:
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

31

vrp =

tsref tp

(1.4)

A eficincia de paralelizao Ep para p processadores dada por

Ep =

vrp

v
i =1

(1.5)

i r

O speed-up ento calculado por

S p = p.E p

(1.6)

Desta forma, o valor intuitivo do speed-up continua o mesmo, ou seja, o valor terico ou ideal

para p processadores p. Uma outra mtrica para avaliar o desempenho de implementaes paralelas a frao serial definida pela mtrica de Karp-Flatt (1990) dada por`

tser + tred ts

(1.7)

onde ts o tempo de execuo de um programa de modo seqencial em um nico processador, tser a parte do tempo de execuo do programa em modo paralelo associado a algoritmos seqenciais ou seriais que no so acelerados pela presena de mais processadores e tred a parte do tempo de execuo do programa em modo paralelo associado redundncia do esforo computacional, comunicao de dados e a procedimentos de controle (parallel
overhead). A frao serial determinada experimentalmente em um programa sendo

executado por p processadores em funo do speed-up Sp obtido atravs da equao 1 1 Sp p = 1 1 p

(1.8)

e indica a parcela do tempo de execuo do programa em modo seqencial que no diminui com o aumento do nmero de processadores. Quando menor o valor de , melhor a

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

32

paralelizao. Se cresce com p, um indicador de que a redundncia do esforo computacional cresce com p. Define-se como escalabilidade de um programa paralelo a propriedade do mesmo de manter a eficincia de paralelizao medida que so adicionados mais processadores ao conjunto. Um
speed-up linear do tipo S p = k. p

(1.9)

com k prximo da unidade resulta em uma escalabilidade considerada muito boa. Quando a frao serial mantm-se constante (e com valor baixo) com o aumento do nmero de processadores, o programa tem boa escalabilidade. A maioria dos cdigos paralelos no apresenta escalabilidade linear para um problema de tamanho fixo, perdendo eficincia para cada processador adicionado ao conjunto. Considerando a poro do tempo de processamento de um programa executado por um nico processador e associado a um algoritmo seqencial, que no sofre reduo com a adio de mais processadores, e (1-) a poro do tempo de processamento que est associado a um algoritmo que pode ser paralelizado. Se o mesmo programa for executado por p processadores idnticos, o tempo de processamento ser
tp = +

(1 ) p

(1.10)

e o valor de speed-up correspondente ser de


Sp =

1 (1 ) + p

(1.11)

As equaes (1.10) e (1.11) so conhecidas como lei de Amdahl, em funo de um artigo pioneiro em que Amdahl (1967) descreve literalmente o comportamento expresso pelas equaes acima. A equao (1.11) pode ser utilizada para prever o maior valor de speed-up que pode ser obtido atravs da paralelizao de um problema de tamanho fixo, levando
p , o que resulta em

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

33

S =

(1.12)

Assim, se um programa tem 20% de seu tempo de execuo associado a um algoritmo seqencial que no pode ser acelerado por paralelizao para um determinado tamanho de problema, o maior valor de speed-up que pode ser obtido de 5 para o mesmo problema, independentemente de quantos processadores so adicionados ao processo. A curva de speedup versus nmero de processadores utilizados obtida pela equao (1.11) assinttica ao valor S . A lei de Amdahl parece indicar um limitante bastante severo para configuraes massivamente paralelas. Se uma mquina massivamente paralela conta com 1024 processadores, um programa atinge uma eficincia de paralelizao de 50% somente se tiver aproximadamente 0,2% do tempo de processamento associado a um algoritmo seqencial ou eventos que no so acelerados pela presena de mais processadores, como operaes de entrada e sada (leitura e gravao de dados). Na prtica, um mesmo problema de tamanho fixo somente analisado com um nmero crescente de processadores para fins de pesquisa. Quanto maior o tamanho do problema, maior o nmero de processadores que so alocados para a tarefa, e a parcela seqencial do tempo de processamento diminui com o aumento dos dados. Por exemplo, a relao entre o tempo de leitura de dados para a soluo de um sistema de equaes lineares (parte seqencial) e o tempo necessrio para soluo do sistema (parte paralela) no se mantm constante com o aumento do tamanho do sistema. Quem primeiro revisou os conceitos por trs da Lei de Andahl foi Gustafson (1988), baseado em resultados obtidos com um computador massivamente paralelo no Sandia National Laboratories (Estados Unidos). A chamada Lei de Gustafson estabelece que, se no processamento de um programa em um computador paralelo, o tempo de execuo com p processadores dado por + = 1, onde a poro seqencial e = (1) a poro paralela, ento se o programa fosse executado seqencialmente por um nico processador, o tempo de execuo seria + p e o speed-up seria dado por S p = + p (1 ) ou, de forma equivalente, por (1.13)

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

34

S p = p ( p 1)

(1.14)

ou seja, quanto maior o nmero de processadores includos no processo, maior ser o speedup obtido. O comportamento previsto pelas leis de Amdahl e de Gustafson para = 0,1 est mostrado na figura 1.1.

20 18 16 14 Speed-up 12 10 8 6 4 2 0 0 5 10 Processadores Amdahl Gustafson 15 20

Figura 1.1: Previso de speed-up pelas leis de Amdahl e Gustafson importante considerar que o valor de na Lei de Amdahl representa a parcela de tempo de execuo no paralelizvel para o programa seqencial, enquanto que na Lei de Gustafson representa a parcela de tempo no paralelizvel no programa paralelo, sendo constante para qualquer nmero de processadores. A lei de Gustafson se aplica ao casos em que o coeficiente torna-se gradativamente menor com o aumento do tamanho do problema, de modo que ao se adicionar processadores ao conjunto, sempre existir um tamanho de problema grande o suficiente que far com que permanea constante, mantendo a escalabilidade. Em computao paralela, define-se como granularidade uma medida qualitativa da razo entre o processamento das tarefas e a comunicao de dados entre processadores (BARNEY, 2007). A granularidade pode ser classificada como grossa, quando grande quantidade de trabalho computacional feita entre eventos de comunicao, e fina quando o trabalho computacional entre eventos de comunicao pequeno.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

35

1.4

COMUNICAO

DE

DADOS,

DIVISO

DE

TAREFAS

BALANCEAMENTO
Em uma implementao usando MPI para paralelismo de memria distribuda, a rede lgica de conexo torna-se um gargalo importante ao desempenho, pois sua velocidade muitas vezes menor e sua latncia muitas vezes maior que a existente nos diversos outros subsistemas dos computadores. Em termos de velocidade de acesso e latncia, o subsistema mais rpido o cache dos processadores, seguido pela memria principal, os discos-rgidos locais e finalmente a rede lgica. Valores tpicos de vazo de dados para esses sub-sistemas so de 6400 MB/s para uma memria DDR2-800 (single-channel, o dobro disso em dualchannel) , 300 MB/s para uma interface de disco-rgido SATA II e 100 MB/s para uma conexo de Gigabit Ethernet. Clusters de alto desempenho utilizam conexes de rede mais rpidas e de menor latncia, como os padres Myrinet (495 MB/s) e Infiniband (830 MB/s), ou conexes como a NUMAlink (3200 MB/s), que proporciona compartilhamento global da memria entre os nodos (SGI, 2008), mas mesmo essas conexes no atingem a velocidade de memria principal. Desta forma, qualquer implementao usando MPI para ser bem sucedida deve minimizar ao mximo a transferncia de dados entre os diversos processadores lgicos. A configurao ideal aquela em que cada processador fica responsvel por uma grande carga de trabalho computacional, e troca com um nmero mnimo de outros processadores uma quantidade mnima de dados, o mais espaadamente possvel (situaes de granularidade grossa). Em redes de baixo desempenho como a Fast Ethernet (10 MB/s), to importante quanto a quantidade de dados o nmero de processos de comunicao, em funo da latncia de comunicao em rede. Implementaes de granularidade fina tendem a ser altamente ineficientes nessas condies, e os algoritmos utilizados devem ser modificados. (ver exemplo em MURARO JR. Et al., 2008). Mesmo em aplicaes com poucos processos de comunicao, quando o tamanho do problema muito pequeno, a latncia dos processos de comunicao em rede representam tempos considerveis frente ao tempo de processamento da carga de trabalho alocada a cada processador, fazendo com que solues paralelas tenham speed-up inferior unidade (ver exemplo em Cuminato et al., 1999). Implementaes com granularidade fina necessitam de

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

36

interconexes entre os processadores com baixa latncia e alta velocidade para serem eficientes. A quantidade de dados a ser trocada pelos processadores atravs da rede e o nmero de processos de comunicao so decorrentes tanto do algoritmo de soluo escolhido quanto da forma como os dados so divididos entre os diversos processadores. A diviso de tarefas ou particionamento de estruturas de dados, como as decorrentes da aplicao do Mtodo dos Elementos Finitos, so geralmente tratados atravs de tcnicas de paticionamento de grafos ou decomposio de domnios. A malha de Elementos Finitos considerada como um conjunto de ns e arestas que definem a relao entre os ns. Um custo computacional associado aos ns e s arestas, que representa o tempo de processamento associado aos ns e elementos da malha, e o objetivo da diviso obter parties com o custo computacional proporcional capacidade computacional do processador associado cada partio (garantindo igual tempo de processamento para todos os processadores) e menor nmero de arestas cortadas (representando uma menor quantidade de dados trafegando na rede de comunicao entre processadores). O particionamento da malha pode ser nodal (os ns so distribudos entre as diversas parties, sendo partidas as arestas) ou dual (os elementos da malha so distribudos entre as parties, e os ns so partidos)(ELIAS, 2008). Para a partio dual, o objetivo da partio minimizar o nmero de ns partidos. O problema de particionamento de grafos tem enorme importncia para uma srie de reas de conhecimento, como mapeamento de genoma, programao linear, transporte e integrao de larga escala de circuitos (VLSI) (KARYPIS e KUMAR, 2008). Diversos mtodos de particionamento foram desenvolvidos. Uma viso bastante detalhada sobre as caractersticas de cada mtodo pode ser encontrada em (DORNELES, 2003). Duas classes de mtodos relativamente simples sero detalhados neste texto pois serviro de base para os mtodos empregados no captulo 3. A primeira caracterizada pelo particionamento em faixas (stripwise partitioning ou STRIP). Este mtodo, consiste em seccionar a malha segundo planos paralelos entre si, de modo a limitar regies com o mesmo custo computacional, conforme mostra a figura 1.2.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

37

P1 P2 P3 P4 P5 P6 P7 P8

Figura 1.2: Particionamento em faixas. Este mtodo comumente empregado em aplicaes utilizando o Mtodo das Diferenas finitas, onde a malha obrigatoriamente estruturada segundo os eixos coordenados, tornando esse tipo de diviso natural. Exemplos podem ser encontrados em Cuminato et al. (1999) e Dorneles (2003). Variantes incluem permitir que a fronteira entre os subdomnios no seja reta, mas que possa ter uma endentao ou degrau, conforme a figura 1.3. Isso aumenta ligeiramente a comunicao entre os subdomnios, mas permite um balanceamento das cargas bastante mais preciso.

P1 P2 P3 P4 P5 P6 P7 P8

Figura 1.3: Particionamento em faixas com fronteira no retas. O particionamento inercial em faixas consiste em determinar a maior direo da malha considerando-se os ns como unidades de massa, e calculando os eixos principais centrais de inrcia. As parties so feitas por planos normais ao eixo de menor inrcia. O resultado pode ser visto na figura 1.4, onde o eixo de menor inrcia est indicado pela seta pontilhada. Podese utilizar um critrio de ponderao atribuindo como massa a cada n o custo computacional a ele associado. Para particionamentos nodais a falta de alinhamento entre a orientao das fronteiras dos sub-domnios e a orientao das faces dos elementos da malha no constitui
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

38

problema. Contudo, para paticionamentos duais, a fronteira entre domnios no permanece retilnea ou plana, devendo se adaptar orientao das faces dos elementos, dando origem a fronteiras irregulares ou serrilhadas, especialmente em malhas estruturadas.

P1 P3 P2 P4 P6 P7 P5 P8

Figura 1.4: Particionamento inercial em faixas. Quando o nmero de divises do domnio grande, os subdomnios correspondentes a cada processador tornam-se faixas estreitas, e as fronteiras entre os sub-domnios tornam-se grandes em relao ao volume dos sub-domnios. Como as fronteiras correspondem comunicao de dados entre processadores, e os volumes cargas de trabalho de cada processador, com o aumento do nmero de divises a granularidade tende a tornar-se mais fina. Podendo levar a baixas eficincias em clusters com redes muito lentas. Contudo, o processo de particionamento em faixas o que garante o nmero mnimo de fronteiras para um dado sub-domnio e, conseqentemente, o menor nmero de processos de comunicao, o que pode vantajoso em redes com grande latncia. A segunda classe caracterizada pelo particionamento utilizando bisseco recursiva por coordenadas. (Recursive Coordinate Bissection-RCB). A partir das coordenadas dos ns, a bisseco aplicada recursivamente para dividir um domnio em dois subdomnios utilizando planos normais a qualquer um dos eixos (x, y, z). O custo computacional associado a cada n da malha e a capacidade de processamento dos processadores podem ser utilizados para ponderar a bisseco. Um exemplo desse tipo de diviso mostrado na figura 1.5, onde os nmeros junto a cada fronteira indicam a ordem de bisseco..

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

39

P1

4 2 P2 P3 5 P4 1 P5 6 P6 3 P7 7 P8

Figura 1.5: Particionamento atravs de bisseco recursiva por coordenadas. O processo de bisseco recursiva por coordenadas tem a vantagem de ser simples e de baixo custo computacional (FSTER, 1994). Um problema desse mtodo que ele no otimiza a comunicao, podendo levar a subdomnios com grandes fronteiras. O particionamento inercial por bisseco recursiva consiste em, antes de aplicar a bisseco, determinar os eixos principais centrais de inrcia do domnio ou subdomnio, de modo a seccion-lo segundo um plano normal ao eixo de menor inrcia, prosseguindo o processo recursivamente. Um exemplo desse processo est mostrado na figura 1.6. O particionamento inercial por bisseco recursiva leva a fronteiras bem menores que as obtidas com a

bissceco sendo feita segundo planos normais aos eixos (x,y,z), embora tenha um custo computacional maior. Os particionamentos por bisseco resultam em fronteiras menores que o particionamto por faixas, mas o nmero de vizinhos de cada subdomnio maior, representando mais operaes de comunicao. Em redes com grande latncia, isso pode vir a contrabalanar os ganhos decorrentes da menor quantidade de dados em cada transmisso. Alm disso, se comunicaes blocantes so utilizadas, o ordenamento dessas comunicaes torna-se bastante mais complexo medida que o nmero de processadores cresce.

P1 P5 P6 P7 P8 P3 P4 P7 P8 P3 P7 P1 P2 P5 P6

P5

P1 P2 P3 P4

P7

P6

P4

P8

Figura 1.6: Particionamento inercial por bisseco recursiva por coordenadas.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

40

Diversos softwares para o particionamento de malhas esto disponveis, dentre os quais o CHACO (HENDRICKS e LELAND, 2008), o PARTY (PREISS e DIEKMANN, 2008), o JOSTLE (WALSHAW e CROSS, 2008), o SCOTCH (PELLEGRINI, 2008) e o METIS (KARYPIS e KUMAR, 2008). Como no processamento paralelo utilizando MPI h freqentemente a necessidade de sincronizao dos diversos processadores lgicos em etapas determinadas do cdigo sendo processado, a velocidade do conjunto ser sempre limitada pelo processador mais lento, ou seja, aquele que leva mais tempo para processar seu conjunto de dados. Uma distribuio ideal de tarefas aquela que faz com que todos os processadores lgicos presentes levem o mesmo tempo para processar seu conjunto de dados entre um ponto de sincronizao e o seguinte, de modo que o tamanho do conjunto de dados de cada processador proporcional ao seu desempenho relativo ou velocidade de processamento relativa. Em clusters no homogneos, a velocidade de processamento relativa de cada processador lgico presente no facilmente quantificada a priori, e nem tem o mesmo valor para todos os tipos de problemas. A freqncia (clock) do processador um indicativo inicial, mas se num cluster esto presentes processadores de arquiteturas diferentes, os mesmos podem executar um nmero diferente de operaes por ciclo de clock, levando a desempenhos diferentes para uma mesma freqncia. Algumas arquiteturas tem melhor desempenho que outras no processamento de inteiros, mas no em operaes de ponto flutuante, causando dependncia com o tipo de cdigo sendo executado. Alm disso, processadores dentro de uma mesma arquitetura podem apresentar freqncias diferentes, tamanhos de cache diferentes e utilizar memrias de um mesmo padro com velocidades e latncias diferentes, dando origem a uma infinidade de combinaes com caractersticas diferentes de desempenho para cada tipo de programa e tamanho de problema. Isso faz com que, em clusters heterogneos, seja extremamente difcil quantificar a capacidade computacional dos diversos processadores lgicos de modo a distribuir as cargas de trabalho de forma proporcional e equilibrada. Alm disso, a prpria quantificao das cargas ou custos computacionais associados a um n ou elemento de uma malha de elementos finitos no uniforme. Cargas e condies de contorno so aplicadas apenas sobre alguns elementos ou ns, no-linearidades como plasticidade e dano contnuo desenvolvem-se ao longo do processo de anlise, alterando a distribuio do esforo computacional medida que o processo de soluo avana. Implementaes com malhas adaptativas criam e removem elementos e ns localmente ao
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

41

longo do processo de soluo, alterando a distribuio de cargas entre os processadores. Processos adaptativos para a integrao no tempo como a tcnica de sub-ciclos implicam que cada iterao tem uma distribuio espacial diferente do esforo computacional. Em funo das caractersticas acima, balanceamentos de carga estticos, semi-estticos ou dinmicos podem ser adequados (DEMEL, 2007). O balanceamento esttico ocorre quando toda a informao necessria est disponvel antes do balanceamento. Para problemas como soluo de sistemas de equaes, esquemas explcitos de Taylor-Galerkin para simulao de escoamentos de fludos sem o uso de malhas adaptativas ou de tcnicas de sub-ciclos o esforo computacional constante ao longo do processo de soluo, e um esquema esttico de balanceamento pode ser utilizado desde que se tenham estimadores precisos tanto do custo computacional associado a cada n e elemento da malha quanto da capacidade computacional relativa dos processadores utilizados para o tipo de aplicao e tamanho do problema em questo. Balanceamento semi-esttico utilizado em situaes em que a distribuio do esforo computacional se altera lentamente ao longo do processo de soluo (plasticidade, dano contnuo, malhas adaptativas), permitindo que um esquema esttico seja utilizado no incio do processo e um certo desbalanceamento seja tolerado ao longo de um certo nmero de iteraes, onde um processo esttico para balanceamento novamente aplicado. Balanceamento dinmico utilizado onde a carga de trabalho associada aos ns e elementos varia continuamente ao longo do processo de soluo (HENDRICKSON e DEVINE, 2000, CATALYUREK et al., 2007), como quando so utilizados mtodos adaptativos na integrao temporal como a tcnica de sub-ciclos. Nestas situaes preciso uma avaliao cuidadosa para verificar se o custo computacional associado ao contnuo rebalanceamento de cargas no maior que os ganhos advindos do balanceamento resultante. Para muitos autores, no h diferenas entre o balanceamento de cargas semi-esttico e o dinmico, pois somente diferem na freqncia com que o rebaleanceamento aplicado. Existem 2 abordagens bsicas para o reparticionamento do domnio, uma vez detectada a necessidade de rebalanceamento de cargas: realizar um particionamento de cargas inteiramente novo, partindo do zero, ou utilizar algoritmos de difuso. Embora a primeira abordagem possa levar a um particionamento melhor da malha (distribuio de cargas equilibrada, fronteiras entre domnios pequenas, pequena quantidade de subdomnios vizinhos
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

42

a um subdomnio) tem um custo computacional mais alto e implica em uma grande movimentao de dados atravs da rede, sendo mais adequada para balanceamentos semiestticos que dinmicos. Nos algoritmos por difuso, os processadores comparam continuamente suas cargas de trabalho e, havendo uma diferena acima de determinado limite, ns e elementos so passados de uma partio para outra. (PELLEGRINI, 2007). Uma das formas de se avaliar a carga de trabalho de cada processador lgico considerando tanto as variabilidades decorrentes do hardware, do algoritmo de soluo empregado quanto da malha utilizada na discretizao atravs de mtodos empricos, como a medio direta do tempo de processamento de cada processador. Kwok et al. (1999) utilizam um mecanismo de balanceamento de cargas centralizado, no qual, em intervalos de tempos regulares, os diversos processadores lgicos enviam informaes a um processador central sobre o tempo de CPU utilizado no intervalo para processar sua carga de trabalho. A comparao entre os tempos dos diversos processadores indica a necessidade de redistribuio de cargas, e o tempo de CPU de cada processador e sua carga de trabalho servem de parmetros para estimar a nova carga de trabalho. A mesma tcnica foi utilizada por Dorneles (2003) no programa HIDRA.

1.5 DINMICA DOS FLUDOS COMPUTACIONAL EMPREGANDO O MTODO DOS ELEMENTOS FINITOS.
Na Dinmica dos Fludos Computacional, a grande maioria dos modelos numricos empregam como mtodo de discretizao o Mtodo das Diferenas Finitas, o Mtodo dos Volumes Finitos e o Mtodo dos Elementos Finitos. Dentre eles, o Mtodo dos Elementos Finitos o que apresenta maiores vantagens no tratamento de problemas com geometrias complexas e na aplicao de condies de contorno no convencionais, embora demande maior quantidade de memria e maior tempo de processamento. Trs importantes referncias na aplicao do Mtodo dos Elementos Finitos na anlise de escoamentos so encontradas em Zienckiewicz et. al (2005), Grecho e Sani (1999) e Reddy e Gartling (1994). O mtodo de Taylor-Galerkin, proposto por Donea (1984) consiste em uma expanso em srie de Taylor no tempo das equaes de Navier-Stokes e de Euler e uma discretizao atravs do mtodo de Bubnov-Galerkin sobre o domnio espacial e tem sido um dos mtodos mais empregados na soluo de escoamentos de fludos compressveis e incompressveis.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

43

A integrao temporal das equaes de Navier-Stokes e de Euler pode ser feita via esquemas explcitos, implcitos ou uma combinao de ambos. Os esquemas implcitos tem um melhor desempenho em problemas estacionrios por no apresentar restries de estabilidade, possibilitando empregar um elevado passo de tempo para obteno da soluo. Os esquemas explcitos tem como vantagem a simplicidade, pouca demanda por memria e boas caractersticas em problemas transientes, sendo largamente utilizados na simulao numrica desses problemas. O emprego de esquemas explcitos com o Mtodo dos Elementos Finitos resulta em um processo iterativo no qual o sistema de equaes envolvendo as variveis do problema desacoplado dentro de cada iterao, permitindo o clculo das variveis na iterao i+1 a patir de seus valores na iterao i, fazendo com que formulaes baseadas nesse esquema sejam especialmente adequadas ao emprego de paralelismo de memria distribuda. Por outro lado, a condio de Courant-Friedrichs-Levy (1928) relacionando o mximo passo de tempo utilizado na discretizao temporal com as dimenses dos elementos utilizados na discretizao espacial e com a velocidade de propagao de onda elstica no meio deve ser atendida para garantir a estabilidade, de modo que os esquemas explcitos exigem passos de tempo muito menores que os utilizados nos esquemas implcitos. Em escoamentos transientes e turbulentos, a prpria variabilidade dos fenmenos fsicos envolvidos impe uma limitao natural ao passo de tempo mximo que pode ser utilizado, anulando a principal vantagem dos mtodos implcitos e fazendo com que os mtodos explcitos sejam largamente utilizados na simulao desses escoamentos. Do ponto de vista de capacidade computacional, a simulao de escoamentos transientes e turbulentos em problemas de geometria complexa faz com que sejam necessrias muitas vezes malhas com alto grau de refinamento, seja para reproduzir as caractersticas geomtricas das superfcies em estudo, seja para representar corretamente os altos gradientes das variveis do problema em regies especficas do domnio de estudo. O refinamento espacial da malha, que por si s impe uma grande demanda por recursos computacionais de capacidade de processamento e memria, implica tambm em um refinamento na discretizao temporal, exigindo passos de tempos menores pela condio de estabilidade de Courant-Friedrichs-Levy decorrentes do menor tamanho dos elementos e exigindo ainda mais recursos computacionais, especialmente capacidade de processamento. Desse duplo impacto sobre o desempenho computacional vem a enorme necessidade de computao de alto desempenho das aplicaes em Dinmica dos Fludos Computacional.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

44

No mbito dos programas de Ps-Graduao em Engenharia Civil e de Ps-Graduao em Engenharia Mecnica da UFRGS, os esquemas explcitos tm sido utilizados em diversos trabalhos para a soluo de escoamentos compressveis (BURBRIDGE, 1999, AZEVEDO, 1999, TEIXEIRA, 2001, KESSLER, 2002, BONO 2008) e de escoamentos incompressveis (GONZLEZ, 1993, PETRY, 2002, POPIOLEK, 2005, OLIVEIRA Jr., 2006, SANTOS, 2007, BRAUN, 2007, XAVIER, 2008) As caractersticas indicadas acima e a ampla experincia dos grupos de pesquisa locais na aplicao dos esquemas explcitos com o mtodo dos elementos finitos justificam sua escolha para este trabalho. Nos casos de escoamentos compressveis, a presso determinada pelos valores locais e instantneos da massa especfica e energia interna atravs da equao de estado. Por este motivo, geralmente so empregadas as variveis conservativas nas equaes para esses escoamentos. Os algoritmos para escoamentos compressveis tendem a reduzir sua preciso e convergncia quando o nmero de MACH diminui, devido grande disparidade que existe entre os termos acsticos e convectivos, e portanto sua aplicao a escoamentos incompressveis torna-se restrita (Turkel et al., 1997). Nos escoamentos incompressveis, a presso somente funo do campo de velocidades. As principais formulaes empregadas na soluo de escoamentos incompressveis esto baseadas no mtodo de correo de presso ou no conceito de compressibilidade artificial ou pseudo-compressibilidade (Chorin, 1967, Kawahara e Hirano, 1983, Kwak et al., 2005, Zienckiewicz et al. 2005). Neste trabalho, foram utilizados duas formulaes diferentes para a soluo de escoamentos compressveis e incompressveis. Para escoamentos incompressveis foi utilizado um esquema explcito de dois passos empregado por Braun (2007) e para escoamentos incompressveis um esquema explcito de um passo com iteraes empregado por Bono (2008).

Computacionalmente as formulaes so semelhantes, permitindo um tratamento tambm semelhante na implementao paralela para memria distribuda.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

45

1.6 DINMICA DOS SLIDOS COMPUTACIONAL EMPREGANDO O MTODO DOS ELEMENTOS FINITOS.
Na Mecnica dos Slidos computacional, o Mtodo dos Elementos Finitos tem sido preponderante como mtodo de discretizao espacial desde o comeo da dcada de 70 do sculo passado. Quanto discretizao temporal da equao de equilbrio dinmico, os dois modelos numricos mais empregados so o mtodo explcito de Taylor-Galerkin (Azevedo, 1999) e o mtodo implcito de Newmark (Bathe, 1996). Tendo as mesmas vantagens que apresenta quando empregado para a Dinmica dos Fludos Computacional, a manuteno da estabilidade numrica no uso do mtodo de Taylor-Galerkin implica no uso de passos de tempo muito menores que os utilizados na simulao dos escoamentos em funo da muito maior velocidade de propagao da onda elstica em meios slidos que em fludos, impondo uma enorme demanda de capacidade computacional. O mtodo implcito de Newmark incondicionalmente estvel para problemas lineares, podendo utilizar passos de tempo bastante grandes, limitados somente pelas caractersticas dos fenmenos dinmicos e vibratrios em estudo. Contudo, o mtodo demanda maior consumo de memria, pela necessidade de montagem de matrizes globais e a soluo de sistemas de equaes, responsvel pela maior parte do tempo de processamento do mtodo quando aplicado a grandes estruturas de dados. Em problemas dinmicos de estruturas aeronuticas, a presena de fenmenos vibratrios de alta freqncia e de efeitos dinmicos de alta velocidade justificam o emprego do mtodo explcito de Taylor-Galerkin. J na Engenharia de Vento Computacional, o comportamento dinmico dominado por modos vibratrios de baixa freqncia, e o mtodo implcito de Newmark mostra-se mais vantajoso. Como o mtodo de Newmark no capaz de conservar energia, alm de perder seu carter dissipativo em problemas com no-linearidade, ele deixa de ser incondicionalmente estvel em presena de no-linearidade. Diversos mtodos de estabilizao foram criados a partir do final da dcada de 70 do sculo passado, como o mtodo da energia restringida de Hughes et al. (1978), o mtodo do momento de energia de Simo e Tarnow (1992) e o mtodo -Hilber (HILBER et al. 1977), baseado em dissipao numrica. Khul e Ramm (1996) desenvolveram uma formulao para obteno de parmetros otimizados para os mtodos e os estenderam
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

46

a problemas no-lineares. A vantagem dessa formulao que ela mantm a simetria da matriz de rigidez tangente e seu custo computacional similar aos esquemas de integrao no tempo baseados no mtodo de Newmark tradicional. A soluo de sistemas de equaes freqentemente responsvel pela maior parte do tempo de processamento de simulaes numricas cientficas e de engenharia (BENZI, 2002), e a soluo de problemas com o Mtodo dos Elementos Finitos atravs de esquemas implcitos tem essa caracterstica. Os mtodos diretos de soluo so empregados quando a confiabilidade da resposta a principal preocupao. Esses mtodos so muito robustos e tendem a requerer uma quantidade previsvel de recursos em termos de tempo de processamento e memria. Infelizmente, o nmero de operaes necessrias e a memria utilizada nos mtodos diretos escalam de forma quadrtica com o aumento do tamanho do problema, especialmente em sistemas resultantes da discretizao de equaes diferenciais parciais no espao tridimensional, como o Mtodo dos Elementos Finitos. Simulaes tridimensionais detalhadas multi-fsicas como as que esto sendo realizadas dentro do programa ASCI do Departamento de Energia do governo dos Estados Unidos resultam em sistemas de equaes lineares da ordem de centenas de milhes a bilhes de equaes e incgnitas. Em novembro de 2008, 7 dos 10 computadores mais rpidos do mundo pertenciam a instalaes operadas pelo departamento de energia (TOP500, 2008). Para tais tamanhos de problemas, sistemas iterativos so a nica opo possvel. Mesmo aplicaes mais modestas e rotineiras geram sistemas com alguns milhes de equaes e incgnitas, tornando os mtodos iterativos obrigatrios. Enquanto os mtodos iterativos requerem uma quantidade de memria muito menor que os mtodos diretos e freqentemente requerem um nmero menor de operaes, especialmente quando uma soluo aproximada com relativamente pouca preciso suficiente para a aplicao, eles no tm a confiabilidade dos mtodos diretos e, em muitas classes de problemas, falham, necessitando de prcondicionamento. Na indstria do petrleo e de energia nuclear, os mtodos iterativos sempre foram populares e forneceram o estmulo para muitas das pesquisas iniciais em mtodos iterativos. Em contraste, os mtodos diretos tm sido tradicionalmente os preferidos em reas como anlise estrutural, modelamento de semi-condutores e em Dinmica de Fludos Computacional (mtodos

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

47

implcitos). Contudo, mesmo nessas reas os mtodos iterativos tm aumentado grandemente seu emprego nos anos recentes. O mtodo dos Gradientes Conjugados considerado um dos melhores mtodos iterativos para a classe de matrizes simtricas e positivo definidas (SAAD, 1996, SAAD e VAN DER VOST, 2000, VAN DER VOST, 2000). A grande atratividade do mtodo para sistemas muito grandes que ele referencia a matriz de coeficientes (a matriz de rigidez global da estrutura utilizando o Mtodo dos Elementos Finitos) somente atravs de sua multiplicao por um vetor, ou de sua transposta por um vetor. Ou seja, no necessrio montar a matriz global explicitamente, apenas computar o efeito de pr-multiplicar a matriz por um vetor. Esta vantagem explorada por estratgias elemento-por-elemento (element-by-elemento ou EBE), que realizam a multiplicao da matriz por vetor em nvel de elemento. A quantidade de memria requerida por estratgias iterativas EBE tendem a crescer linearmente com o nmero de elementos, ao passo que estratgias que envolvam a montagem de uma matriz global crescem quadraticamente (PHON et al., 2002). A eficincia do mtodo dos Gradientes Conjugados grandemente aumentada com o uso de precondicionadores. O termo precondicionamento refere-se a transformar o sistema de equaes em um outro com caractersticas mais favorveis a uma soluo iterativa. Um precondicionador uma matriz que efetua tal transformao. O mais antigo e simples dos precondicionadores o precondicionador diagonal ou de Jacobi. Em 1845 Jacobi usou rotaes planas para obter dominncia diagonal de sistemas de equaes normais resultantes de problemas de mnimos quadrados (Shewchuk, 1994). O precondicionador diagonal extremamente simples, requer apenas o armazenamento dos coeficientes da diagonal principal da matriz global, que podem ser computados elemento-porelemento, e tem um custo computacional muito baixo. Contudo, o desempenho muitas vezes medocre, em especial em sistemas mal condicionados. O precondicionador de maior importncia para a popularizao do mtodo dos Gradientes Conjugados o precondicionador incompleto de Cholesky., introduzido por van der Vorst em 1977 (BENZI, 2002). Ele consiste no emprego da triangularizao de Cholesky aplicada de forma incompleta. Nas formulaes elemento-por-elemento, isso feito aplicado-se a triangularizao de Cholesky em nvel de elemento, e no sobre a matriz global. Do ponto de vista computacional, o precondicionador de Cholesky implica no armazenamento das matrizes
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

48

locais do elemento fatoradas, mas a escalabilidade com o nmero de elementos linear. O custo computacional mais alto que o do prprio mtodo dos Gradientes Conjugados, mas a taxa de convergncia obtida em geral bastante alta, resultando em um tempo total de soluo menor que com o precondicionador diagonal ou sem precondicionamento. O precondicionador incompleto de Cholesky muito eficiente para sistemas simtricos e positivo definidos, como o caso da maioria dos sistemas resultantes da aplicao do Mtodo dos Elementos Finitos. Sistemas no simtricos ou simtricos mas indefinidos decorrentes de muitas aplicaes reais necessitam de sistemas de soluo mais robustos (WU et al, 2008).

1.7 INTERAO FLUDO-ESTRUTURA.


Os primeiros modelos numricos para anlise acoplada de problemas de interao fludo estrutura utilizavam uma descrio cinemtica do movimento puramente Euleriana, na qual os pontos materiais do fludo movem-se em relao a uma malha fixa. Essas formulaes permitiam apenas anlises em que a estrutura apresentava deslocamentos pequenos o suficientes para serem desprezados na descrio do contorno slido do fludo. O acoplamento era feito atravs da imposio de condies de compatibilidade de velocidades e equilbrio de foras sobre a interface fludo-estrutura. Exemplo desse tipo de abordagem pode ser encontrado em Petry (1993). Modelos de acoplamento mais abrangentes foram desenvolvidos com uma descrio cinemtica Arbitrria Lagrangeana-Euleriana ALE (DONEA et al., 2004). Nessa descrio cinemtica, existe um domnio de referncia (a malha) que se move de maneira arbitrria em relao aos pontos materiais(o fludo) e aos pontos espaciais (o sistema de coordenadas global), e as equaes da Mecnica do Contnuo passam a ser descritas a partir de pontos fixos nos sistema de referncia (os ns da malha). Os primeiros trabalhos com esse tipo de formulao consideravam problemas em que o corpo imerso era considerado rgido com restries elsticas, ou seja, que as deformaes eram pequenas e podiam ser desprezadas frente aos movimentos de corpo rgido (GONZLEZ, 1993, BRAUN, 2002). Graas a maiores recursos computacionais, trabalhos mais recentes consideram corpos deformveis com incluso de no-linearidades. comum nas implemetaes ALE a considerao de um subdomnio em torno da estrutura, abrangente o suficiente para permitir a movimentao da mesma e na qual a descrio cinemtica Arbitrria Lagrangeana-Euleriana, enquanto que no
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

49

restante do domnio a descrio puramente Euleriana. Essa organizao do domnio permite um melhor desempenho computacional, pois restringindo a movimentao da malha ao subdomnio ALE, restringe-se tambm a parcela do domnio que sofre remalhamentos. Existem duas formas bsicas de se considerar o acoplamento fludo-estrutura: o tratamento simultneo ou monoltico e o tratamento particionado. No tratamento monoltico, malha e estrutura so considerados como uma nica entidade, sendo todos os sistemas integrados no tempo simultaneamente (AZEVEDO, 1999). No tratamento particionado, os subsistemas so tratados com entidades diferentes e integrados no tempo de forma seqencial, permitindo o uso de esquemas de soluo diferentes (explicito / implcito) e passos de tempo diferentes no processo de integrao temporal para o fludo e para a estrutura, em um esquema de sub-ciclos, e mesmo de malhas no conformes para fludo e estrutura. (TEIXEIRA, 2001, BRAUN, 2007).

1.8 OBJETIVOS E METODOLOGIA DO PRESENTE TRABALHO


O objetivo deste trabalho estudar algoritmos paralelos para soluo de problemas de Mecnica dos Slidos, Mecnica dos Fludos e Interao Fludo-Estrutura empregando o Mtodo dos Elementos Finitos que possam ser utilizados tanto em um conjunto heterogneo de computadores disponveis em um laboratrio de pesquisa e desenvolvimento conectados atravs da rede lgica existente sob a forma de um cluster temporrio como em um cluster especificamente configurado para processamento de alto desempenho, de forma a obter uma velocidade de processamento significativamente maior que a correspondente de um nico computador, e permitir a soluo de problemas com grandes estruturas de dados inviveis em apenas um computador. O critrio fundamental para a seleo dos algoritmos adequados a cada problema foi a possibilidade desses algoritmos serem paralelizados em um ambiente de memria distribuda, a fim de que pudessem ser utilizados em clusters temporrios de computadores pessoais ou em clusters permanentes de baixo custo construdos a partir de computadores pessoais. Nessas condies, a existncia de computadores com mais de um processador ou com processadores com mais de um ncleo de processamento (core) no foi priorizada na escolha dos algoritmos em funo da facilidade de se adaptar um algoritmo otimizado para memria distribuda de
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

50

forma a ele se tornar eficiente tambm em um ambiente de memria compartilhada. Os algoritmos selecionados para as diversas aplicaes so todos eles do tipo iterativo e foram desenvolvidos em trabalhos anteriores de mestrado e doutorado no mbito do CEMACOM Centro de Mecnica Aplicada e Computacional do Curso de Ps-Graduao em Engenharia Civil da Universidade Federal do Rio Grande do Sul, em especial os trabalhos de Burbridge (1999), Duarte Filho (2002), Braun (2007) e Bono (2008). Optou-se por uma programao paralela que pudesse ser utilizada com uma mnima dependncia do sistema operacional ou da estrutura do hardware. Desta forma, toda a lgica de distribuio de tarefas, balanceamento das cargas de trabalho e organizao da comunicao dos dados entre computadores est implementada diretamente no cdigo, sem nenhuma outra camada de software de gerenciamento. Todos os cdigos foram implementados em FORTRAN 90. A comunicao de dados entre computadores feita utilizando-se a API MPI. Como em processos iterativos os pontos de comunicao de mensagens so tambm pontos de sincronizao do algoritmo, todas as comunicaes so empregadas no modo blocante. O sistema operacional utilizado o Windows XP, unicamente por ser o sistema operacional padro do laboratrio de computao do CEMACOM / UFRGS, evitando desta forma alteraes nos computadores e interferncia na forma de trabalho dos usurios. Como a nica exigncia em relao ao sistema operacional o suporte comunicao em rede e API MPI, e como tanto FORTRAN 90 quanto MPI tm padres que garantam sua portabilidade, os cdigos desenvolvidos podem ser utilizados em outras plataformas e outros sistemas operacionais. Para uso de mltiplos processadores ou mltiplos ncleos em um nico computador em um ambiente de memria compartilhada, o suporte fornecido pelos compiladores atravs das APIs MPI e OpenMP, exigindo do sistema operacional apenas o suporte a multi-processamento. Considerando que a rede de comunicao existente em laboratrios de pesquisa , muitas vezes, de um padro lento (Fast Ethernet com taxa de transferncia de 100 Mbps), a implementao paralela foi feita de forma a se ter a granularidade mais grossa possvel, procurando minimizar o tempo de comunicao de dados entre processadores frente ao tempo de processamento e garantir a maior eficincia de paralelizao. Em um processo iterativo e paralelo, isso seria obtido com apenas uma comunicao entre os processos ao final de cada iterao para que cada processador recebesse o valor atualizado das variveis nodais

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

51

processadas pelos outros processadores envolvidos. Nos algoritmos estudados, isso no foi possvel, sendo necessrios de 2 a 3 processos de comunicao por iterao. Pelas mesmas limitaes, o modelo de programao paralela utilizado o de programa sem mestre (hostless program), de modo que todos os processadores executam o mesmo cdigo e as trocas de dados so efetuadas diretamente pelos processadores uns com os outros sem a interveno de nenhum controlador. A opo por este modelo adequada a redes relativamente pequenas com uma topologia em estrela, como a de computadores conectados diretamente a um nico switch de rede, pois descentraliza e agiliza o processo de comunicao entre os processadores por possibilitar comunicaes simultneas, e diminui o trfego de dados na rede em comparao a um modelo mestre-escravo em que os dados precisam vir de um computador escravo para o computador mestre para ento serem enviados novamente a outro computador escravo. A maior complexidade do gerenciamento das comunicaes resultante foi resolvida com um esquema genrico de fcil implementao e bom desempenho desenvolvido a partir de um padro de comunicao circular e alternado. Nas implementaes feitas, a leitura de dados feita individualmente por cada processador a partir de seu disco rgido local, e o valor das variveis nodais agrupado em um dos computadores ao final do processo de soluo ou a cada determinado nmero de passos nos processos de integrao no tempo. A diviso de tarefas utilizada empregou o particionamento nodal da estrutura de dados, baseado no pressuposto de que o esforo computacional associado a cada n da malha constante, e em um indicador inicial da capacidade de processamento de cada processador, como por exemplo a freqncia do processador. Desta forma, a malha de elementos finitos correspondente ao problema foi tratada como um sistema de equaes desacopladas dentro de cada iterao dos processos de soluo, e o problema de dividir tarefas entre processadores foi trabalhado como dividir equaes. A diviso da malha segundo sua menor dimenso geomtrica para definir as cargas de trabalho de cada processador com a menor interface possvel e, portanto, menor comunicao de dados, foi tratada como dividir um sistema de equaes segundo sua menor dimenso. Para tanto, dois tratamentos de malhas, baseados em reordenaes nodais para minimizao da largura de banda da matriz do sistema de equaes, foram utilizados para minimizar o volume de comunicao de dados no processo paralelo de soluo. Esses tratamentos podem ser considerados como variantes do mtodo global de particionamento em faixas (stripwise partitioning STRIP)(DORNELES, 2003) e do mtodo
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

52

de bisseco coordenada recursiva ou RCB (Recursive Coordinate Bissection) (FOX et al. 1994). Elementos fantasmas (ghosts elements) so empregados para minimizar a comunicao entre processadores, s custas de redundncia no esforo computacional (Elias et al. 2008, Demkowicz et al., 2007). O balanceamento da cargas de trabalho feito no incio do processo de soluo de forma esttica simulando-se um determinado nmero de iteraes e redistribuindo os ns da malha entre processadores em funo do tempo de processamento individual at que o equilbrio seja alcanado. Esta metodologia aplicvel a processos de soluo em que o esforo computacional constante ao longo das iteraes. (KWOK et al., 1999) A estrutura de dados utilizada foi a Elemento-por-Elemento (Element-by-Element ou EBE) para todos os algoritmos, evitando a necessidade de montagem de matrizes globais que, em geral, inviabilizam a anlise de problemas grandes pelas necessidades de memria a elas associadas. Uma vez otimizados para paralelismo de memria distribuda, os cdigos de algumas aplicaes foram modificados para execuo em configuraes de memria compartilhada com o uso da API OpenMP. Todos os laos de ns e elementos no relacionados a operaes de entrada e sada foram tornados paralelos, e estruturas de dados auxiliares foram criadas quando necessrias para remover a dependncia de dados, evitando o alto custo computacional associado s operaes de sincronizao. Os algoritmos selecionados para paralelizao so o Mtodo dos Gradientes Conjugados para a soluo de sistemas de equaes lineares com os precondicionadores Diagonal e de Cholesky, o esquema explcito de Taylor-Galerkin com um passo e iteraes utilizado na soluo de problemas de escoamentos compressveis em regime transnico e supersnico, incluindo consideraes sobre o emprego da tcnica de sub-ciclos para integrao no tempo com mltiplos passos de tempo, o esquema explcito de Taylor-Galerkin de dois passos utilizado na soluo de problemas de escoamentos incompressveis em regime sub-snico e o algoritmo para soluo de problemas de Interao Fludo-Estrutura usando acoplamento particionado em que o fludo resolvido pelo esquema explcito de Taylor Galerkin de 2 passos e a estrutura pelo mtodo implcito de Newmark no contexto -generalizado. Os algoritmos foram implementados para problemas tridimensionais empregando elementos

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

53

finitos hexadricos ou tetradricos com integrao reduzida realizada de forma analtica para maior velocidade computacional (Engelmam et al. 1982, Shultz, 1997, Duarte filho, 2002)

1.9 ORGANIZAO DO TRABALHO


O presente texto est organizado da seguinte forma: No presente captulo feita uma apresentao do problema de pesquisa, uma contextualizao de sua importncia, e so abordados principais tpicos envolvidos na paralelizao de cdigos computacionais cientficos para simulao numrica, em especial com o emprego do Mtodo dos Elementos Finitos, e sobre os algoritmos para a soluo de problemas de Dinmica dos Slidos e Dinmica dos Fludos com nfase para grandes estruturas de dados. Finalmente, so indicados os objetivos e apresentada a metodologia empregada. No captulo 2 discutido o problema da diviso de tarefas na paralelizao de cdigos de elementos finitos, em especial para configuraes de mquinas paralelas com memria distribuda, abordando aspectos relacionados diviso da estrutura de dados atravs de partio nodal, redundncia do esforo computacional, comunicao de dados entre processadores e previso da velocidade de processamento dos mesmos. Dois processos de diviso de tarefas baseados em reordenao nodal so propostos para minimizar a comunicao de dados e a redundncia de esforo computacional, e o padro de comunicao entre processos decorrente de cada um deles avaliado para identificao de cenrios de aplicao. Por fim, uma forma de balanceamento das cargas de trabalho para solues iterativas proposta. No captulo 3 apresentado o problema do ordenamento dos processos de comunicao quando h a necessidade de troca de dados entre um nmero muito grande de processadores. No captulo 4 so mostrados os algoritmos empregados na soluo de problemas de Dinmica dos Slidos e Dinmica dos Fludos que foram selecionados para aplicaes paralelas em configuraes de memria distribuda., detalhando o nmero de processos de comunicao necessrios e etapa do algoritmo onde os mesmos ocorrem, e quais os dados envolvidos em tais processos.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

54

No captulo 5 so mostrados os resultados de desempenho paralelo obtidos com os algoritmos apresentados no captulo 4 em diversas configuraes de memria distribuda. Testes com clusters temporrios e permanentes, homogneos ou no quanto capacidade de processamento dos computadores envolvidos, com diferentes nmeros de computadores e diferentes velocidades de rede, com estruturas de dados de diversos tamanhos com malhas estruturadas e no estruturadas so apresentados e os resultados obtidos discutidos. No captulo 6, o algoritmo do esquema de Taylor-Galerkin de um passo com iteraes para a soluo de problemas de escoamento transnico e supersnico, implementado para elementos tetradricos e hexadricos, utilizado como base para uma srie de testes em configuraes de memria compartilhada e configuraes hbridas de memria compartilhada e distribuda. Os resultados obtidos so discutidos em funo do tipo do elemento, tamanho do problema e forma de paralelismo empregada. Finalmente, no capitulo 7 so apresentadas concluses e recomendaes para trabalhos futuros.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

55

2 PARTICIONAMENTO DOS DADOS E BALANCEAMENTO

2.1 PRINCPIOS BSICOS


Em um cdigo paralelo, comum a existncia de barreiras de sincronizao, etapas do algoritmo implementado em que todos os processadores lgicos envolvidos no processamento precisam alcanar para que cada um, individualmente, possa prosseguir na execuo do cdigo. As barreiras de sincronizao so geralmente implementadas quando o valor de uma dada varivel calculada por um determinado processador lgico necessria para o processamento dos dados de um ou de todos os outros processadores envolvidos. Um dos fatores chave para a obteno do mximo desempenho computacional em um cdigo paralelo garantir que em nenhum momento os processadores lgicos envolvidos estejam ociosos. Quando uma diviso de tarefas ou carga de trabalho computacional tima no obtida, alguns processadores iro processar as tarefas a eles alocadas mais rapidamente que outros, aguardando pelos demais em uma barreira de sincronizao. Como a execuo do cdigo no prossegue sem que todos os processadores tenham alcanado a barreira de sincronizao, o tempo total de processamento do conjunto o tempo de processamento do processador mais lento, aqui entendido como aquele que leva mais tempo para processar as tarefas a ele alocadas. Em um conjunto de processadores idnticos, a diviso de tarefas tima seria a diviso uniforme, onde cada lao do cdigo computacional teria suas iteraes igualmente divididas entre os processadores presentes. Para que as tarefas alocadas fossem absolutamente idnticas, os laos no poderiam conter instrues condicionais. Se a diviso uniforme dos laos pode ser eficientemente obtida em mquinas paralelas de memria compartilhada, o mesmo no pode ser dito para mquinas paralelas de memria

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

56

distribuda, pois no possvel utilizar com eficincia uma estratgia de paralelizao baseada na diviso de cada lao do programa. Considere-se um cdigo de Elementos Finitos para anlise de problemas de Mecnica dos Slidos. Enquanto uma srie de laos relacionados a elementos ou ns so homogneos, realizando as mesmas operaes para todos os elementos ou ns envolvidos, outros, relacionados por exemplo a condies de contorno ou a cargas, no o so. Fenmenos no lineares como plasticidade e dano, por serem de caracterstica local, tambm afetam a carga de trabalho computacional associada a cada n ou elemento de forma desigual. Garantir que todos os laos sejam divididos igualmente entre os processadores corresponde a atribuir a um dado processador um grupo de elementos em um lao que calcula as matrizes de rigidez, e um grupo diferente de elementos em um lao ao calcular cargas de volume ou de superfcie. Grupos diferentes de elementos e ns atribudos a cada processador a cada lao levam a uma intensa troca de dados entre os processadores envolvidos, pois as variveis correspondentes a um determinado n em um dado lao de um dado processador tm de ser passadas para um processador diferente no lao seguinte. Em uma mquina paralela com memria distribuda, uma troca intensa de informaes entre processadores corresponde a trfego intenso na rede de intercomunicao, que tende a ser lenta e de alta latncia, levando, por conseqncia, a um cdigo ineficiente. As mesmas consideraes podem ser aplicadas a cdigos de Elementos Finitos para anlise de problemas de Mecnica dos Fludos ou de Interao Fludo-Estrutura. Quando o conjunto composto por processadores com desempenhos computacionais desiguais, como o caso de clusters formados por ns heterogneos e de mquinas de memria compartilhada com processadores cujos ncleos fsicos podem ser divididos em dois ou mais ncleos lgicos com diferente poder de processamento, a diviso de tarefas uniforme deixa de ser tima e a diferena de velocidade de processamento dos participantes precisa ser considerada. Em mquinas de memria compartilhada, isso pode ser feito dividindo cada lao do cdigo em um grande nmero de grupos com um nmero pequeno de iteraes. Inicialmente um grupo de iteraes designado a cada processador e um novo grupo alocado de forma independente a cada processador na medida em que o processamento do grupo anterior encerrado. Processadores mais rpidos processam um nmero maior de grupos de iteraes que processadores mais lentos. Contudo, em mquinas de memria distribuda, essa abordagem somente pode ser implementada s expensas de uma intensa

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

57

comunicao atravs da rede e, na maioria dos casos, ineficincia do desempenho computacional. Para que uma implementao paralela seja igualmente eficiente em mquinas de memria compartilhada e distribuda, uma alternativa possvel que a diviso de tarefas seja baseada em grupos de variveis alocadas aos diversos processadores que permaneam constantes ao longo do processamento. Especificamente em cdigos de Elementos Finitos, uma diviso de tarefas baseada em ns ou em elementos, na qual cada processador fica responsvel por um mesmo grupo ao longo de todo o processamento, parece adequada. Contudo, se uma diviso de tarefas varivel ao longo das vrias partes do cdigo a ser processado traz consigo um alto trfego de dados entre os processadores, a manuteno de uma diviso de tarefas nica ao longo de todo o cdigo traz consigo o problema de quantificar a priori a velocidade de processamento relativa de cada processador em configuraes no homogneas, em que os processadores lgicos tem diferentes capacidades de processamento. Do ponto de vista do hardware , a arquitetura de cada processador, sua freqncia, quantidade de memria cache e a quantidade de memria principal so fatores que devem ser levados em considerao para a determinao da velocidade relativa. Do ponto de vista do cdigo a ser processado, a existncia de laos baseados em elementos e laos baseados em ns entre barreiras de sincronizao torna difcil a escolha de sobre quais desses elementos a diviso de tarefas ser baseada. O fato de alguns elementos ou ns trazerem consigo uma carga de trabalho computacional maior pelo fato de a eles estarem associados, por exemplo, cargas, condies de contorno ou fenmenos fsicos locais dificulta a diviso do conjunto total de dados entre os processadores envolvidos em grupos cuja velocidade de processamento relativa possa ser prevista.

2.2 DIVISO DE TAREFAS BASEADAS EM NS


No Mtodo dos Elementos Finitos, toda carga de trabalho computacional est associada aos ns e aos elementos nos quais o domnio foi discretizado. Qualquer um deles poderia ser utilizado como parmetro para a diviso de tarefas computacional em uma soluo paralela. Uma diviso baseada em ns chamada de particionamento nodal, ao passo que a baseada em elementos chamada de particionamento dual (ELIAS et al. 2008). Como as tarefas designadas a cada processador lgico no so independentes, faz-se necessrio que cada
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

58

processador comunique a alguns outros ou a todos os demais parte ou a totalidade dos resultados obtidos no seu processamento, e da mesma forma, receba o resultado de outros, tornando a comunicao de dados entre os processadores implcita diviso de tarefas. Quando a comunicao de dados entre processadores tem um custo computacional muito grande, pode ser vantajosa uma implementao do cdigo com redundncia, onde cada processador trabalha tambm sobre parte da tarefa atribuda a outros processadores para diminuir a necessidade de comunicao de dados com os mesmos. Ambas alternativas, comunicao de dados e redundncia, implicam em perda de eficincia computacional, uma vez que parte do tempo total de processamento gasto ou em comunicao de dados ou no processamento de um mesmo conjunto de dados por mais de um processador de forma redundante. O balano entre uma maior ou menor presena de comunicao de dados e redundncia no cdigo implementado depende do algoritmo a ser paralelizado e do tipo de mquina paralela para o qual o cdigo otimizado. Em mquinas de memria compartilhada, a eliminao da redundncia parece vantajosa, visto que a comunicao de dados se d atravs da memria, com um custo computacional baixo. Por outro lado, em mquinas paralelas de memria distribuda onde processadores poderosos so interconectados por uma rede lgica comparativamente lenta, a minimizao da comunicao entre processadores, mesmo s custas de redundncia, parece ser a alternativa mais eficiente. As variveis nodais so as variveis em funo das quais o sistema de equaes resultante montado. Nos mtodos explcitos para Mecnica dos Fludos, dentro de cada passo na qual o tempo discretizado, as equaes que representam a discretizao espacial so desacopladas, o que permite a soluo independente de sub-conjuntos das mesmas, sem nenhuma dependncia com a ordem de soluo das equaes. Na soluo de sistemas de equaes usando processos iterativos, as equaes so tambm desacopladas dentro de cada iterao, permitindo a separao em sub-conjuntos e independncia na ordem de soluo. Ambas as situaes podem ser caracterizadas por:

xij +1 = f x1j , x2j , , xnj

(2.1)

onde xi representa o valor da i-sima equao nodal, j representa a iterao j (na soluo iterativa de um sistema de equaes) ou o tempo t (na discretizao temporal) e j+1 representa a iterao seguinte ou o tempo t+t.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

59

Essas caractersticas apontam para uma diviso de tarefas baseadas nos ns (mais especificamente nas variveis nodais), vendo a soluo do problema em elementos finitos como um conjunto de equaes independentes que pode ser divido em sub-conjuntos menores resolvidos simultaneamente dentro de cada iterao ou passo de tempo. Os elementos nos quais a malha discretizada so os responsveis pelo acoplamento das equaes entre cada iterao. Para que se possa calcular o valor das variveis nodais xij +1 em um sub-conjunto qualquer em uma iterao j+1, preciso no somente conhecer o valor dessas mesmas variveis ao final de iterao j mas tambm de todas as demais variveis pertencentes a outros sub-conjuntos e que a elas estejam acopladas, ou seja, o valor das variveis nodais de todos os ns pertencentes a elementos que estejam conectados ao conjunto de ns atribudos a um dado processador. Desta forma, ao se dividir uma determinada malha de elementos finitos em grupos de ns alocados a processadores lgicos diferentes, o conjunto de dados a ser comunicado entre os processadores fica automaticamente definido como o valor das variveis nodais correspondentes aos ns de outros grupos pertencentes aos elementos conectados os ns do grupo considerado. Mesmo o sistema de equaes resultante sendo postulado em ns (ou variveis nodais), boa parte da implementao do Mtodo de Elementos Finitos resulta em esforo computacional associado aos elementos (como o clculo das matrizes de rigidez e a organizao de solues iterativas de sistemas de equaes em esquemas elemento a elemento). Como muitas vezes difcil implementar cdigos nos quais o processamento possa ser feito nos elementos somente para os ns pertencentes a um dado grupo, e no para o elemento como um todo, a diviso de tarefas baseada em ns acarreta em redundncia, representada pelos elementos conectados aos ns de um grupo mas que esto conectados tambm a ns de outros grupos, os elementos

comuns ou elementos fantasmas (ghost elements). O esforo computacional associado aos elementos comuns feito de forma redundante por todos processadores cujos grupos
contenham ns conectados a esses elementos. As caractersticas associadas a essa diviso de tarefas pode ser vista na figura 2.1, onde o esforo computacional referente a uma malha com 24 ns e 15 elementos dividido igualmente entre dois processadores lgicos, cada um responsvel por 12 ns (conjuntos azul, e amarelo). A diviso feita segundo a ordenao nodal existente na malha (por linha), com o primeiro grupo sendo composto pelos 12 primeiros ns e o segundo pelos 12 seguintes. Com a mesma cor dos ns esto os elementos associados exclusivamente a cada processador, e em
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

60

cinza, os elementos comuns. Os retngulos azul e amarelo externos abrangem a totalidade de elementos prprios e comuns sob a responsabilidade de cada processador, bem como os ns cujas variveis so necessrias s equaes alocadas a cada processador, ou seja, os ns do grupo de cada processador e os ns de outros grupos conectados a elementos comuns conectados aos ns do grupo de cada processador.
1 6

19

24

Figura 2.1: Partio nodal da malha baseada em um ordenao arbitrria dos ns. Por esta diviso de tarefas, o processador lgico azul fica responsvel pelos ns 1 a 12 e por 10 elementos, e o processador amarelo pelos ns 13 a 24 e por 10 elementos.. Assim, os processadores trabalham sobre 20 elementos, contra 15 se a malha inteira fosse processada por um nico processador, levando a uma eficincia no processamento dos elementos de 15/20 = 75%. Em termos de comunicao de dados, o processador azul precisa das variveis nodais associadas a 6 ns do processador amarelo, e este precisa de 6 ns do processador azul, totalizando um trfego em rede das variveis nodais associadas a 12 ns a serem comunicadas entre os processadores a cada iterao do processo de soluo. O problema da diviso de tarefas pode ser visto geometricamente como um problema de particionar uma malha, mas tambm pode ser visto de forma equivalente como particionar um sistema de equaes. A malha representada na figura 2.1 equivalente ao sistema de equaes mostrado de forma simblica na figura 2.2. A montagem baseada na ordenao nodal, de modo que o processador 1 ficou responsvel pelas equaes de 1 a 12, que correspondem aos ns 1 a 12, e o processador 2 as equaes de 13 a 24, correspondentes aos ns 13 a 24. Em um processo de soluo iterativo, o valor de uma varivel nodal na iterao i+1, representada pelas posio correspondente na diagonal principal, seria calculado a partir do valores de todas as variveis a elas relacionada, representadas pelas posies em cinza na linha correspondente. Contudo, nem todas as variveis nodais necessrias esto alocadas ao
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

61

mesmo processador. Para exemplificar, 2 variveis nodais pertencentes ao grupo do processador 1, marcadas em azul escuro, necessitam das variveis indicadas em amarelo claro, as quais pertencem ao processador 2. As posies correspondentes dessas variveis esto marcada em laranja na diagonal principal do sistema. Fica claro perceber que o nmero de variveis nodais pertencentes ao processador 2 que so necessrias ao processador 1 esto relacionadas com a semi-largura de banda do sistema.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 2 3 4 5 6 7 8 9 0 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Figura 2.2: Partio de um sistema de equaes baseada em um ordenao arbitrria dos ns. Do ponto de vista geomtrico, o particionamento que corresponde menor interface entre as partes (menor nmero de elementos comuns, associado menor redundncia de esforo computacional, e menor nmero de ns de interface, associados ao menor trfego de dados pela rede) aquele representado pelo plano normal maior dimenso da malha. Se o particionamento feito atravs da ordem dos ns, a melhor diviso corresponderia ordenao mostrada na figura 2.3 (por coluna). Cada processador fica responsvel por 9 elementos. A eficincia de processamento dos elementos correspondente a essa diviso de 15 / 18 = 83,3% e o trfego em rede de 8 ns para cada iterao do processo de soluo.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

Processador 2

Processador 1

62

21

24

Figura 2.3: Partio nodal da malha baseada em um ordenao tima dos ns. Do ponto de vista do sistema de equaes, mudar a orientao do plano geomtrico para que a diviso seja feita com a menor interface possvel equivalente a mudar a ordem das variveis para que a diviso encontra a menor largura de banda possvel. O sistema de equaes correspondente figura 2.3 est mostrado esquematicamente na figura 2.4. A menor semilargura de banda corresponde a um menor nmero de variveis nodais necessrias s equaes do processador 1 pertencentes ao processador 2, e vice-versa.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 2 3 4 5 6 7 8 9 0 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Figura 2.4: Partio de um sistema de equaes baseada em um ordenao tima dos ns. Se o sistema de equaes tem uma largura de banda constante, atribuir conjuntos no uniformes de equaes aos processadores leva ao mesmo nmero de variveis que devem ser comunicadas entre os processadores e ao mesmo nmero de elementos comuns. Havendo
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

Processador 2

Processador 1

63

variao da largura de banda ao longo do sistema, uma ordenao eficiente garante que ela mnima em qualquer ponto, e portanto a diviso em 2 partes corresponder sempre melhor opo de diviso, qualquer que seja o nmero de equaes atribudo a cada parte. Considerando que o esforo computacional associado soluo de cada equao uniforme, uma diviso de tarefas entre processadores heterogneos pode ser feita atribuindo-se a cada uma delas um nmero de equaes (ou de ns) proporcional sua capacidade de

processamento, seguindo diretamente a ordenao nodal tima. Na figura 2.5 a ordenao nodal anterior utilizada para dividir tarefas entre dois processadores lgicos com capacidades de processamento relativas de 1 e 1,4, de forma que o primeiro processador fica responsvel por 10 ns e o segundo por 14. A eficincia de processamento de elementos de 15/19 = 78,9%, e o trfego na rede de 10 ns para cada iterao do processo de soluo. A diviso no uniforme de tarefas pode ser decorrente tanto da presena de processadores lgicos com velocidades de processamento diferentes quanto de condies de contorno, de carregamento e de no linearidade fsica ou geomtrica no uniformemente distribudas pela malha, fazendo com que o processamento de um pequeno grupo de ns submetidos a condies diferenciadas exija tanto esforo computacional quanto um grupo maior sem essas condies.

21

24

Figura 2.5: Partio nodal no uniforme da malha baseada em um ordenao tima dos ns. O problema de encontrar uma ordenao nodal eficiente para minimizar o nmero de

elementos comuns (associados redundncia de esforo computacional) e de ns ligados a


estes elementos (associados ao trfego em rede) geometricamente pode ser entendido como subdividir a malha segundo sua menor dimenso e, do ponto de vista do sistema de equaes associado, subdividir o sistema onde ele tenha a menor largura de banda. Ordenar os ns da malha para que as divises ocorram segundo um menor nmero de ns e elementos em tudo
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

64

similar ao problema de minimizao de largura de banda da matriz de rigidez global enfrentado pelos solvers diretos. Os algoritmos de reordenao nodal desenvolvidos para esses solvers atuam sobre o sistema de equaes ordenando os ns segundo a direo de menor largura (seja ela fsica da malha ou relacional dos ns), fazendo com que, se aplicadas para o problema de diviso de tarefas, tornem a malha como que fisicamente estreitas e propiciem divises com o menor nmero de elementos comuns e de ns de interface.

2.3 OTIMIZAO DA DIVISO DE TAREFAS ATRAVS DE UMA NICA REORDENAO NODAL PRVIA
O primeiro tratamento proposto para otimizar a diviso de tarefas baseada em ns consiste na execuo de uma nica reordenao nodal prvia da malha atravs de um algoritmo minimizador de banda, com os grupos de ns alocados a cada processador lgico definidos por uma diviso da malha original segundo a ordenao nodal obtida e proporcional ao desempenho relativo de cada processador. O algoritmo de minimizao utilizado baseou-se no trabalho de Teixeira (1991), e composto por uma reordenao de elementos, segundo os critrios de Silvester e Auda (1984) para reduzir o Front (IRONS, 1970, HINTON e OWEN, 1977), seguida de uma reordenao nodal segundo os critrios de Hoit e Willson (1983) em seu algoritmo PFM (Profile-Front Minimization). Como ndice de desempenho relativo de cada ncleo utiliza-se inicialmente a freqncia do processador. Este tratamento ser referenciado doravante como 1RN. Pode-se considerar o tratamento 1RN como uma variante do mtodo global de particionamento em faixas (stripwise partitioning) conhecido como STRIP (DORNELES, 2003). Enquanto o STRIP divide a malha geometricamente segundo faixas horizontais ou verticais proporcionais capacidade de processamento de cada computador, o tratamento 1RN divide o sistema de equaes com a largura de banda minimizada em faixas proporcionais capacidade de processamento de cada processador. Como o sistema de equaes tratado como uma lista de equaes, dividir em faixas corresponde a simplesmente dividir a lista ordenada segundo o minimizador de banda em grupos com nmero de equaes proporcionais a capacidade de cada processador. O tratamento 1RN bastante eficiente na reduo do nmero de elementos comuns e de ns no trfego em rede para um nmero pequeno de processadores lgicos em malhas
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

65

geometricamente alongadas, que tenham uma direo predominante (grandes sistemas de equaes com largura de banda pequena). Com este tratamento, desde que o nmero de equaes alocadas a cada processador seja maior que a semi-largura de banda do sistema, cada grupo de ns tem interface com no mximo dois grupos vizinhos, correspondentes ao processador imediatamente anterior e imediatamente posterior. Esta caracterstica especialmente interessante para as seguintes configuraes: a) configuraes nas quais a comunicao entre processadores depende mais da latncia que da taxa de transferncia (throughput), uma vez que um reduzido nmero de processos de comunicao realizado (HENDDRICKSON e LELAND, 1995). Problemas pequenos, nos quais cada processador trabalha sobre uma quantidade reduzida de dados entre cada comunicao, e a quantidade de dados a ser comunicada entre os processadores reduzida, em mquinas paralelas de memria distribuda, se enquadram nesta configurao; b) configuraes nas quais vrios processadores lgicos compartilham uma nica interface de rede, como o caso de cluster formados por nodos com mltiplos processadores / mltiplos ncleos. A comunicao entre os processadores / ncleos de cada computador permanecem internas ao prprio computador, sendo feita atravs da memria e no sobrecarregando o trfego em rede. As nicas comunicaes que utilizariam a interface de rede seriam as do primeiro processador / ncleo do computador com o imediatamente anterior (externo) na ordem do cluster, e o do ltimo processador / ncleo com o imediatamente posterior (externo) na ordem do cluster. Com uma nica interface de rede para atender aos diversos processadores lgicos internos, minimizar a comunicao em rede com processadores lgicos externos ao computador altamente desejvel; c) configuraes de memria distribuda nas quais a rede de comunicao est dividida fisicamente em duas sub-redes, como clusters onde o nmero de portas do switch de rede disponvel menor que o nmero de nodos do cluster a serem conectados, necessitando de 2 ou mais switches independentes: qualquer n do cluster poderia servir de ponte para comunicao entre duas redes, bastando para isso estar conectado a cada par de switches por uma interface de rede independente.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

66

2.4

OTIMIZAO

DA

DIVISO

DE

TAREFAS

ATRAVS

DE

REORDENAES NODAIS SUCESSIVAS


Quando o nmero de processadores lgicos pelos quais deve ser feita a diviso de tarefas se torna muito grande, o tratamento 1RN deixa de ser eficiente, pois a direo inicial na qual h um nmero mnimo de elementos comuns muda para cada grupo de ns medida que os grupos vo sendo sub-divididos em grupos menores. Na figura 2.6, percebe-se que a diviso da malha da figura 2.3 em quatro partes, correspondendo a quatro processadores lgicos de igual capacidade, resultou em 22 elementos

comuns (4 para os grupos verde e lils, 7 para os grupos azul e amarelo) e 28 ns a serem
comunicados em rede, o que no corresponde diviso de tarefas mais eficiente. Cada um dos grupos de ns da figura 2.3 foi subdividido em 2, mas no segundo a sua menor dimenso, e sim segundo a maior (vertical), seguindo a ordenao nodal (1 a 6, 7 a 12, 13 a 18, 19 a 24).

21

24

Figura 2.6: Diviso ineficiente de tarefas para quatro processadores lgicos segundo o tratamento 1RN. A diviso geomtrica da figura 2.6 corresponde diviso do sistema de equaes mostrada na figura 2.7. O processador 2 (em azul), necessita das equaes nodais de 5 ns do processador 1 (em verde) e 4 do processador 3 (em amarelo).

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 2 3 4 5 6 7 8 9 0 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Proc. 1 Proc. 3 Proc. 2

Figura 2.7: Partio ineficiente de um sistema de equaes por quatro processadores lgicos. Geometricamente, a melhor diviso seria obtida primeiro dividindo a malha como um todo por um plano normal sua maior dimenso (vertical), repetindo o processo a seguir para cada uma da partes, consideradas como malhas independentes (plano horizontal). Essa diviso est mostrada na figura 2.8.

21

24

Figura 2.8: Diviso tima de tarefas para quatro processadores lgicos A diviso resultante, onde cada grupo da figura 2.4 foi subdividido segundo sua menor dimenso, mais eficiente, com 16 elementos comuns (4 para cada grupo) e 24 ns a serem comunicados em rede.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

Proc. 4

Processador 3+4

Processador 1+2

68

Como o algoritmo de minimizao de banda equivalente a determinar a maior dimenso fsica da malha (sendo a separao das equaes em grupos equivalente a seccionar a malha segundo o plano normal a essa dimenso), um particionamento equivalente ao geometricamente feito na figura 2.8 pode ser obtido reordenando-se a malha original uma primeira vez para a minimizao da largura de banda e dividindo-se as equaes em dois grupos, segundo essa ordenao, conforme figuras 2.9 e 2.10.
1 21 1 9 13 21

24

12

16

24

Figura 2.9: Diviso de tarefas por bisseco para quatro processadores lgicos primeira etapa.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 2 3 4 5 6 7 8 9 0 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Proc. 1 Proc. 3 Proc. 4 Proc. 2

Figura 2.10: Partio do sistema de equaes por bisseco para quatro processadores lgicos primeira etapa. Cada grupo passa a ser considerado geometricamente como uma malha independente e como um sistema de equaes independentes. Os termos das equaes que fazem a ligao entre as variveis de cada grupo, marcados em marrom na figura 2.10, so considerados como no pertencentes a nenhum dos grupos.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

Processador 3+4

Processador 1+2

69

Cada parte sofre ento uma nova reordenao nodal para minimizao da largura de banda, com os ns assumindo a nova numerao em azul nas figuras 2.11 e 2.12. Os termos em marrom, correspondentes s variveis de um grupo que so necessrias s equaes do outro grupo, acompanham a reordenao. Cada parte agora pode ser dividida em dois conjuntos de ns segundo a nova ordenao nodal de cada parte. Geometricamente isso d origem diviso de domnios mostrada na figura 2.8. A correspondente diviso no sistema de equaes pode ser visto na figura 2.13.
1 1 9 3 13 13 21 15

10 4

12 12

22 16

24 24

Figura 2.11: Reordenao nodal para cada parte da malha de forma independente.

1 5 9 2 6 10 3 7 11 4 8 12 13 17 21 14 18 22 15 19 23 16 20 24 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 5 9 2 6 10 3 7 11 4 8 12 13 17 21 14 18 22 15 19 23 16 20 24 1 2 3 4 5 6 7 8 9 0 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Proc. 1 Proc. 3 Proc. 4 Proc. 2

Figura 2.12: Reordenao nodal para cada parte do sistema de equaes de forma independente. Na figura 2.13 esto marcadas sobre a diagonal principal do sistema, em azul escuro, algumas das variveis pertencentes ao segundo processador. Na linha correspondente a cada uma delas, esto marcadas as variveis necessrias quela equao e que pertencem a outros
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

Processador 3+4

Processador 1+2

70

processadores, na cor do respectivo processador. Marcados sobre a diagonal principal esto as variveis correspondentes dos outros processadores.
1 5 9 2 6 10 3 7 11 4 8 12 13 17 21 14 18 22 15 19 23 16 20 24 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 5 9 2 6 10 3 7 11 4 8 12 13 17 21 14 18 22 15 19 23 16 20 24 1 2 3 4 5 6 7 8 9 0 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Proc. 1 Proc. 3 Proc. 4 Proc. 2

Figura 2.13: Sistema de equaes dividido com um mnimo de comunicao de dados entre processadores. Esse processo, denominado doravante de tratamento nRN (pois implica em n reordenaes nodais) pode ser considerado como uma variante do mtodo de bisseco coordenada recursiva ou RCB (Recursive Coordinate Bissection) (FOX et al. 1994), mas ao invs de ser aplicado geometricamente sobre a malha aplicado diretamente sobre o sistema de equaes, com a minimizao da largura de banda fazendo o papel da identificao da direo de bisseco. Para garantir que o processo possa ser aplicado para um nmero qualquer de processadores heterogneos quanto capacidade de processamento, e no apenas potncias de 2, o seguinte algoritmo utilizado: a) Uma reordenao nodal para minimizao da banda feita para toda a malha, aps o qual a mesma subdividida em 2 grupos: um com o nmero de processadores correspondente maior potncia de 2 que seja inferior ao nmero total de processadores lgicos pelos quais deva ser feita a diviso, e um segundo correspondente ao restante dos processadores. O nmero de ns correspondente a

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

Processador 3+4

Processador 1+2

71

cada grupo proporcional soma dos desempenhos relativos dos processadores lgicos que a ele pertencem; b) a mesma metodologia aplicada novamente a cada um dos grupos de ns: inicialmente feita uma reordenao nodal para minimizao de banda somente dos ns pertencentes quele grupo, aps a qual o grupo dividido em 2 subgrupos de ns, um correspondendo maior potncia de 2 que inferior ao nmero de processadores lgicos do grupo, e outro subgrupo com o restante dos processadores. O nmero de ns da malha pertencente a cada subgrupo proporcional soma do desempenho relativo dos processadores lgicos pertencentes ao subgrupo; c) o passo b) repetido at que a malha original esteja dividida em tantos subgrupos quantos forem os processadores lgicos do conjunto. A aplicao deste tratamento est esquematizada nas figuras 2.14 a 2.18, onde uma malha genrica original foi dividida em 15 partes, cada uma correspondendo a um processador lgico. Os nmeros em cada parte correspondem ao nmero de processadores alocados em cada diviso e as linhas com dupla seta correspondem reordenao nodal para minimizao de banda, com a direo das setas indicando a direo de maior dimenso da malha para cada subdiviso ou parte da malha. A malha deve ser subdividida no sentido perpendicular ao da linha de dupla seta. I. Malha original cujos ns devem ser divididos em 15 grupos, 1 para cada processador lgico (figura 2.14).

15

Figura 2.14: Malha inicial onde o tratamento nRN ser aplicado .

II. Primeira reordenao nodal para minimizao da largura de banda. O grupo original correspondente a 15 processadores lgicos subdividido em 2, um correspondendo a 7 processadores e outro a 8, com nmero de ns em cada grupo proporcional soma das
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

72

capacidades de processamento relativas dos correspondentes processadores do grupo (figura 2.15).

Figura 2.15: Primeira diviso do tratamento nRN.

III. O grupo de ns correspondente aos 7 processadores reordenado como se fosse uma malha independente para minimizao de banda e subdividido em um subgrupo de ns correspondente a 3 processadores outro a 4. O grupo correspondente a 8 processadores sofre igual processo (figura 2.16).

Figura 2.16: Segunda etapa de diviso do tratamento nRN.

IV. Cada subgrupo de ns reordenado como se fosse uma malha independente e subdividido de forma proporcional velocidade relativa dos processadores lgicos correspondentes (figura 2.17).

2 1

2 2

2 2

2 2

Figura 2.17: Terceira etapa de diviso do tratamento nRN.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

73

V. As reordenaes e subdivises sucessivas so feitas at que se obtenha tantos subgrupos quantos processadores lgicos. A quantidade de ns da malha alocada a cada processador proporcional a sua capacidade de processamento relativa.

1 1 1

Figura 2.18: Ultima etapa do tratamento nRN Ao contrrio do tratamento 1RN, o tratamento nRN faz com que cada processador lgico presente no conjunto tenha elementos comuns e processos de troca de dados com vrios outros processadores presentes no conjunto, e no apenas o imediatamente anterior e posterior. Contudo, a quantidade de elementos comuns e de dados comunicados entre os processadores menor que no tratamento 1RN. Desta forma, tende a ser vantajoso nas seguintes configuraes: a) configuraes nas quais a comunicao entre processadores depende mais da taxa de transferncia (throughput) que da latncia, uma vez que um grande nmero de processos de comunicao realizado. Problemas grandes, nos quais cada processador trabalha sobre uma grande quantidade de dados entre cada comunicao, e a quantidade de dados a ser comunicada entre os processadores grande, em mquinas paralelas de memria distribuda, se enquadram nesta configurao; b) configuraes nas quais poucos processadores lgicos compartilham a interface de rede. Como no h garantia de que a maior parte da comunicao entre os processadores / ncleos de cada computador permanece interna ao prprio computador, a interface de rede tanto mais solicitada simultaneamente quanto maior for o nmero de processadores / ncleos que ela deve atender; c) configuraes com um grande nmero de processadores lgicos presentes. Os dois tratamentos desenvolvidos, 1RN e nRN, tem custo computacional baixo comparado com os processos de soluo iterativos ou explcitos propriamente ditos, e o tempo de
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

74

processamento necessrio para a execuo de qualquer um deles , em geral, amplamente compensado pelos ganhos em tempo de processamento obtidos em configuraes paralelas. Um exemplo de como os ns e elementos de uma malha real ficam distribudos entre os diversos grupos est mostrado na figura 2.19, onde a malha utilizada no exemplo 5.2.3. para simulao do escoamento transnico em torno de uma esfera foi dividida em 16 grupos. Nenhum tratamento foi aplicado, de modo que a distribuio feita conforme a ordenao dos ns resultante do gerador de malha. Para cada grupo de ns foi atribuda uma cor, conforme as escalas que aparecem na figura. A faixa de cada grupo corresponde a (g 0,25 a g + 0,25), onde g o nmero do grupo, de modo que o valor de grupo dos ns est sempre no centro de cada faixa. Todas as faixas correspondentes a (g + 0,25 a g + 0,75) so cinza, para marcar os

elementos comuns. Se todos os ns de um elemento pertencem a um mesmo grupo, o


elemento como um todo estar colorido com a mesma cor do grupo do n. Caso um elemento possua ns de grupos diferentes, aparecero faixas cinza em sua parte central, tantas mais quanto mais distantes forem os nmeros de grupo dos ns desse elemento. Dessa forma, o esquema de cores utilizado se aproxima bastante daquele utilizado nas figuras 2.1 a 2.8. Pela figura 2.19, percebe-se que o gerador de malha utilizado comeou a gerao dos ns pela superfcie externa, onde h um nmero reduzido de grupos, indicando, aparentemente, uma diviso eficiente pelo reduzido nmero de elementos comuns (em cinza), relacionados com a redundncia de esforo computacional e com a quantidade de dados que devem ser trocados entre os processadores lgicos (as variveis nodais dos ns ligados a esses elementos). Contudo, a vista da superfcie do contorno slido da malha (em detalhe) revela a existncia de um nmero bastante grande de elementos comuns nessa regio, e um corte interno da malha (os dois ltimos detalhes) revela uma proximidade muito grande de diversos grupos diferentes numa mesma regio, com um nmero bastante grande de elementos comuns. importante perceber que no corte interno, h vrios elementos que unem ns de grupos muito diferentes, aparecendo com uma srie de faixas cinza intercaladas com as faixas das cores dos grupos intermedirios aos grupos dos ns, causando a iluso de que o elemento pertence a um grupo ( colorido) e no um elemento comum (em cinza). Uma observao atenta indica que boa parte dos elementos so comuns.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

75

Figura 2.19: Distribuio de ns e elementos em grupos aps diviso de tarefas por ns com a malha sem nenhum tratamento. Malha utilizada no exemplo 5.2.3 para simulao de escoamento transnico em torno de uma esfera. A diviso de tarefas foi efetuada sobre a mesma malha com o tratamento 1RN, e o resultado pode ser visto na figura 2.20. A distribuio dos grupos de ns e elementos uma verso tridimensional daquela indicada nas figuras 1.2 a 1.4, 2.3 e 2.5, com cada grupo fazendo fronteira somente com o grupo imediatamente anterior e imediatamente seguinte. A
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

76

caracterstica pode ser vista tanto na superfcie externa da malha quanto nos trs cortes apresentados. Em relao diviso de tarefas da malha sem tratamento da figura 2.19, percebe-se uma quantidade muito menor de elementos comuns, indicando menor redundncia de esforo computacional e menor trfego de dados entre processadores.

Figura 2.20: Distribuio de ns e elementos em grupos aps diviso de tarefas por ns com a malha com tratamento 1RN. Malha utilizada no exemplo 5.2.3 para simulao de escoamento transnico em torno de uma esfera.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

77

O resultado de uma diviso de tarefas sobre essa malha com o tratamento nRN pode ser visto na figura 2.21, que corresponde a uma verso tridimensional das figuras 1.5 e 2.8. As caractersticas so as mesmas: reduo no nmero de elementos comuns, os quais conectam ns pertencentes a quaisquer grupos, e no somente grupos de nmeros consecutivos. Essa caractersticas podem ser vistas tanto na superfcie externa quanto nos cortes.

Figura 2.21: Distribuio de ns e elementos em grupos aps diviso de tarefas por ns com a malha com tratamento nRN. Malha utilizada no exemplo 5.2.3 para simulao de escoamento transnico em torno de uma esfera.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

78

Os grupos resultantes da diviso de tarefas aplicada sobre uma malha de elementos hexadricos lineares utilizada no exemplo 5.2.2 para simular o escoamento supersnico em torno de um veculo espacial esto mostradas na figura 2.22. Os grupos para a malha original (sem nenhum tratamento) e com o tratamento 1RN so visualmente idnticos, indicando que a ordem utilizada na gerao da malha estruturada resultou em uma malha com a banda minimizada. Prxima parte frontal do veculo os grupos se distribuem como conchas esfricas sobrepostas, e, a partir do corpo cilndrico, como discos circulares vazados empilhados. Ambas distribuies so verses tridimensionais da distribuio caracterstica do tratamento 1RN esquematizado nas figuras 1.2. a 1.4, 2.3 e 2.5. J para o tratamento nRN, os grupos se apresentam tendendo mais a volumes sem nenhuma dimenso preponderante. Na parte frontal da malha, os grupos no aparecem mais como conchas concntricas, mas dividindo a regio esfrica em 4 setores segundo planos radiais, aproximadamente. A partir do corpo cilndrico, as regies so semelhantes s obtidas com os outros tratamentos, mas com o dobro da espessura e divididas ao longo de um plano longitudinal, aproximadamente. A distribuio de grupos obtida se assemelha a uma verso tridimensional das figuras 1.5 e 2.8. Para quantificar o impacto terico dos tratamentos 1RN e nRN sobre o trfego de dados entre processadores lgicos e sobre a redundncia de trabalho computacional, uma malha de aproximadamente 1,5 milhes de elementos tetradricos lineares e 270 mil ns (1,36 milhes de equaes) utilizada para anlise do escoamento tridimensional supersnico em torno de um modelo simplificado de avio (geometria canard / corpo / asa / estabilizador vertical), exemplo 5.2.4, teve seus ns divididos em 16 grupos, correspondendo a um cluster com 16 processadores lgicos no homogneo (processadores com diferentes capacidades de processamento).

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

79

Figura 2.22: Distribuio de ns e elementos em grupos aps diviso de tarefas por ns com a malha original (sem tratamento), com o tratamento 1RN e nRN. Malha utilizada no exemplo 5.2.2 para simulao de escoamento supersnico em torno de um veculo espacial.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

80

Na tabela 2.1 esto apresentados os dados de trfego na rede e redundncia computacional para a malha sendo dividida sem nenhum tratamento, seguindo a ordenao original dos ns decorrente do processo de gerao de malha. Nas colunas esto numerados os processadores lgicos, e nas linhas, para cada processador com o qual h troca de dados, a quantidade de dados recebida desse processador, expressa em milhares de ns (cada n corresponde a 5 graus de liberdade ou 5 variveis de dupla preciso, cada dado ocupando 8 bytes). Os blocos em amarelo indicam que no h comunicao de um processador com ele mesmo. Na linha indicada por Ns est a quantidade total de dados recebidos de outros processadores (em milhares de ns = x 5000 dados = x 40000 bytes). Na linha Elementos est o nmero total de elementos que processado por cada processador lgico, incluindo tanto os exclusivos daquele processador quanto os elementos comuns, em milhares de elementos.

Tabela 2.1: Comunicao de dados entre processadores e redundncia computacional para malha sem tratamento.
Processadores

1 3,5 1,7 9,8 10,1 8,7 9,3 12,2 11,4 11,3 9,7 10,8 11,4 11,8 7,2 7,9 137 308

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ns Elementos

2 2,8 3,0 11,5 11,9 13,0 12,4 10,3 9,3 9,6 12,9 12,2 11,3 10,7 7,5 11,4 147 399

3 1,3 3,2 4,9 3,8 3,5 3,5 3,0 3,0 2,8 1,7 1,6 1,9 2,0 7,3 5,5 48 208

4 3,4 4,2 4,8 7,5 6,1 5,5 5,0 3,6 3,1 4,3 3,0 2,2 1,5 1,2 1,6 54 209

5 3,8 5,0 3,8 7,3 6,8 6,1 5,3 3,9 3,8 4,6 3,5 2,7 1,9 1,1 1,9 58 216

6 3,6 5,8 2,9 6,1 6,7 6,3 5,8 4,6 4,6 5,0 3,7 2,9 2,6 1,8 2,4 61 225

7 4,1 6,0 3,1 5,5 5,9 6,2 7,1 5,6 5,0 4,8 3,8 3,3 2,6 2,0 2,7 64 229

8 5,5 5,4 2,6 5,0 5,4 5,9 7,0 6,4 5,3 5,4 4,6 3,8 3,5 2,4 3,0 66 235

9 5,3 5,0 2,3 3,8 4,3 4,8 5,7 6,5 6,3 5,2 4,7 4,4 4,3 3,0 2,9 63 223

10 5,3 5,4 2,4 3,4 4,1 5,0 5,2 5,4 6,2 5,4 5,4 5,0 5,3 3,7 3,5 66 228

11 4,4 6,7 1,6 4,4 4,8 5,0 4,7 5,2 4,8 5,2 9,4 7,4 5,6 2,6 3,6 71 253

12 5,0 7,3 1,4 3,2 3,7 3,9 4,0 4,7 4,8 5,3 9,8 9,7 7,9 3,7 4,5 74 260

13 5,6 6,8 1,7 2,3 2,8 3,1 3,5 4,0 4,6 5,2 7,4 9,8 10,3 5,2 5,6 72 258

14 5,8 6,5 1,8 1,6 2,0 2,7 2,8 3,5 4,5 5,3 5,5 7,9 10,3 7,5 7,0 69 254

15 4,3 5,2 4,4 1,3 1,2 1,9 2,2 2,6 3,3 4,0 2,7 3,9 5,7 9,0 8,5 56 215

16 4,3 6,7 5,0 1,5 1,7 2,1 2,2 2,4 2,3 2,9 3,3 4,0 4,8 6,1 7,4 52 211

Total de ns comunicados entre processadores: Total de elementos processados: Redundncia em elementos: Eficincia no processamento de elementos: ndice de troca de dados:

1156 3932 162% 38% 425%

No fundo da tabela est indicada a quantidade total de dados transmitidos entre os processadores (em milhares de ns) e o total de elementos processados por todos os processadores lgicos (em milhares de elementos). A redundncia computacional (expressa percentualmente) calculada por:

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

81

Redundncia =

Total de elementos processados 1 Total de elementos da malha

(2.2)

indicando, na diviso de tarefas, quanto do esforo computacional relacionado aos elemento realizado a mais que o correspondente ao da malha sendo inteiramente processada por um nico processador lgico. A eficincia no processamento de elementos calculada por:
Eficincia = Total de elementos da malha Total de elementos processados

(2.3)

e indica quanto do esforo computacional relacionado aos elementos no redundante. Finalmente, um indicador do volume relativo de dados comunicado entre processadores a cada iterao definido como ndice de Troca de Dados (ITD) e calculado por:
ndice de troca de dados = Total de ns comunicados entre processadores Total de ns da malha

(2.4)

Da anlise da tabela 2.1 verifica-se que a ordenao original da malha, resultante do processo de gerao de malha utilizado e de processos de refinamento de malha que porventura tenham sido empregados, leva a uma matriz esparsa, com comunicao de dados entre todos os possveis pares de processadores. A cada iterao do processo de soluo, 240 trocas de dados entre processadores lgicos so realizadas, e o total de dados comunicado entre eles de 1,156 milhes de ns ou aproximadamente 44,1 MB (Megabytes). O nmero total de elementos processados de 3,9 milhes, ou 162% a mais que o correspondente malha inteira sendo processada por um nico processador lgico (1,5 milhes), resultando que, na diviso de tarefas entre 16 processadores, somente 38% do esforo computacional relacionado a elementos no redundante. O ITD obtido foi de 425%, indicando que mais que 4 vezes o total de variveis nodais da malha comunicado entre os processadores a cada iterao. Os resultados obtidos para a malha sem tratamento sero usados como valores de referncia para os tratamentos 1RN e nRN. Os grupos obtidos pela diviso de tarefas sobre a malha sem tratamento podem ser vistos na figura 2.23, que uma representao grfica da tabela 2.1.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

82

Figura 2.23: Distribuio de ns e elementos em grupos aps diviso de tarefas para a malha sem nenhum tratamento. Malha utilizada no exemplo 5.2.4. A ordem dos ns resultado do gerador de malha utilizado, com dependncia da forma como as diversas regies do domnio foram divididas em superfcies matematicamente conhecidas (ver faixa azul escura no ltimo detalhe). Apesar de toda a parte externa da malha pertencer a
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

83

um mesmo grupo, na parte interna os grupos de elementos esto bastante misturados, especialmente em torno do contorno slido do avio, onde a malha mais refinada, como pode ser visto nos cortes mostrados na figura 2.24.

Figura 2.24: Distribuio de ns e elementos em grupos aps diviso de tarefas com a malha sem nenhum tratamento - cortes. Malha utilizada no exemplo 5.2.4. Na tabela 2.2 so apresentados os mesmos dados para a malha submetida ao tratamento 1RN, ou seja, tendo seus ns reordenados uma nica vez visando a minimizao de banda antes da diviso de tarefas ser efetuada. O tratamento 1RN leva a uma matriz de comunicao de dados concentrada em torno da diagonal principal (tipo banda), com cada processador lgico trocando dados somente com o processador imediatamente anterior e o imediatamente seguinte. A cada iterao do processo de soluo, o nmero de troca de dados entre processadores de 30, ou 12,5% do original, e o
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

84

volume total de dados trocados entre processadores de aproximadamente 0,243 milhes de ns (ou 9,27 MB), 21% do original. O nmero total de elementos processados por todos os processadores lgicos de 2,19 milhes (56% do original), reduzindo a redundncia para 46%, aumentando a eficincia para 69% e reduzindo o ITD para 90%. Os dados indicam que, apesar da simplicidade do tratamento empregado, h um grande ganho de eficincia na paralelizao.

Tabela 2.2: Comunicao de dados entre processadores e redundncia computacional para malha com tratamento 1RN.
Processadores

1 3,5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ns Elementos

2 2,8 5,1

3 4,3

10

11

12

13

14

15

16

5,5 6,6 7,8 9,6 10,7 10,9 9,7 9,9 10,7 10,6 10,7 10,3 8,6 6,5 7,8 9,1 9,6 9,0 8,9 9,2 9,4 9,8 9,4 8,1 6,1 5,9 14 123 6 94

4 110

5 121

11 129

13 137

16 145

18 152

20 156

19 154

19 145

20 147

20 147

20 147

20 144

18 135

Total de ns comunicados entre processadores: Total de elementos processados: Redundncia em elementos: Eficincia no processamento de elementos: ndice de troca de dados:

243 2186 46% 69% 90%

A representao grfica da diviso de tarefas obtida com o tratamento 1RN est mostrada na figura 2.25. Apesar da complexidade da malha, a estrutura bsica da distribuio dos ns e elementos em grupos que somente fazem fronteira com o grupo imediatamente anterior e posterior se mantm. Essa caracterstica, representada graficamente por grupos se dispondo em faixas ou camadas, bem visvel na parte externa da malha, e tambm sobre o contorno slido. Internamente, a distribuio dos grupos segue o mesmo padro, mostrando-se bem diferente da diviso em grupos decorrente da malha sem tratamento, como pode ser visto na figura 2.26.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

85

Figura 2.25: Distribuio de ns e elementos em grupos aps diviso de tarefas para a malha com o tratamento 1RN. Malha utilizada no exemplo 5.2.4.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

86

Figura 2.26: Distribuio de ns e elementos em grupos aps diviso de tarefas para a malha com o tratamento 1RN - cortes. Malha utilizada no exemplo 5.2.4. Na tabela 2.3 so apresentados os dados referentes malha submetida ao tratamento nRN. Este tratamento diminui ainda mais a comunicao de dados entre os processadores, obtendo um valor total de 0,163 milhes de ns (6,22 MB) por iterao do processo de soluo, 14,1% do valor original. A quantidade total de elementos processados tambm foi reduzida, atingindo 1,96 milhes, 50,3% do original. Quando comparado ao tratamento 1RN, o tratamento nRN resulta em uma menor quantidade de dados sendo comunicados entre processadores, uma menor redundncia no processamento de elementos e, conseqentemente, uma maior eficincia. A nica desvantagem que a matriz de comunicao entre processadores se torna mais esparsa, com cada processador podendo ter que trocar dados com vrios outros. O total de processos de comunicao entre processadores
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

87

de 69 por iterao, contra 30 do tratamento 1RN, fazendo com que a latncia de comunicao tenha maior impacto sofre a eficincia do processo e tornando mais complexa a ordenao dos diversos processos de comunicao entre os processadores para que no haja filas de espera ou saturao da rede. Dependendo da configurao da mquina paralela e do tipo e tamanho do problema a ser analisado, a vantagem obtida pela reduo do volume de dados a serem comunicados e pela reduo da redundncia pode ser contrabalanada pela latncia decorrente da necessidade de comunicao de cada ncleo com diversos outros, no resultando em uma maior velocidade de processamento do conjunto.

Tabela 2.3: Comunicao de dados entre processadores e redundncia computacional para malha com tratamento nRN.
Processadores

1 1,8 0,2 1,2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ns Elementos

2 1,5 2,0 0,7

3 0,1 1,6 1,6 0,8 2,0 0,2 1,0

4 1,1 0,7 1,4 0,6 0,9 1,4 0,1 0,1

9 1,9 1,1 0,1 1,1 1,3 0,8 2,8

10

11

12

13

14

15

16

0,7 0,4 1,8 0,8 0,2 1,2

1,8 0,7 1,4 1,7 1,5 1,6

0,2 1,4 0,8 1,4 0,8 1,0

0,1 0,3 1,2 0,7 3,5

1,8

8,9 9,9 5,4 5,3 4,9 0,5 4,8 4,4 0,4 6,3 10,3 8,6 4,5 5,3 9,4 8,1 6,1 5,9 14 123 6 94

3 107

5 117

7 123

5 114

5 118

9 125

6 112

6 114

19 145

20 147

10 119

11 122

20 144

18 135

Total de ns comunicados entre processadores: Total de elementos processados: Redundncia em elementos: Eficincia no processamento de elementos: ndice de troca de dados:

163 1958 30% 77% 60%

Os grupos de ns e elementos decorrentes da diviso de tarefas com o tratamento nRN podem ser vistos na figura 2.27. Apesar de prximo do contorno slido do avio a distribuio dos grupos ser semelhante obtida com o tratamento 1RN (em camadas ou faixas), um pouco mais afastado a distribuio segue o padro esquematizado nas figuras 1.5 e 2.8 e obtida tambm para o escoamento em torno da esfera (figura 2.20) com as regies do domnio correspondentes a cada grupo tendendo para um volume sem nenhuma dimenso preponderante. Na parte interna da malha, figura 2.28, a distribuio semelhante, tendendo a faixas perto do avio e a volumes sem uma dimenso preponderante na regio um pouco mais afastada.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

88

Figura 2.27: Distribuio de ns e elementos em grupos aps diviso de tarefas para a malha com o tratamento nRN. Malha utilizada no exemplo 5.2.4.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

89

Figura 2.28: Distribuio de ns e elementos em grupos aps diviso de tarefas para a malha com o tratamento nRN - cortes. Malha utilizada no exemplo 5.2.4.

2.5 BALANCEAMENTO DAS CARGAS DE TRABALHO


Os tratamentos apresentados nas sees 2.3 e 2.4 minimizam o trfego de rede e a redundncia de esforo computacional, mas por si s no so suficientes para garantir uma distribuio de tarefas equilibrada na qual todos os processadores lgicos trabalhando sobre seu conjunto de ns tenham o mesmo tempo de processamento. Obter o balanceamento das cargas de trabalho dos diversos processadores unicamente atravs da atribuio a cada um deles de um conjunto de ns cujo tamanho proporcional velocidade relativa de cada processador traz implcita a considerao de que o esforo computacional associado a todos os ns o mesmo, que cada n est conectado a um mesmo
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

90

nmero de elementos e que o esforo computacional associado a todos os elementos o mesmo. Condies de contorno, cargas e no linearidades fsicas fazem com que os diversos ns e elementos demandem esforos computacionais distintos, e a necessidade de adaptar a malha geometria do problema fsico a ser simulado faz com que raramente o nmero de elementos conectados aos diversos ns seja constante. Essa caracterstica particularmente evidente em problemas tridimensionais de geometria complexa discretizados por elementos tetradricos nos quais a malha refinada localmente, onde o nmero de elementos conectados a um mesmo n pode variar de um a mais de uma centena. Desse modo, bastante difcil realizar a priori uma diviso de tarefas equilibrada sem que a mesma precise ser balanceada de alguma forma pelo desenvolvimento do prprio processo de simulao computacional. Considerando que um bom nmero dos algoritmos de simulao empregados para problemas grandes so iterativos, empregou-se uma metodologia de balanceamento da carga de trabalho de cada processador lgico retro-alimentada pelo tempo gasto por cada processador na simulao computacional do prprio problema a ser processado, tempo este estimado ao longo de um determinado nmero de passos iterativos da soluo (KWOK et al. 1999). Este mtodo pode ser classificado como um mtodo esttico (DORNELES, 2003), pois o balano de cargas feito no incio da soluo e permanece inalterado ao longo do processamento. Esse processo somente adequado quando o esforo computacional por n constante ao longo das iteraes. No-linearidades fsicas (como plasticidade, dano contnuo, propagao de trinca), processos adaptativos no espao (refinamento e desrefinamento da malha ver Chang et al., 1993, Popiolek e Awruch, 2006) e no tempo (uso da tcnica de sub-ciclos na integrao temporal ver Belytchko e Lu, 1993, van der Vem et al. 1997, Maurits et al. 1998, Teixeira e Awruch, 2001) ou uma combinao deles (Hooker et al., 1992) alteram a distribuio espacial do esforo computacional ao longo do processo de soluo, exigindo modelos de balanceamento dinmico das cargas de trabalho. A metodologia empregada segue as seguintes etapas: a) Um ndice de desempenho relativo obtido por:
IDRi = IDi

ID
j =1

(2.5)
j

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

91

onde IDi o ndice de desempenho absoluto do processador lgico i e IDRi o ndice de desempenho relativo desse mesmo processador. Um estimador aproximado utilizado como ndice de desempenho absoluto inicial, como por exemplo a freqncia (CPU clock) de cada processador. b) A quantidade de ns da malha Ni alocada para cada processador i dada por:
N i = IDRi N

(2.6)

onde N o nmero total de ns da malha. c) A diviso de tarefas feita atravs de um dos tratamentos descritos anteriormente. Os ns atribudos a cada grupo ou processador so tomados seqencialmente conforme a ordenao dos ns. Assim, os primeiros Ni ns so atribudos ao processador i, os Ni+1 ao processador seguinte i+1 e assim por diante.: d) Um determinado nmero de passos dos processo iterativo executado, onde o tempo de processamento puro (tempo de CPU) ti ,calculado como o tempo total de execuo menos o tempo gasto em comunicao de dados atravs da biblioteca de comunicao empregada, avaliado para cada processador. Dentro do tempo gasto em comunicao est o tempo gasto em estado de espera por um processador at que o outro processador com o qual ele ir trocar dados esteja pronto para a comunicao, de modo que se a carga de trabalho entre processadores estiver desbalanceada, isso ir afetar o tempo de comunicao de um dos processadores, mas no seu tempo de processamento puro. e) O maior tempo total (processamento puro + tempo de comunicao) dentre todos os processadores tmax armazenado e a mdia do tempo de processamento puro de todos os processadores, tm, calculada. f) Se a condio de balanceamento dada por: (1 tol ).tm ti (1 + tol ).tm (2.7)

for satisfeita, considera-se que a distribuio de tarefas est balanceada e o cdigo executado com essa distribuio. O parmetro tol a tolerncia especificada para que a condio de balanceamento seja satisfeita.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

92

g) Caso o balanceamento no seja alcanado, uma nova estimativa do ndice de desempenho relativo IDRi* para cada processador obtida pelo produto do ndice de desempenho original IDRi pela razo entre a mdia dos tempos de processamento tm e o tempo de processamento puro respectivo ti.
IDRi* = tm IDRi ti

(2.8)

h) Os novos ndices de desempenho relativos so normalizados por


IDRi = IDRi*

IDR
j =1

(2.9)
* j

e o processo reiniciado a partir da etapa b). Se em um determinado nmero de tentativas a condio de balanceamento no for alcanada, adota-se a distribuio de tarefas que levou ao menor valor de tmax. O processo de balanceamento no necessariamente garante que o tempo associado comunicao de dados ou redundncia no processamento associado aos elementos diminua. O que o processo procura garantir que tempo total de processamento diminua por uma melhor distribuio da carga de trabalho, mesmo que isso acarrete uma maior carga de trabalho total entre todos os processadores. Isso pode ser percebido na tabela 3.4, onde o processo de balanceamento foi utilizado na malha do modelo simplificado de avio sem tratamento, com o tratamento 1RN e nRN. Nos 3 casos, se a condio de balanceamento no fosse atingida em 10 tentativas, a tentativa com menor tmax era utilizada para o

processamento. Somente para o tratamento nRN o balanceamento no foi obtido dentro de 10 tentativas, como pode ser observado pela diferena entre os valores de tempo de processamento puro mnimo e mximo. A metodologia proposta para balanceamento das cargas de trabalho atribudas aos diversos processadores lgicos somente vlida se o esforo computacional relacionado aos ns e elementos permanecer constante ao longo do processo de soluo. No linearidades e alteraes locais no passo de tempo utilizado na discretizao temporal de problemas transientes acarretam alterao do esforo computacional associado aos ns e elementos
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

93

envolvidos, de modo que novos balanceamentos devem ser feitos ao longo do processo de soluo para manter a eficincia da paralelizao.

Tabela 2.4: Balanceamento da diviso de tarefas para do modelo simplificado de avio, sem tratamento e com os tratamentos 1RN e nRN.
s/ tratamento IDR inic IDR final 6,52% 5,00% 6,52% 3,48% 6,52% 3,37% 6,52% 6,05% 6,52% 9,05% 6,52% 8,16% 6,52% 7,92% 6,52% 7,64% 5,98% 6,70% 5,98% 6,53% 5,98% 5,78% 5,98% 5,50% 5,98% 5,61% 5,98% 5,57% 5,98% 5,99% 5,98% 7,67% 34,37 50,12 84,00 53,55 287,77 207,34 1RN IDR inic IDR final 6,52% 8,87% 6,52% 7,92% 6,52% 7,24% 6,52% 6,66% 6,52% 6,14% 6,52% 5,95% 6,52% 5,81% 6,52% 5,85% 5,98% 5,16% 5,98% 5,05% 5,98% 5,01% 5,98% 5,03% 5,98% 5,14% 5,98% 5,45% 5,98% 6,07% 5,98% 8,65% 16,94 24,36 27,51 25,10 37,10 36,51 nRN IDR inic IDR final 6,52% 6,71% 6,52% 7,23% 6,52% 6,43% 6,52% 7,61% 6,52% 7,97% 6,52% 7,36% 6,52% 7,76% 6,52% 7,56% 5,98% 4,27% 5,98% 4,18% 5,98% 5,78% 5,98% 5,52% 5,98% 4,19% 5,98% 4,51% 5,98% 5,34% 5,98% 7,58% 14,58 11,04 23,84 21,14 36,84 33,38

Proces. ID 1 2500 2 2500 3 2500 4 2500 5 2500 6 2500 7 2500 8 2500 9 2300 10 2300 11 2300 12 2300 13 2300 14 2300 15 2300 16 2300 Tempo de CPU min. (s) Tempo de CPU mx. (s) Tempo proces. Total (s)

Os ndices de desempenho relativos IDR iniciais (antes do balanceamento) foram calculados pela equao (2.5) e esto expressos na tabela 2.4 de forma percentual. Os ndices de desempenho finais foram os obtidos aps o balanceamento. Em todos os casos, o balanceamento da carga de trabalho trouxe ganhos quanto ao tempo de processamento total em relao diviso de tarefas original, baseada exclusivamente no ndice de desempenho inicial (a freqncia dos processadores), mesmo quando o balanceamento deu origem a divises de tarefas finais com maior quantidade de dados comunicados entre processadores e maior redundncia no processamento de elementos, como foi o caso da malha sem tratamento (tabela 2.5) e com tratamento 1RN (tabela 2.6). Para o tratamento nRN, a diviso de tarefas final obtida tem uma menor ndice de troca de dados e menor redundncia de elementos (tabela 2.7)
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

94

Tabela 2.5: Comunicao de dados entre processadores e redundncia computacional para malha sem tratamento aps balanceamento da diviso de tarefas.
Processadores

1 2,0 1,1 1,2 11,6 12,0 10,5 9,6 8,4 9,9 6,7 7,1 7,7 8,1 7,4 5,4 109 219

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ns Elementos

2 1,5 1,9 1,9 0,1 0,5 9,3 9,9 9,2 7,8 7,7 7,8 8,2 8,4 9,2 8,3 90 218

3 1,0 2,0 2,8 7,0 13,5 7,7 7,1 6,2 6,0 8,1 7,2 6,4 5,8 5,7 5,9 91 215

4 0,9 1,7 1,9 14,6 6,8 6,2 5,8 4,7 4,6 4,1 3,3 3,4 3,1 4,9 11,9 77 250

5 3,8 0,1 2,6 6,7 10,3 8,2 7,3 5,0 4,3 4,8 3,3 2,6 1,9 1,8 2,8 61 274

6 4,3 0,2 4,9 3,8 10,9 9,6 7,8 5,7 5,1 5,4 4,1 3,3 2,5 2,2 2,6 68 268

7 4,3 2,9 3,1 3,6 8,7 9,4 9,1 6,8 6,2 5,4 4,2 3,4 2,9 3,0 3,1 72 270

8 4,1 3,5 3,2 3,5 7,6 7,9 9,0 7,8 6,5 5,6 4,6 4,0 3,5 3,4 3,5 74 268

9 4,0 3,5 2,9 2,8 5,3 6,3 7,1 8,0 7,2 5,6 4,6 4,4 4,3 4,5 3,1 69 245

10 4,3 3,2 2,9 2,9 4,8 5,7 6,6 6,8 7,2 5,8 5,3 5,0 5,1 5,3 3,9 71 246

11 4,4 6,7 1,6 4,4 4,8 5,0 4,7 5,2 4,8 5,2 9,4 7,4 5,6 2,6 3,6 71 253

12 2,9 3,8 3,8 2,1 3,8 4,6 4,6 5,0 4,9 5,5 9,1 8,7 7,2 5,0 4,2 72 241

13 3,3 4,2 3,4 2,3 2,9 3,6 3,7 4,4 4,7 5,4 7,0 8,6 9,4 7,2 5,1 72 245

14 3,5 4,5 3,2 2,2 2,1 2,8 3,2 3,8 4,7 5,5 5,5 7,3 9,6 9,8 6,2 70 242

15 3,1 4,6 3,1 3,2 1,9 2,3 3,2 3,4 4,5 5,3 3,6 4,6 7,0 9,7 10,9 67 246

16 2,6 4,0 3,3 6,6 3,0 2,2 2,7 2,8 2,6 2,1 3,2 3,6 4,3 5,3 9,1 55 244

Total de ns comunicados entre processadores: Total de elementos processados: Redundncia em elementos: Eficincia no processamento de elementos: ndice de troca de dados:

1190 3946 163% 38% 438%

Tabela 2.6: Comunicao de dados entre processadores e redundncia computacional para malha com tratamento 1RN aps balanceamento da diviso de tarefas.
Processadores

1 4,0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ns Elementos

2 3,3 6,1

3 5,0

10

11

12

13

14

15

16

6,2 7,5 9,1 10,6 10,5 10,5 10,1 9,8 10,9 10,7 10,5 10,4 9,5 7,4 8,9 9,4 9,4 9,1 8,5 9,4 9,4 9,2 9,3 8,9 7,4 7,5 16,4 131 7,4 134

4,0 147

6,1 147

12,5 145

15,3 145

18,0 144

19,4 145

19,8 144

19,5 145

18,9 132

19,4 133

20,1 132

19,9 131

19,6 131

18,8 132

Total de ns comunicados entre processadores: Total de elementos processados: Redundncia em elementos: Eficincia no processamento de elementos: ndice de troca de dados:

255 2220 48% 68% 94%

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

95

Tabela 2.7: Comunicao de dados entre processadores e redundncia computacional para malha com tratamento nRN aps balanceamento da diviso de tarefas.
Processadores

1 1,9 2,2 1,1 0,9 0,3 0,0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ns Elementos

2 1,7 2,1 0,6 0,4 0,1

3 1,9 1,7 4,3 0,2 0,7 0,1 0,0

3,8 0,1 0,9 0,6 0,5

5 0,9 0,5 0,1 0,1 1,9 1,8 0,1 0,1

6 0,7 0,3 0,5 0,7 1,5 1,4

7 0,4 0,1 0,1 0,5 1,4 1,4 2,9 0,3 0,3 0,5 0,3 0,4 0,3 0,2 0,2 9,0 145

8 0,1 0,0 0,5

10

11

12

13

14

15 0,0 0,2

0,1 2,6 2,0 0,6 0,3 0,0 0,2 0,1 0,1 6,3 130 0,2 1,7 0,7

0,1 0,3 0,5 0,6 1,8

0,0 0,4 0,2 1,4

0,0 0,3 0,0

0,2 0,3 0,2 0,5 0,2 0,8 0,9 2,9

0,3 0,0 0,3 0,1

0,6 0,1 0,2 0,1

16 0,3 0,3 0,5 0,6 0,6 0,7 0,2

2,3 2,3 1,0 1,0

0,6 0,3

0,0 0,3 6,8 125

0,2 0,4 3,7 125

0,6 7,5 124

0,0 0,6 6,5 130

0,1 0,3 0,5 0,6 6,1 147

2,6 2,6 2,9 2,5 3,0 6,7 96 5,5 123

0,0 0,1 0,8 5,4 128

3,4 70

3,6 72

5,4 104

3,6 90

5,9 77

6,2 81

Total de ns comunicados entre processadores: Total de elementos processados: Redundncia em elementos: Eficincia no processamento de elementos: ndice de troca de dados:

91 1766 18% 85% 34%

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

96

3 COMUNICAO DE DADOS ATRAVS DA REDE

3.1 O PROBLEMA DA ORDEM DE COMUNICAO


Em mquinas paralelas de memria compartilhada, a comunicao de dados entre os processos sendo executados em cada processador lgico realizada atravs da memria principal ou, no caso de processadores multi-ncleo, parcial ou totalmente atravs da memria cache. Estes so sub-sistemas com taxa de transferncia (throughput) bastante mais alta e latncia bastante mais baixa que os demais sub-sistemas de um computador, especificamente as unidades de armazenamento e a rede lgica. Em mquinas paralelas de memria distribuda, no entanto, a comunicao entre processadores lgicos ou grupos de processadores lgicos se d obrigatoriamente atravs da rede, sendo, muitas vezes, um importante fator de perda de eficincia na paralelizao de cdigos nesse tipo de mquina. Essa perda tanto maior quanto mais importante (do ponto de vista do tempo de processamento) for a comunicao de dados entre processadores frente ao processamento propriamente dito dos dados alocados a cada processador. Cenrios onde essa influncia pode ser notada o de problemas pequenos sendo processados em paralelo por um conjunto muito grande de processadores. O tempo gasto na comunicao de dados depende de vrios fatores: da latncia e taxa de transferncia do padro de rede lgica empregada (relacionadas fundamentalmente com as caractersticas de hardware das interfaces de rede, switches e cabeamento utilizados), da quantidade de dados a ser trocada entre os processadores (relacionada com o problema sendo processado e com a diviso de tarefas utilizada) e do nmero de comunicaes entre processadores (relacionado com a diviso de tarefas empregada e com o algoritmo utilizado) e do ordenamento ou organizao dos processos de comunicao.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

97

Quando o nmero de processadores lgicos utilizados torna-se grande, e a diviso de tarefas empregada faz com que exista troca de dados entre cada processador presente e vrios outros, a ordem como os diversos processadores se comunicam entre si torna-se importante para que no sejam criadas filas de espera no processo de comunicao. Nos switches normalmente utilizados para conexo de rede, a mxima largura de banda oferecida pode ser utilizada por cada porta desde que no hajam comunicaes simultneas endereadas a uma mesma porta. Se um processador lgico conectado a uma porta A est se comunicando a um outro conectado a uma porta B, e um terceiro conectado a uma porta C est se comunicando simultaneamente a um quarto na porta D, essas comunicaes acontecem na mxima taxa de transferncia permitida pela rede (ou switch). J se um processador lgico conectado a uma porta A se comunica simultaneamente a outros processadores conectados s portas B, C e D, as comunicaes acontecem com um tero da mxima taxa de transferncia. Assim, considerando o desempenho, sempre mais interessante implementar comunicaes exclusivas entre dois computadores (quando um computador est se comunicando com um segundo computador, todas as demais comunicaes com esses computadores ficam em estado de espera at que a primeira se encerre, quando ento outra tambm iniciada em carter exclusivo) do que comunicaes simultneas (ver blocking send e blocking receive em ARGONE, 2005). Contudo, essa implementao traz consigo a existncia de estados de espera e de filas de espera. Considere-se um processo paralelo no qual 8 processadores precisam, cada um, trocar a mesma quantidade de dados com todos os demais processadores presentes. A troca de dados poderia ser organizada fazendo com que cada processador seguisse a seguinte ordem: 1 at 8, com exceo de si mesmo. A comunicao somente seria efetivada quando, em um dado instante, um processador A iniciasse o processo de comunicao com B e houvesse reciprocidade. Se no h reciprocidade, o processador A entra em estado de espera at que o processador B inicie a comunicao com A. H, nesse processo, a formao de uma fila de espera para o processador B. A organizao acima est mostrada na figura 3.1, onde os processadores so representados por hexgonos que assumem a cor cinza quando, ao final de uma dada etapa, todas as trocas de dados que deveriam ser feitas pelo processador correspondente esto completas. Um par de setas em linha cheia indicam uma comunicao em que h reciprocidade, sendo, portanto, efetuada naquela etapa de forma exclusiva e blocante. Linhas pontilhadas indicam uma comunicao iniciada por um processador que, no
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

98

havendo reciprocidade, fica em estado de espera, sendo o smbolo do processador alterado para um quadrado pontilhado.
Etapa 1 1 8 7 6 5 Etapa 4 1 8 7 6 5 Etapa 7 1 8 7 6 5 Etapa 10 1 8 7 6 5 4 2 3 7 6 5 Etapa 13 1 8 7 6 5 4 2 3 4 8 4 2 3 7 6 5 Etapa 11 1 2 3 7 6 5 4 8 4 8 4 2 3 7 6 5 Etapa 8 1 2 3 7 6 5 Etapa 12 1 2 3 4 8 4 8 4 2 3 7 6 5 Etapa 5 1 2 3 7 6 5 Etapa 9 1 2 3 4 8 4 8 Etapa 2 1 2 3 7 6 5 Etapa 6 1 2 3 4 8 Etapa 3 1 2 3

Figura 3.1: Comunicao entre 8 processadores organizada segundo uma ordem seqencial 1 at 8 exceto a si mesmo
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

99

Pela necessidade de reciprocidade e exclusividade na comunicao entre os processadores, e em funo da regra de ordenamento adotada, so necessrias treze etapas para completar o processo total de comunicao de cada um dos oito processadores com todos os demais. O nmero de etapas necessrias para completar o processo de comunicao para a regra utilizada definido por 2n-3, onde n o nmero de computadores no conjunto. Muito mais interessante seria a adoo de uma regra de ordenamento na qual nunca houvesse um estado de espera, mas nem sempre isso possvel para qualquer nmero de processadores, somente para algumas configuraes. Utilizando a API MPI, a execuo de uma operao de comunicao blocante de um processador lgico com outro coloca automaticamente o processador que iniciou o processo em estado de espera quando no h reciprocidade na comunicao. O processador sai automaticamente do estado de espera resolvido quando a reciprocidade se estabelece.

3.2 UMA ORDEM DE COMUNICAO GENRICA E EFICIENTE


Quando o processo de diviso de tarefas resulta em um padro de comunicao entre processadores em que um processador precise somente se comunicar com os processadores imediatamente anterior e imediatamente posterior na ordem do conjunto, como o caso do tratamento 1RN descrito na seo 3.2, uma regra simples e eficiente para a comunicao pode ser postulada da forma: Se o nmero do processador mpar, primeiro comunique com o processador posterior, depois com o anterior; se par, o contrrio. A aplicao dessa regra pode ser visualizada na figura 3.2 para um conjunto de 8 processadores. Com apenas 2 etapas todos os processos de comunicao entre processadores so concludos.
Etapa 1
-1

Etapa 2
-1

Etapa 2*
+1

1 8

+1

1 8 3
+1 -1

2 7

2 3
-1 -1

+1

1 8

-1 +1

2 3
-1

7
+1

7 6 5
-1

-1

6 5
+1

-1

+1

6 5
-1

+1

+1

+1

Figura 3.2: Comunicao entre 8 processadores em que cada processador se comunica apenas com o imediatamente anterior e imediatamente posterior, adequada ao tratamento 1RN para diviso de tarefas.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

100

Os nmeros colocados ao lado do smbolo de cada processador indicam o quanto deve ser somado ao nmero do prprio processador para designar o processador com o qual a comunicao ser realizada. Caso a malha do problema tivesse uma geometria circular (um toro ou anel, sendo dividida no processo de diviso de tarefas ao longo do seu eixo circular) haveria tambm a necessidade de comunicao entre os processadores 1 e 8. Uma ordem adequada pode ser obtida considerando-se tambm a lista de processadores circular ou sem fim; o processador posterior ao 8 seria o 1, e o anterior ao 1 seria o 8. Aplicando-se a esses processadores o que foi feito com os demais para identificar o nmero do processador com o qual a comunicao ser realizada (se par, primeiro somar 1 ao nmero do processador, depois diminuir 1; se mpar, o contrrio), os processos de comunicao so totalmente concludos na segunda etapa, como mostrado na figura 3.2 como Etapa 2*. Por observao, uma extenso da configurao circular de comunicao pode ser estabelecida para um caso genrico de n processadores que precisam trocar dados com vrios outros (ou mesmo todos os demais n-1 processadores do conjunto). O algoritmo desenvolvido segue os seguintes passos: I. Os processadores presentes no conjunto so colocados em uma lista circular. O processador seguinte ao ltimo o primeiro, e o anterior ao primeiro o ltimo. II. Cria-se uma matriz de incrementos de dimenses n x n-1 com a lei de formao de sus termos INCij dada por
int i +1 i +1 k = int l = mod INC = k ( 1) ij 2 2 j + k 1 +l k

(3.1)

onde a linha i representa a etapa de comunicao para um determinado processador designado pela coluna j, int representa a parte inteira da diviso e mod o resto da diviso inteira. III. O processo iniciado adicionando-se ao nmero de cada processador o incremento correspondente respectiva coluna da primeira linha da matriz. O resultado indica o nmero do processador com o qual dever haver comunicao.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

101

IV. Se no h troca de dados prevista com o processador indicado pela matriz de incrementos, o processador avana individualmente para sua prxima etapa de comunicao (prxima linha na matriz). Em uma dada etapa global, cada processador poder estar em uma etapa diferente de comunicao (linha diferente da matriz). V. Se no h reciprocidade na comunicao, o processador fica em estado de espera at que ela ocorra. VI. Se h reciprocidade, a comunicao efetuada e cada processador envolvido avana individualmente para sua prxima etapa de comunicao. VII. Os passos IV a VI so repetidos at que todos os processadores completem todas as n-1 etapas de comunicao. Um exemplo da matriz de incrementos para 16 processadores est mostrado na Tabela 3.1

Tabela 3.1: Exemplo de matriz de incrementos para um conjunto de 16 processadores lgicos.


Processadores
1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 -1 2 -2 3 -3 4 -4 5 -5 6 -6 7 -7 8 2 -1 1 2 -2 3 -3 4 -4 5 -5 6 -6 7 -7 8 3 1 -1 -2 2 3 -3 4 -4 5 -5 6 -6 7 -7 8 4 -1 1 -2 2 -3 3 4 -4 5 -5 6 -6 7 -7 8 5 1 -1 2 -2 -3 3 -4 4 5 -5 6 -6 7 -7 8 6 -1 1 2 -2 -3 3 -4 4 -5 5 6 -6 7 -7 8 7 1 -1 -2 2 3 -3 -4 4 -5 5 -6 6 7 -7 8 8 -1 1 -2 2 3 -3 -4 4 -5 5 -6 6 -7 7 8 9 1 -1 2 -2 3 -3 4 -4 -5 5 -6 6 -7 7 -8 10 -1 1 2 -2 -3 3 4 -4 -5 5 -6 6 -7 7 -8 11 1 -1 -2 2 -3 3 4 -4 5 -5 -6 6 -7 7 -8 12 -1 1 -2 2 -3 3 4 -4 5 -5 -6 6 -7 7 -8 13 1 -1 2 -2 3 -3 -4 4 5 -5 6 -6 -7 7 -8 14 -1 1 2 -2 3 -3 -4 4 5 -5 6 -6 -7 7 -8 15 1 -1 -2 2 3 -3 -4 4 5 -5 6 -6 7 -7 -8 16 -1 1 -2 2 -3 3 -4 4 -5 5 6 -6 7 -7 -8

A aplicao do algoritmo para conjuntos com 4, 5, 7, 8 e 11 processadores est mostrado nas figuras 3.3 a 3.7. Considerando que, numa configurao ideal com n processadores, o nmero mnimo de etapas de comunicao seria n-1, pode-se definir a penalizao como sendo o nmero de etapas globais de comunicao que excede esse valor mnimo.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

Etapas

102
Etapa 1
+1 -1

processador 1 2 3 4 +1 -1 +1 -1 -1 +1 -1 +1 +2 +2 -2 -2

Etapa 2
-1 +1

processador 1 2 3 4 +1 -1 +1 -1 -1 +1 -1 +1 +2 +2 -2 -2

Etapa 3
+2 +2

processador 1 2 3 4 +1 -1 +1 -1 -1 +1 -1 +1 +2 +2 -2 -2

-1

+1

+1

-1

-2

-2

Figura 3.3: Comunicao entre 4 processadores em 3 etapas globais, configurao sem tempo de espera, 3 etapas, penalizao nula .

Etapa 1 1
+1 +1

processador 1 2 3 4 5 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 -1 +2 +2 -2 -2 +2 -2 -2 +2 +2 -2

Etapa 2 1
+1 -1

processador 1 2 3 4 5 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 +2 +2 -2 -2 +2 -2 -2 +2 +2 -2

-1

4 Etapa 3 1
+2

3
+1 processador 1 2 3 4 5 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +2 +2 +2 -2 -2 +2 -2 -2 +2 +2 -2 +1

4 Etapa 4 1
+2 -2

3
-1 processador 1 2 3 4 5 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +2 +2 +2 -2 -2 +2 -2 -2 +2 +2 -2

-1

+1

4 Etapa 5 1
-2

3
-2 processador 1 2 3 4 5 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 -2 +2 +2 -2 -2 +2 -2 -2 +2 +2 -2

-2

4 Etapa 6 1

3
+2 processador 1 2 3 4 5 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +2 +2 -2 -2 +2 -2 -2 +2 +2 -2

+2

-2

+2

3
+2

3
+2

Figura 3.4: Comunicao entre 5 processadores em 6 etapas globais, configurao com tempo de espera e penalizao de 2 etapas.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

103

Etapa 1 1
+1 +1

1 +1 -1 -1 +2 -2 +3 3 +1 -3

processador 2 3 4 5 6 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 +2 -2 -2 +2 +2 -2 +2 +2 -2 -2 +3 +3 -3 -3 -3 -3 -3 +3 +3 +3

Etapa 2
7 +1 -1 -2 +2 +3 -3

1
+1

-1

1 +1 +1 -1 +2 -2 +3 3 -1 -3

processador 2 3 4 5 6 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 +2 -2 -2 +2 +2 -2 +2 +2 -2 -2 +3 +3 -3 -3 -3 -3 -3 +3 +3 +3

7 +1 -1 -2 +2 +3 -3

-1

6 5
+1

+1

6 5
-1

-1

+1

Etapa 3 1
-1 +2

1 +1 +2 -1 +2 -2 +3 3 -2 -3

processador 2 3 4 5 6 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 +2 -2 -2 +2 +2 -2 +2 +2 -2 -2 +3 +3 -3 -3 -3 -3 -3 +3 +3 +3

Etapa 4
7 +1 -1 -2 +2 +3 -3

1
-2

-2

1 +1 -2 -1 +2 -2 +3 3 +2 -3

processador 2 3 4 5 6 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 +2 -2 -2 +2 +2 -2 +2 +2 -2 -2 +3 +3 -3 -3 -3 -3 -3 +3 +3 +3

7 +1 -1 -2 +2 +3 -3

+1

6
+2

+2

6
+2

5 Etapa 5 1
+3

-2

5 Etapa 6

+2

+2

1 +1 -2 -1 +2 -2 +3 3 +2 -3

processador 2 3 4 5 6 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 +2 -2 -2 +2 +2 -2 +2 +2 -2 -2 +3 +3 -3 -3 -3 -3 -3 +3 +3 +3

7 +1 -1 -2 +2 +3 -3

1
+3

+3

1 +1 +3 -1 +2 -2 +3 3 +3 -3

processador 2 3 4 5 6 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 +2 -2 -2 +2 +2 -2 +2 +2 -2 -2 +3 +3 -3 -3 -3 -3 -3 +3 +3 +3

7 +1 -1 -2 +2 +3 -3

-2

6
-2

-3

6
-3

5 Etapa 7 1
-3

+2

-3

+3

1 +1 -3 -1 +2 -2 +3 3 -3 -3

processador 2 3 4 5 6 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 +2 -2 -2 +2 +2 -2 +2 +2 -2 -2 +3 +3 -3 -3 -3 -3 -3 +3 +3 +3

Etapa 8
7 +1 -1 -2 +2 +3 -3

1
-3

2 3

1 +1 -1 +2 -2 +3 -3

processador 2 3 4 5 6 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 +2 -2 -2 +2 +2 -2 +2 +2 -2 -2 +3 +3 -3 -3 -3 -3 -3 +3 +3 +3

7 +1 -1 -2 +2 +3 -3

+3

6
+3

6 5 4
+3

4
+3

Figura 3.5: Comunicao entre 7 processadores em 8 etapas globais, configurao com tempo de espera e penalizao de 2 etapas.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

104

Etapa 1
-1

1 8

+1 -1

2 3
+1

7
+1

1 +1 -1 +2 -2 +3 -3 +4

2 -1 +1 +2 -2 +3 -3 +4

processador 3 4 5 6 +1 -1 +1 -1 -1 +1 -1 +1 -2 -2 +2 +2 +2 +2 -2 -2 +3 -3 -3 -3 -3 +3 +3 +3 +4 +4 -4 -4

Etapa 2
7 +1 -1 -2 +2 +3 -3 -4 8 -1 +1 -2 +2 +3 -3 -4 +1

1 8

-1 +1

2 3
-1

7
-1

1 +1 -1 +2 -2 +3 -3 +4

2 -1 +1 +2 -2 +3 -3 +4

processador 3 4 5 6 +1 -1 +1 -1 -1 +1 -1 +1 -2 -2 +2 +2 +2 +2 -2 -2 +3 -3 -3 -3 -3 +3 +3 +3 +4 +4 -4 -4

7 +1 -1 -2 +2 +3 -3 -4

8 -1 +1 -2 +2 +3 -3 -4

-1

6 5
+1

4 Etapa 3

-1

+1

6 5
-1

4 Etapa 4

+1

-2

1 8

+2 +2

2 3
-2

7
-2

1 +1 -1 +2 -2 +3 -3 +4

2 -1 +1 +2 -2 +3 -3 +4

processador 3 4 5 6 +1 -1 +1 -1 -1 +1 -1 +1 -2 -2 +2 +2 +2 +2 -2 -2 +3 -3 -3 -3 -3 +3 +3 +3 +4 +4 -4 -4

7 +1 -1 -2 +2 +3 -3 -4

8 -1 +1 -2 +2 +3 -3 -4

+2

1 8

-2 -2

2 3
+2

7
+2

1 +1 -1 +2 -2 +3 -3 +4

2 -1 +1 +2 -2 +3 -3 +4

processador 3 4 5 6 +1 -1 +1 -1 -1 +1 -1 +1 -2 -2 +2 +2 +2 +2 -2 -2 +3 -3 -3 -3 -3 +3 +3 +3 +4 +4 -4 -4

7 +1 -1 -2 +2 +3 -3 -4

8 -1 +1 -2 +2 +3 -3 -4

+2

6 5
+2

4 Etapa 5

-2

-2

6 5
-2

4 Etapa 6

+2

+3

1 8

+3 +3

2 3
+3

7
+3

1 +1 -1 +2 -2 +3 -3 +4

2 -1 +1 +2 -2 +3 -3 +4

processador 3 4 5 6 +1 -1 +1 -1 -1 +1 -1 +1 -2 -2 +2 +2 +2 +2 -2 -2 +3 -3 -3 -3 -3 +3 +3 +3 +4 +4 -4 -4

7 +1 -1 -2 +2 +3 -3 -4

8 -1 +1 -2 +2 +3 -3 -4

+3

1 8

-3 -3

2 3
-3

7
+3

1 +1 -1 +2 -2 +3 -3 +4

2 -1 +1 +2 -2 +3 -3 +4

processador 3 4 5 6 +1 -1 +1 -1 -1 +1 -1 +1 -2 -2 +2 +2 +2 +2 -2 -2 +3 -3 -3 -3 -3 +3 +3 +3 +4 +4 -4 -4

7 +1 -1 -2 +2 +3 -3 -4

8 -1 +1 -2 +2 +3 -3 -4

-3

6 5
-3

4 Etapa 7

-3

+3

6 5 1 8
+3

4 Etapa 8

+3

-3

1 8

+4

7
-3

1 +1 +4 -1 2 +2 -2 +3 3 -3 +4 +4

2 -1 +1 +2 -2 +3 -3 +4

processador 3 4 5 6 +1 -1 +1 -1 -1 +1 -1 +1 -2 -2 +2 +2 +2 +2 -2 -2 +3 -3 -3 -3 -3 +3 +3 +3 +4 +4 -4 -4

7 +1 -1 -2 +2 +3 -3 -4

8 -1 +1 -2 +2 +3 -3 -4

+4

-4

2 3
+4

7
-4

1 +1 -1 +2 -2 +3 -3 +4

2 -1 +1 +2 -2 +3 -3 +4

processador 3 4 5 6 +1 -1 +1 -1 -1 +1 -1 +1 -2 -2 +2 +2 +2 +2 -2 -2 +3 -3 -3 -3 -3 +3 +3 +3 +4 +4 -4 -4

7 +1 -1 -2 +2 +3 -3 -4

8 -1 +1 -2 +2 +3 -3 -4

-4

6 5
+3

6
+3

4 5
-4

+4

Figura 3.6: Comunicao entre 8 processadores em 8 etapas globais, configurao com tempo de espera e penalizao de 1 etapa. A penalizao obtida nas diversas configuraes tem valores relativamente baixos, embora a mesma tenda a aumentar com o nmero de processadores envolvidos. O algoritmo proposto adequado a ser usado de forma geral para todos os casos. Os casos representados nas figuras 3.3. a 3.7 correspondem matrizes de comunicao totalmente esparsas, como as tipicamente obtidas pelo procedimento de diviso de tarefas baseado em ns para malhas sem tratamento.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

105
Etapa 1
+1 +1 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 1 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 2 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 3 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 4 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 5 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 6 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 7 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5

1 11 2

-1

-1

10 9 8
+1

+1

+1

4 5 7 6
-1

-1

1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5 1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5 1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5 1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5 1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5

2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5 2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5 2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5 2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5 2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5

3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5 3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5 3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5 3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5 3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5

4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5 4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5 4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5 4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5 4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5

8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5 8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5 8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5 8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5 8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5

9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5 9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5 9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5 9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5 9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5

10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5 10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5 10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5 10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5 10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5

11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5 11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5 11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5 11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5 11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5

Etapa 2
-1 +1

-1

+1

1 11 2

+1

+1

10
-1

-1

9 8
-1

4 5 7 6
+1

+1

Etapa 3
+2 -1

1 11 2

+2

+1

-1

+1

10
+2

-2

9 8
-2

4 5 7 6
+2

-2

-2

+2

Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5

Etapa 4
-2 -2

1 11 2

-2

+2

10
+2

+2

9 8
+2

4 5 7 6
-2

+2

Etapa 5
+3 +2

1 11 2

-2

+2

-2

-2

10
-2

+3

9 8
+2

4 5 7
+4 -3

-3

+2

-3

6 Etapa 7

-3

+3

1 11

2
-3

1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5 1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5

2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5 2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5

3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5 3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5

4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5 4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5

8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5 8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5

9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5 9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5

10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5 10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5

11 +1 -1 -2 +2 -3 -3 +3 +4 -4 +5 -5 +3 11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5

Etapa 6
-3 -3

1 11 2

+3 -3

10 9 8
+3

3 4 5 7 6
+3 +3

+3

10
-3

3 4
+3

+3

-3

9 8
-3

-3

5 7 6
+3

+3

Figura 3.7: Comunicao entre 11 processadores em 13 etapas globais, configurao com tempo de espera e penalizao de 3 etapas (continua...).
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

106
Etapa 8
+4 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 Etapa 5 6 +1 -1 -1 +1 +2 +2 -2 -2 -3 -3 +3 +3 -4 -4 +4 +4 +5 -5 -5 +5 8 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 9 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 10 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 11 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 12 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5 13 7 +1 -1 -2 +2 +3 -3 -4 +4 -5 +5

1 11

+4 +4

2
+4

+4

10
+4

3 4
+4

9 8
-4

1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5 1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5 1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5 1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5 1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5

2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5 2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5 2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5 2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5 2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5

3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5 3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5 3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5 3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5 3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5

4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5 4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5 4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5 4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5 4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5

8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5 8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5 8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5 8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5 8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5

9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5 9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5 9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5 9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5 9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5

10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5 10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5 10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5 10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5 10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5

11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5 11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5 11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5 11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5 11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5

Etapa 9
+4

-4

5 7 6
-4

-4

1 11

-4

-4 -4

+4

10
+4

3 4
-4

9 8
+4

Etapa 10
-4

1 11

+5 +5

+4

5 7 6
+4

+4

2
+5

-4

10
-4

3 4
+5

9 8
+4

Etapa 11
+5

-5

5 7 6
+4

+4

1 11

+5 +5

2
-5

-5

10
-5

3 4
+5

9 8
-5

Etapa 12
+5

1 11

-5 -5

+5

5 7 6
-5

+5

2
-5

+5

10
+5

3 4
-5

Etapa 13
+5

9 8
+5

1 11 2 3 4

+5

5 7 6
+5

-5

1 +1 -1 +2 -2 +3 -3 +4 -4 +5 -5

2 -1 +1 +2 -2 +3 -3 +4 -4 +5 -5

3 +1 -1 -2 +2 +3 -3 +4 -4 +5 -5

4 -1 +1 -2 +2 -3 +3 +4 -4 +5 -5

8 -1 +1 -2 +2 +3 -3 -4 +4 -5 +5

9 +1 -1 +2 -2 +3 -3 +4 -4 -5 +5

10 -1 +1 +2 -2 -3 +3 +4 -4 -5 +5

11 +1 -1 -2 +2 -3 +3 +4 -4 +5 -5

10 9 8 7 6
+5

Figura 3.7: Comunicao entre 11 processadores em 13 etapas globais, configurao com tempo de espera e penalizao de 3 etapas. O tratamento nRN introduzido na seo 2.3 gera matrizes esparsas de comunicao entre processadores, mas em geral no h comunicao de cada processador com todos os outros. O passo IV do algoritmo prev esses casos, e o nmero de etapas globais de comunicao
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

107

obtidos para os casos representados nas figuras 3.3 a 3.7 podem ser vistos como limites superiores para conjuntos de processadores representados. O algoritmo reproduz tambm situaes como as mostradas na figura 3.2, em que somente h troca de dados entre cada processador e os processadores imediatamente anterior e posterior, tpicas da aplicao do tratamento 1RN descrito em na seo 2.2.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

108

4 ALGORITMOS SELECIONADOS PARA PARALELIZAO


Para a escolha dos algoritmos a serem paralelizados, dois critrios foram utilizados: cobrirem os aspectos com maior demanda de esforo computacional da simulao de problemas da Dinmica dos Slidos Computacional e da Dinmica dos Fludos Compuacional atravs do Mtodo dos Elementos Finitos, e serem adequados soluo de problemas grandes.

4.1 MTODO DOS GRADIENTES CONJUGADOS


Em problemas de Mecnica dos Slidos, a aplicao do Mtodo dos Elementos Finitos resulta na soluo do sistema de equaes lineares indicado genericamente em (4.1). A em um bom nmero de problemas representa a matriz de rigidez global da estrutura sendo analizada e b o vetor de cargas nodais equivalentes.
Ax = b

(4.1)

A soluo do sistema a etapa que mais consome tempo de processamento medida que o tamanho das malhas analisadas cresce. Os algoritmos de soluo ou solvers diretos, como os que utilizam a decomposio de Gauss ou de Cholesky, apesar de apresentarem excelente desempenho para sistemas pequenos, tornam-se inviveis na soluo de grandes sistemas de equaes resultantes de malhas com muitos ns, pois dependem da montagem de uma matriz de rigidez global A que nesses sistemas facilmente esgota a disponibilidade de memria principal dos computadores de uso corrente. Apesar de que a cada ciclo tecnolgico, a quantidade de memria principal disponvel se torna maior e, comparativamente, mais barata, tambm a complexidade dos modelos torna-se maior, retro-alimentada pela disponibilidade de maior poder de processamento e de maior quantidade de memria, de modo que a demanda por memria nunca inteiramente satisfeita.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

109

As formas de organizao das triangulaes acima que permitem o uso da memria auxiliar, como a soluo Frontal (IRONS, 1970, HINTON e OWEN, 1977), em que um conjunto mnimo de equaes precisa permanecer na memria principal, e to logo as transformaes lineares sobre o sistema de equaes (decomposies de Gauss ou Cholesky) envolvendo uma dada equao so completadas, a equao transferida para a memria secundria (disco rgido ou outras formas de armazenamento), apesar de parcialmente resolverem o problema da memria principal disponvel, sofrem em termos de desempenho, uma vez que o sub-sistema de armazenamento que passa a ser utilizado no lugar da memria principal bastante mais lento que esta. Alm disso, os solvers diretos so de difcil paralelizao, uma vez que h uma enorme dependncia entre as operaes envolvidas sobre as variveis do sistema nos processos de triangulao. A diviso do sistema de equaes em sub-conjuntos alocados a diversos processadores lgicos traz como conseqncias a troca de grandes quantidades de dados entre os mesmos (as equaes completas da regio de interface entre os sub-conjuntos) e necessidade de concentrar o processamento na etapa final da decomposio em um nico processador. Os mtodos de soluo iterativos, como o mtodo de Gauss-Seidel e, em especial, o Mtodo dos Gradientes Conjugados, em suas formulaes elemento-por-elemento, so bastante mais simples de serem paralelizados, especialmente em configuraes de memria distribuda, pois tm genericamente o formato da equao (2.1), de modo que, em cada iterao, as equaes so desacopladas, podendo ser resolvidas em qualquer ordem, permitindo sua sub-diviso em grupos que podem ser alocados a diversos processadores lgicos. A demanda por memria principal desses mtodos tambm menor, uma vez que no necessria a montagem da matriz de rigidez global. O mtodo de soluo escolhido para ser paralelizado foi o Mtodos dos Gradientes Conjugados. Seu emprego tende a ser vantajoso em termos de tempo de processamento comparado aos solvers diretos medida que o tamanho do sistema de equaes cresce, em especial quando utilizados com pr-condicionadores.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

110

4.1.1 Mtodo dos gradientes conjugados com pr-condicionador diagonal ou de Jacobi


O pr-condicionador diagonal ou de Jacobi especialmente indicado nos casos em que as variveis do sistema de equaes so dimensionalmente bastante diferentes. um dos prcondicionadores com menor demanda por memria, pois a nica estrutura extra de armazenamento necessria um vetor com os termos da diagonal principal da matriz A. O algoritmo correspondente formulao elemento-por-elemento, em sua verso paralela otimizada para configuraes de memria distribuda est baseado no apresentado por Duarte Filho (2002) e est mostrado na tabela 4.1, onde: n: x0 : b: bb: r: rr: z: rz: p: pe: W: contador de iteraes; vetor estimativa inicial; vetor independente do sistema de equaes (vetor de cargas nodais equivalentes); produto escalar b b equivalente ao quadrado do mdulo do vetor resduo inicial; vetor resduo; produto escalar r r equivalente ao quadrado do mdulo do vetor resduo; vetor resduo precondicionado;

rz ;
vetor direo de busca global; vetor direo de busca para as equaes nodais correspondentes aos ns do elemento e; matriz de precondicionamento diagonal ou de Jacobi, correspondente aos termos da diagonal principal de A. Todos os termos no pertencentes diagonal so nulos;

A: Ae: ap:

matriz de rigidez global; matriz de rigidez em coordenadas globais do elemento e; vetor resultante do produto A p;

pap: produto escalar p ap ; Ni: conjunto de equaes nodais correspondentes aos ns alocados ao processador lgico i;

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

111

N i+ : conjunto de equaes nodais correspondentes aos ns dos elementos conectados aos


ns alocados ao processador lgico i;

Nij: equaes nodais alocadas ao processador lgico i correspondentes a ns pertencentes a


elementos conectados aos ns alocados ao processador j;

Ei

elementos conectados aos ns alocados ao processador lgico i.

Tabela 4.1: Algoritmo do Mtodo dos Gradientes Conjugados, formulao elemento-por-elemento, paralelizao otimizada para configuraes de memria distribuda. Etapa 1. Inicializao (a) (b) (c) (d) (e) (f)

n=0
bb = b b

xn = 0 rn = b pn = zn = W 1 rn
rzn = rn z n

para Ni para N i+ para N i+ para Ni

Etapa 2. Atualizao dos vetores estimativa e resduo (g)


ap n = A ep e n
Ei

para Ni para Ni

(h) (i) (j) (k) (l) (m)

papn = p n ap n
Soma dos valores rzn e papn entre todos os processadores lgicos Envia ap n para processador lgico j Recebe ap n do processador lgico j

para Nij para Nji

Repete (j) e (k) para todos os processadores lgicos j com os quais i troca dados

n =

rzn papn

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

112

Tabela 4.1 (continuao): Algoritmo do Mtodo dos Gradientes Conjugados, formulao elemento-por-elemento, paralelizao otimizada para configuraes de memria distribuda. Etapa 3. Atualizao do vetor direo de busca (n) (o) (p) (q) (r) (s) (t)

x n +1 = x n + np n rn +1 = rn nap n

para Ni para N i+ para N i+ para Ni para Ni

z n +1 = W 1 rn +1
rzn +1 = rn +1 z n +1 rrn +1 = rn +1 rn +1
Soma dos valores rzn+1 e rrn+1 entre todos os processadores lgicos

n =

rzn +1 rzn
para N i+

(u)

p n +1 = z n +1 + n p n

Etapa 4. Teste de convergncia


rrn +1 > tolerncia, n = n+1, retorna etapa 2 bb

(v)

Se

Para que , no passo (g), o produto da matriz de rigidez do elemento em coordenadas globais

Ae pelo vetor direo de busca pe resulte em valores corretos para o conjunto Ni, preciso que
o vetor pe em cada processador lgico contenha os valores corretos para todos os ns do elemento correspondente. Isso significa que cada processador deve ter atualizado em cada iterao os valores de pe correspondentes aos ns dos elementos conectados ao grupo de ns (grupo de equaes nodais) alocado ao processador, dando origem ao conjunto N i+ , o qual define a abrangncia das operaes realizadas em (d), (e), (o), (p) e (u). Alm disso, como a obteno de apn no passo (g) feita elemento por elemento (representado pelo somatrio) de forma a evitar a montagem da matriz de rigidez global A, o grupo de elementos envolvido no processo composto por todos os elementos conectados aos ns alocados ao processador (Ei).
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

113

O grupo Ei de elementos de um dado processador lgico formado pelos elementos prprios, conectados exclusivamente aos ns alocados a esse processador ( EiP ), e pelos elementos conectados tanto a ns do grupo desse processador quanto a ns dos grupos de outros processadores ( EiC ), que so os elementos comuns definidos na seo 2.2. Estes ltimos esto relacionados com a redundncia de esforo computacional decorrente da diviso de tarefas empregada para paralelizao. Os passos (i), (j), (k) e (s) representam comunicao entre processadores lgicos. O passos (i) e (s) representam uma operao de comunicao na qual cada processador lgico fornece o seu valor local das variveis a serem comunicadas (rz, pap, rr) e recebe a soma desse valor com os correspondentes de todos os outros processadores presentes no conjunto. Os passos (j) e (k) representam uma comunicao exclusiva e recproca entre um par de processadores (blocking send e blocking receive do MPI). O algoritmo apresentado pode ser implementado sem que nenhum processador assuma a coordenao do fluxo de dados entre os demais (hostless program), a no ser no final do processo iterativo para agrupar os resultados dos diversos processadores. Cada processador pode executar exatamente o mesmo cdigo, caracterizando uma implementao do tipo Programa nico Mltiplos Dados (Single Program Multiple Data). As tcnicas descritas nos captulos 2 e 3 podem ser utilizadas para minimizar a redundncia de processamento e o tempo de comunicao entre processadores lgicos.

4.1.2 Mtodo dos gradientes conjugados com pr-condicionador de Cholesky


O pr-condicionador de Cholesky bastante mais robusto que o pr-condicionador diagonal, sendo o mais adequado para sistemas mal condicionados. Seus requerimentos de memria tambm so maiores, exigindo o armazenamento das matrizes dos elementos fatoradas, ou seu reclculo a cada iterao, com conseqente perda de velocidade de soluo. No Mtodo dos Gradientes Conjugados com pr-condicionador de Cholesky, os passos (e) e (p) no algoritmo da tabela 5.1 so modificados para: (e) (p)

pn = zn = B 1 rn z n +1 = B 1 rn +1

para N i+ para N i+

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

114

onde B a matriz de pr-condicionamento de Cholesky, definida pela expresso:


e e 12 B = W1 2 L A U A W e =1 e = Nel Nel 1

(4.2)

onde o smbolo

representa produto, Nel o nmero de elementos, W = diag(A) e L[.] e

U[.] so os fatores triangular inferior e triangular superior da fatorao de Cholesky,


respectivamente. A implementao da equao (4.2) constitui-se nas seguintes etapas: Antes do Mtodo dos Gradientes Conjugados propriamente dito ser iniciado, as matrizes de rigidez fatoradas dos elementos so calculadas. O passo (e) do algoritmo da Tabela 5.1 fica explicitado pelos passos indicados na Tabela 4.2

Tabela 4.2: Alteraes necessrias ao algoritmo do Mtodo dos Gradientes Conjugados, formulao elemento-por-elemento, para contemplar o pr-condicionador de Cholesky. Passo (e) substitudo por: (1) (2)

z n = W 1 2 rn
Substituio frente de zn com a matriz fatorada triangular inferior de Cholesky, para cada elemento

(3)

Retrosubstituio de zn com a matriz fatorada triangular superior de Cholesky, para cada elemento

(4)

p n = z n = W 1 2 z n

As alteraes para o passo (p) so similares. Para a implementao de uma verso paralela otimizada para mquinas de memria distribuda, preciso dividir o grupo de elementos Ei de cada processador lgico nos subgrupos EiP e EiC . As modificaes necessrias so mostradas na Tabela 4.3.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

115

Tabela 4.3: Alteraes necessrias ao algoritmo do Mtodo dos Gradientes Conjugados, formulao elemento-por-elemento, para contemplar o pr-condicionador de Cholesky em verso paralela otimizada para mquinas de memria distribuda. Passo (e) substitudo por: (1) (2) (3) (4) (5) (6) (7) (8) (9)

z n = W 1 2 rm
Substituio frente de z n em L[Ae] Substituio frente de z n em L[Ae] Retrosubstituio de z n em L[Ae] Envia z n para processador lgico j Recebe z n do processador lgico j

para N i+ para EiC para EiP para EiP para Nij para Nji

Repete (5) e (6) para todos os processadores lgicos j com os quais i troca dados Retrosubstituio de z n em L[Ae] para EiC para N i+

p n = z n = D1 2 z n

A alteraes para o passo (p) so similares. A ordem com que a retrosubstituio feita nos passos (4) e (8), nos grupos EiC e EiP a inversa da utilizada nos passos (2) e (3) para os mesmos grupos, conforme a equao (4.2), assegurando a simetria para a matriz de prcondicionamento B. As operaes dos passos (2), (3), (4) e (8) no so desacopladas, uma vez que o valor de uma dada varivel dependente dos valores das demais variveis calculados na mesma iterao. Como o pr-condicionamento aplicado elemento-por-elemento, o resultado das operaes de pr-condicionamento sobre o vetor z dependente da ordem do elementos. Como o verso paralela altera a ordem dos elementos, os resultados obtidos com a verso paralela em cada iterao para cada varivel do sistema somente sero absolutamente idnticos ao da verso
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

116

seqencial se esta utilizar a mesma ordem empregada por todos os processadores lgicos, ou seja substituio frente com os elementos comuns, substituio frente com os elementos prprios de cada processador, retrosubstituio com os elementos prprios de cada processador e retrosubstituio com os elementos comuns. Contudo, a ordem dos elementos no afeta os resultados finais (aps a convergncia), causando apenas pequenas difererenas no nmero de iteraes para a convergncia ser alcanada e, conseqentemente, sobre o tempo de processamento total. Para assegurar que a matriz Ae seja positiva definida, utilizada a regularizao de Winget (Hughes et al., 1987). Percebe-se que o uso do pr-condicionador de Cholesky adiciona, em relao ao prcondicionador Diagonal, mais uma etapa de comunicao entre os processadores lgicos para cada iterao do processo de soluo, alm da substituio frente e da retrosubstituio. O impacto sobre o tempo total de soluo , na maioria das vezes, compensado pela melhor taxa de convergncia que, em geral, o pr-condicionador de Cholesky propicia. Tambm nessa implementao, no h necessidade de um processador que coordene o fluxo de dados entre os processadores a no ser para consolidar os resultados no final do processo iterativo.

4.2 ESCOAMENTOS COMPRESSVEIS EM REGIME TRANSNICO E SUPERSNICO


Para simulao de escoamentos compressveis em regimes transnico e supersnico foi utilizado o algoritmo empregado por Burbridge (1999), Burbridge e Awruch (2000) e Bono (2008) onde, para integrao no tempo, utilizado em esquema explcito de um passo com iteraes.

4.2.1 As equaes de conservao


Sejam R 3 e (0,T) os domnios espacial e temporal, respectivamente, e seja o contorno de . As coordenadas espaciais e temporal so designadas por x e t, respectivamente. So

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

117

consideradas as equaes de Navier-Stokes sem termos de fonte governando o fluxo compressvel, escritas de forma adimensional por

U Fi G i + + =0 t xi xi

(4.3)

onde U o vetor de incgnitas das variveis de conservao e Fi e Gi os vetores de fluxo convectivo e difusivo, respectivamente. Eles so definidos por
U = vi , e

vj Fi = vi v j + p ij , v e p + ( ) j

0 G i = ij v q j ji i

(4.4)

onde i, j = 1,2,3, vi a componente da velocidade na direo da coordenada xi, a massa especfica, p a presso termodinmica, ij so os componentes do tensor de tenses viscosas, qj o vetor de fluxo de calor, e a energia total especfica e ij a funo delta de Kronecker. Para o escoamento compressvel, as seguintes escalas adimensionais so utilizadas:
i x L i v a t= t a L e 2 a

xi =

vi =

e=

p p= 2 a

T c u= v2 a

(4.5)

onde o smbolo sobrescrito ~ indica uma grandeza dimensional, o smbolo subscrito representa um valor de referncia para um estado de corrente no perturbado, a a velocidade do som, T a temperatura, cv o calor especifico a volume constante, u a energia interna especfica e L um comprimento de referncia. Considerando que o ar se comporta como um gs caloricamente perfeito, a presso p (que calculada pela equao de estado) e a energia interna especfica u em termos de variveis adimensionais so dadas pela equao:
p = ( 1) u ,

1 u = cv T = e vi vi 2

(4.6).

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

118

onde a relao entre calores especficos sob presso e volume constantes = c p cv uma constante do gs e considerada igual a 1.4. A viscosidade dinmica e a condutividade trmica dependem da temperatura, sendo portanto modeladas pela lei de Sutherland. As equaes de Euler so obtidas eliminando-se de (4.3) o vetor de fluxo difusivo. Condies iniciais e de contorno devem ser adicionadas a (4.3) de modo a definir o problema de forma nica.

4.2.2 A formulao de Taylor-Galerkin com esquema de um passo iterativa.


O esquema explicito de um passo de Taylor-Galerkin utilizado para integrao no tempo similar aquele apresentado por Donea (1984) e est detalhado em (BONO, 2008). Expandindo as variveis de conservao U em t = t n +1 atravs da srie de Taylor incluindo a primeira e a segunda derivadas, obtida a expresso

n +1

U n 1 U n +1 t 2 2 U 1 2 U = t + 2 + + t t t 2 2 2 t 2
n

n +1

(4.7)

onde U n +1 = U n +1 U n , t = t n +1 t n o passo de tempo, n e n+1 indicam t e t+t, respectivamente. Substituindo a equao (4.3) e sua derivada na equao (4.7) e desprezando os termos de alta ordem, obtida a expresso
n +1 J +1

Fi n G i n t n Fi n = U + t + Ak + xi xi 2 xk xi
n n +1 n +1 n +1 G i J t Fi J t n Fi J + + A k x x x x 2 2 i i k i

(4.8)

onde J um contador de iterao, Fin +1 = Fin +1 Fin , G in +1 = G in +1 G in e A i o Jacobiano convectivo definido por A i = Fi U (Hughes e Tezduyar, 1984). Os incrementos das variveis de campo U devem ser obtidos atravs de processo iterativo, uma vez que esto definidos para o mesmo tempo t n +1 que os incrementos do segundo termo do lado direito da equao (4.8). A discretizao espacial obtida aplicando-se o mtodo clssico do resduo ponderado de Bubnov-Galerkin no contexto do Mtodo dos Elementos Finitos na equao (4.8). A matriz de

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

119

massa consistente substituda pela matriz de massa discreta, e a equao (4.8) ento resolvida em um esquema explcito que condicionalmente estvel. A condio de estabilidade local segundo o critrio de Courant-Friedrichs-Levy dada por:
tele = CS Lele a + ( vi vi )
1 2

(4.9)

onde ele indica um determinado elemento, Lele sua dimenso caracterstica, a a velocidade do som e CS um coeficiente de segurana (o qual sempre menor ou igual a 1,0). Em velocidades transnicas e supersnicas, um amortecimento numrico adicional necessrio para capturar com preciso as ondas de choque e para suavizar oscilaes locais na vizinhana das mesmas. O modelo de viscosidade artificial proposto por Argyris et al. (1990) foi adotado em funo de sua simplicidade e eficincia em termos de tempo de processamento. O termo representando a viscosidade artificial explicitamente adicionado soluo no suavizada:
+1 Un = U n +1 + M L 1D s

(4.10)

+1 onde M L a matriz de massa discreta, U n e U n +1 so as solues suavizada e no s

suavizada em t + t , respectivamente. O vetor D dado por


n D = CFL CAF Sele [ M M L ]ele U ele

(4.11)

ele

onde ele um ndice de elementos, CFL = t t E o nmero local de Courant-FriedrichsLevy, CAF um coeficiente de amortecimento artificial que deve ser especificado com cuidado para evitar interferncia no desejada da viscosidade artificial sobre a viscosidade fsica, Sele um sensor de presso em nvel de elemento obtido como mdia dos valores nodais de Si. Os valores de Si so componentes do vetor global:
Sk =
ele

( M M L )ele p k
M ML p ele
k

(4.12)

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

120

onde p o vetor de presso de um elemento especfico, o smbolo indica valor absoluto,

M a matriz de massa consistente em nvel de elemento e ele refere-se aos elementos


conectados ao n k.

4.2.3 Tcnica de integrao multi-tempo usando sub-ciclos.


comum o emprego de processos de refinamento de malha para que os altos gradientes das variveis do problema possam ser adequadamente representados. Esse processos so aplicados localmente, somente nas regies de altos gradientes, de modo a diminuir o impacto do tamanho da malha (em nmero de elementos e ns) sobre o tempo de processamento. Como conseqncia, as malhas resultantes podem apresentar elementos de tamanhos muito diferentes, especialmente em problemas tridimensionais nos quais a discretizao feita atravs de elementos tetradricos. A condio de estabilidade imposta pela equao (4.9) faz com que, em uma malha com elementos com tamanhos muito diferentes, o passo utilizado na integrao no tempo esteja relacionado ao menor elemento da malha. Tcnicas adaptativa para integrao no tempo como a tcnica de sub-ciclos proposta por Lhner et al. (1984) e empregada por Teixeira e Awruch (2001) e Bono (2008) podem ser utilizadas para aumentar consideravelmente a velocidade de processamento da simulao. O procedimento pode ser brevemente descrito pelos seguintes passos: (I) O procedimento iniciado determinando-se para cada elemento k o passo de tempo crtico (tEk) atravs da equao (4.9) e o valor mnimo para toda a malha

tEmin determinado. Para cada elemento, ento atribudo um mltiplo inteiro nEk, correspondente relao t E k n E k = int t E min
, com k = 1,...,nel (4.13)

onde nel o nmero total de elementos da malha. (II) Depois de o passo de tempo local de cada elemento ter sido determinado, os elementos so agrupados em g grupos baseado no seu passo de tempo local
2( g 1) n E k < 2 g t g = 2( g 1) t E min
g t Ek = t g

, com k = 1,...,nel

(4.14))

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

121
g onde tg o passo de tempo do grupo g e t Ek o passo de tempo do elemento

k pertencente ao grupo g.
O passo de tempo tN para cada n N igualado ao menor passo de tempo de todos os elementos conectados a esse n N. Dessa forma, o passo de tempo de cada n determinado por
g t N = min ( t Ee ) = 2gN 1 tE min , e

g N = min ( g e )
e

(4.15)

e pertence ao grupo nodal gN o qual corresponde ao menor valor do grupo de elementos ge de todos os elementos conectados ao n N. (III)
R Finalmente o passo de tempo t Ek de cada elemento reavaliado considerando o

menor passo de tempo de todos os ns m pertencentes a esse elemento


R t Ek = min ( t Nm ) m

(4.16)

Essa reavaliao leva cada elemento a um grupo g que o menor grupo de todos os ns a ele conectados. O mtodo adaptativo para integrao no tempo implementado tem trs relgios: o primeiro est associado marcha no tempo ou tempo corrente (tempo), o segundo est associado a cada grupo de ns (tN) e o terceiro associado a cada grupo de elementos (tG). Os dois ltimos, quando comparados ao tempo corrente indicam quando um grupo de ns ou elementos est pronto para ser atualizado. O tempo corrente atualizado com o passo de tempo mnimo

tEmin e cada grupo de ns ou elementos com seu prprio passo de tempo tg. Cada relgio
parte do mesmo valor inicial zero. Quando o relgio do tempo corrente alcana o relgio de um grupo de ns ou de elementos, esses relgios so atualizados. Cada grupo de elementos cujo relgio igual ao tempo corrente tG = tempo atualizado. Depois que todos os grupos de elementos tenham sido atualizados, o lao de ns executado. Cada grupo de ns cujo relgio igual ao tempo corrente t N = tempo atualizado. Os valores nodais das variveis de todos os ns pertencentes a grupos cujo relgio t N > tempo so linearmente interpolados para obter valores nesse tempo, resultando em grande reduo no esforo computacional e fazendo com que
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

122

todos os ns tenham valores para as variveis nodais referentes a cada tempo do problema fsico (tempo). O passo de tempo de controle ou incremento de tempo mestre, considerado como sendo o maior passo de tempo de todos os grupos de elementos, determina quando um ciclo completado. Nesse instante, todas as variveis esto referenciadas ao mesmo tempo corrente, sem nenhuma interpolao. Esse procedimento de atualizao pode ser visualizado facilmente atravs do exemplo simplificado. Considere uma malha com 5 elementos unidimensionais em 3 grupos (g = 1, 2 e 3) com os passos de tempo determinados pela equao (5.9) como 1t, 2t, 2t, 4t e 4t. Aplicando os passos (I), (II) e (III) anteriormente descritos, os seguintes grupos de ns e de elementos so obtidos: t N = {1, 1, 2, 2, 4, 4} e tG = {1, 1, 2, 2, 4}, respectivamente. O passo de tempo mestre do ciclo tc = 4t. Na figura 5.1, os ns so graficamente representados por diamantes, e os elementos por linhas conectando os respectivos ns. O tempo representado pelo eixo vertical. O relgio dos grupos de ns representado por crculos pretos, e crculos brancos so empregados para indicar os tempos nos quais uma interpolao linear foi utilizada para obter os valores das variveis nodais. No primeiro passo de integrao no tempo, figura 4.1(a), o relgio do tempo corrente t e os ns e elementos de todos os grupos so atualizados ( feita a integrao no tempo) com seus respectivos passos de tempo. O relgio de cada grupo avana para diferentes posies no tempo. O relgio do tempo corrente avana para t+t e todos os ns cujo grupo tem o relgio em uma posio frente no tempo tem o valor das variveis linearmente interpoladas para o valor corrente do tempo. No segundo passo de integrao no tempo, figura 4.1(b), o tempo corrente t+t, de modo que somente os grupos de ns e elementos cujo passo de tempo t devem ser atualizados; para todos os demais ns, a interpolao utilizada. Para atualizar o elemento 2, valores interpolados das variveis para o n 3 so necessrios. No terceiro passo de integrao, figura 4.1(c), o tempo corrente t+2t, ns 1 a 5 e elementos 1 a 4 so atualizados. Como anteriormente, para atualizar o elemento 4 no grupo 2 valores interpolados das variveis do n 5 so necessrios. O ciclo fica completo com o quarto e ltimo sub-ciclo, figura 4.1(d). Somente os ns e elementos do grupo 1 so atualizados.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

123

a)

b)

c)

d)

Figura 4.1: Tcnica de sub-ciclos aplicada na integrao no tempo.


Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

124

O ganho no tempo de processamento (speed-up) usando sub-ciclos pode ser calculado atravs da expresso apresentada por Belytschko e Gilbertsen (1992)

speed up =

t nsc = t sc

NSC

PESC
k =1

NSC

(4.17) 100

onde tnsc e tsc so os tempos necessrios para a soluo com um passo de tempo global nico (sem sub-ciclos) e usando mltiplos passos de tempo (com sub-ciclos), respectivamente, NSC o nmero de sub-ciclos e PESC. o percentual de elementos atualizado no subciclo k. No exemplo utilizado, so necessrios 4 sub-ciclos para completar um ciclo (NSC = 4) e o percentuais de elementos nos grupos g = 1, 2 e 3 so 40%, 40% e 20%, respectivamente, resultando em um ganho de 1,54 no tempo de processamento (o processamento usando subciclos 1,54 vezes mais rpido que com um nico passo de tempo global). O valor previsto pela equao (4.17) deve ser tomado como um valor terico, uma vez que considera que todo o tempo de processamento est associado a laos de elementos, enquanto que numa implementao real h esforo computacional associado a laos de ns, interpolaes e estruturas de controle. O valor de speed-up obtido significativamente menor que o valor terico.

4.2.4 A implementao paralela para o esquema de um passo com iteraes


A equao (4.8) corresponde a um conjunto de equaes relativas s variveis nodais , vi e e, que so desacopladas dentro de cada iterao de cada passo de tempo, tendo o formato genrico da equao (2.1). Assim, se o valor dessas variveis conhecido em um tempo t, o novo valor de qualquer varivel nodal, na primeira iterao do tempo t+t pode ser avaliado de forma independente, e de forma similar nas iteraes seguintes em funo dos valores na iterao imediatamente anterior. Para cada equao nodal, a informao necessria do passo de tempo anterior ou da iterao anterior somente o valor das variveis nos ns pertencentes aos elementos conectados ao n no qual a equao nodal est sendo avaliada, tornando o conjunto representado pela equao (4.8) apto a ser paralelizado de forma eficiente para mquinas de memria distribuda.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

125

No incio do processo de integrao no tempo, as equaes nodais so divididas entre os diversos processadores lgicos presentes, conforme descrito no captulo 2. Cada processador i precisa como informao inicial do valor das variveis relativas a todos os ns N i+ dos elementos conectados ao grupo de ns alocado a esse processador. Ao longo de cada iterao de cada passo de tempo, os laos de elementos da implementao do algoritmo de soluo resultante da equao (4.8) so tomados sobre o conjunto de elementos Ei , que inclui os elementos EiP conectados exclusivamente ao conjunto de ns Ni do processador e os

elementos comuns EiC conectados tanto a ns do grupo do processador i quanto a ns alocados


a outros processadores. Da mesma forma, todos os laos referentes a variveis nodais que sero utilizadas pelos elementos de Ei so feitos sobre o conjunto N i+ . Ao final de cada iterao de cada passo de tempo, cada processador lgico i envia para um outro processador lgico j o valor de , vi e e referentes aos ns do conjunto Nij e recebe deste o valor das variveis do conjunto Nji , repetindo o procedimento com tantos processadores quanto o processo de diviso de tarefas houver definido. O uso de um modelo de viscosidade artificial, especificamente no que se refere ao clculo dos valores nodais do sensor de presso Si na equao (4.12) e da mdia dos valores nodais do elemento Sele, usado na equao (4.11) exige uma comunicao extra entre processadores. Cada processador i consegue calcular a partir dos valores nodais de presso pk do conjunto

N i+ apenas os valores nodais de Sk do conjunto N i . Contudo, para o clculo do valor mdio


do sensor de presso Sele dos elementos do conjunto Ei , utilizados em (4.11), os valores nodais de Sk do conjunto N i+ so necessrios. Desta forma, o esquema explcito de Taylor-Galerkin empregado necessita, em sua forma paralela, para cada passo de tempo, de um processo de comunicao entre os processadores lgicos para a avaliao da viscosidade artificial e, para cada iterao de cada passo de tempo, de um processo de comunicao entre processadores para a atualizao das variveis nodais

, vi e e. O algoritmo est mostrado na tabela 4.4.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

126

Tabela 4.4: Algoritmo do esquema explcito de Taylor-Galerkin de um passo com iteraes, paralelizao otimizada para configuraes de memria distribuda. Etapa 1. Inicializao (a) (b) (c)

n=0:t=0 U n = valores iniciais


tele = CS Lele a + ( vi vi )
1 2

(d)

t = min ( tele )

Etapa 2. Passo de tempo

(e)

Sk =
ele

( M M L )ele p k
M ML

p ele

para Ni para Nij para Nji

(f) (g) (h) (i) (j)

Envia Sk para processador lgico j Recebe Sk do processador lgico j

Repete (f) e (g) para todos os processadores lgicos j com os quais i troca dados

Sele = media ( S k ) ns k do elemento ele


n D = CFL CAF Sele [ M M L ]ele U ele
ele

para Ei para Ei

(k)

J=0

Etapa 3. Iterao
Fi n G i n t n Fi n n +1 Un U = + + t Ak + J +1 x x x x 2 i i k i t Fi J + 2 xi
n +1

(l)

G i J xi

n +1

n +1 t n Fi J + Ak + M L 1D xi 2 xk

para Ni

(m)

Aplica as condies de contorno


Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

127

Tabela 4.4 (continuao): Algoritmo do esquema explcito de Taylor-Galerkin de um passo com iteraes, paralelizao otimizada para configuraes de memria distribuda. (n) (o) (p) Envia , vi e e para processador lgico j Recebe , vi e e do processador lgico j para Nij para Nji

Repete (n) e (o) para todos os processadores lgicos j com os quais i troca dados Se a convergncia das iteraes no satisfeita, J= J+1, retorna ao passo (m)

(q)

Etapa 3. Atualizao do tempo fsico de anlise (r) (s)

n = n+1 : t = t + t
Retorna ao passo (e)

Uma vez que, em geral, os valores da variveis so armazenados apenas para alguns valores de t (espaados por um nmero muito grande de passos de tempo), no h necessidade de um processador lgico mestre, com cada processador trocando os dados necessrios a cada iterao de cada passo de tempo diretamente com os demais processadores envolvidos de forma autnoma. O uso da tcnica de sub-ciclos no interfere na forma como o algoritmo foi paralelizado, pois, ao final de cada passo do relgio de tempo corrente, sempre esto disponveis valores das variveis nodais a serem comunicados, tenham eles sido calculados ou interpolados por um dado processador lgico. O mesmo no pode ser dito a respeito da diviso de tarefas baseada em ns, que considera a premissa de que todos os ns exigem igual esforo computacional (e tem a eles conectado igual nmero de elementos). Com o uso da tcnica de sub-ciclos, ns pertencentes a grupos de maior passo de tempo (conectados a elementos que tambm pertencem a grupos de maior passo de tempo) tem a eles associado um esforo computacional consideravelmente menor que os ns e elementos pertencentes a grupos de menor passo de tempo. Para ns e elementos do grupo 1t, todos os passos de tempo do relgio de tempo corrente exigem que o valor das variveis nodais seja calculado, ao passo que para o grupo 256t, a cada 256 passos de tempo

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

128

do relgio do tempo corrente, somente um exige que o valor das variveis nodais sejam calculadas, sendo nos demais 255 interpoladas. Se a tcnica de sub-ciclos for empregada para a soluo de problemas estacionrios (Bono, 2008), a diviso dos ns e elementos em grupos com diferentes passos de tempo feita previamente ao incio da integrao no tempo, de modo que para cada ciclo completo de passos de tempo, o esforo computacional associado a cada elemento ou n constante ao longo dos ciclos. Desta forma, embora o mtodo de diviso de tarefas possa alocar a cada processador cargas de trabalho consideravelmente diferentes, o processo de balanceamento permite uma redistribuio desses esforos. Se um dado processador lgico do conjunto tem um grupo de ns associado a elementos muito grandes (e, portanto, com passos de tempo grandes), o processamento desses ns e elementos ser muito rpido, pois na maioria dos passos do relgio de tempo corrente somente so feitas interpolaes, de modo que sua

velocidade relativa em relao a outro processador cujo grupo de ns est associado a


elementos pequenos (e, conseqentemente, com pequenos passos de tempos, poucas interpolaes, clculo das variveis nodais na maioria dos passos do relgio de tempo corrente) ser maior. O processo de balanceamento ir retirar ns (e elementos) dos processadores mais lentos (de menor velocidade relativa) e aloc-los aos processadores mais rpidos (de maior velocidade relativa), at que haja equalizao. Entenda-se velocidade

relativa como a relao inversa entre os tempos que cada processador leva para processar o
lote de dados a ele alocados, sem relao direta com a velocidade real (clock) do processador. Nessas condies, no h necessidade de um processador que coordene o fluxo de dados entre os processadores a no ser para consolidar os resultados em intervalos de tempo para os quais se queira o registro da soluo obtida. Se a tcnica de sub-ciclos for empregada em problemas transientes, uma avaliao prvia ao incio do processo de integrao no tempo dos passos de tempo mnimos dos elementos no suficiente. medida que o escoamento vai se desenvolvendo, diferentes regies da malha ficam sujeitas a altos gradientes das variveis de campo, ou mesmo a campos de velocidades muito baixas ou quase estacionrias, exigindo que o passo de tempo empregado nessas regies seja pequeno para manter a preciso do processo de simulao. Dessa forma, os ns e elementos da malha mudariam dinamicamente de grupos de sub-ciclos ao longo da anlise, exigindo que tambm a redistribuio de tarefas fosse refeita em determinados pontos do avano temporal da simulao. O uso de uma programao do tipo mestre-escravo se faz
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

129

necessria para, sempre que mudar a distribuio de tarefas, reunir os valores das variveis nodais no processador mestre e redistribu-los pelos processadores escravos. Esse procedimento no foi implementado neste trabalho.

4.3 ESCOAMENTOS INCOMPRESSVEIS EM REGIME SUBSNICO


Para simulao de escoamentos incompressveis em regime subsnico foi utilizado o algoritmo empregado por Braun (2007) e Bono (2008) onde, para integrao no tempo, utilizado um esquema de dois passos.

4.3.1 A formulao de Taylor-Galerkin com esquema de dois passos.


O esquema explicito de dois passos de Taylor-Galerkin utilizado para integrao no tempo foi proposto por Kawahara e Hirano (1983) empregado para problemas incompressveis com a hiptese de pseudo-compressibilidade. Expandindo as variveis de conservao U em

t = t n +1 2 = t n + t 2 atravs da srie de Taylor incluindo a primeira e a segunda derivadas,


obtida a expresso

n +1 2

n t n t U = U + 2 t 4 t

(4.18)

onde U n +1 2 = U n +1 2 U n , t = t n +1 t n o passo de tempo, n e n+1/2 indicam t e t+t/2, respectivamente. Substituindo a equao (4.3) e sua derivada na equao (4.18) e desprezando os termos de ordem superior, obtida a expresso
n+ 1 n n n G i t Fi t n Fi = U + + Ak 2 4 xk xi xi xi n

(4.19)

O campo das velocidades deve ser corrigido a partir do campo de presses obtido em t+t/2 atravs da expresso
vin +1 2 = vin +1 2 1 t 2 p n +1 2 ij 8 x j

(4.20)

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

130

Para obter os valores das variveis de conservao U em n+1 pode-se aplicar uma expanso em sries de Taylor, desprezando os termos de ordem superior, da forma
U
n +1 n n t U = U + t U + t 2 t n

(4.21)

Substituindo a equao (4.3) e sua derivada temporal avaliadas em t+t/2 na equao (4.21), obtm-se:
n+ 1

n +1

=U

F n + 1 2 G n + 1 2 t n + 1 F n + 1 2 i + t i + Ak 2 i xi 2 x x x i i k

(4.22)

onde n+1 e n+1/2 indicam t+t e t+t/2, respectivamente.

4.3.2 A implementao paralela para o esquema de dois passos


As equaes (4.19) e (4.22) correspondem a um conjunto de equaes relativas s variveis nodais , vi e e, que so desacopladas dentro de cada passo de tempo, tendo o formato genrico da equao (2.1). Assim, se o valor dessas variveis conhecido em um tempo t, o novo valor de qualquer varivel nodal no tempo t+t/2 pode ser avaliado de forma independente, e de forma similar em t+t em funo dos valores em t+t/2. Para cada equao nodal, a informao necessria do passo de tempo anterior somente o valor das variveis nos ns pertencentes aos elementos conectados ao n no qual a equao nodal est sendo avaliada, tornando o conjunto representado pelas equaes (4.19) e (4.22) apto a ser paralelizado de forma muito similar que foi feita para os escoamentos compressveis em regime transnico e subsnico. Como o escoamento incompressvel, o valor da massa especfica constante, diminuindo de 5 para 4 o nmero de variveis nodais a serem comunicadas entre processadores lgicos. A implementao foi feita substituindo-se a energia total especfica e pela presso termodinmica p como varivel nodal bsica, sendo a energia total especfica e a temperatura calculadas em funo das demais. Uma observao deve ser feita com relao equao (4.20) que, sendo implementada elemento-por-elemento, permite ao processador lgico i, a partir das presses do conjunto nodal N i+ , calcular o valor corrigido da velocidade somente para o conjunto nodal N i . Como
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

131

os valores da presso e da velocidade so necessrios no conjunto nodal N i+ em t+t/2 para permitir o clculo das variveis em t+t, o processo de comunicao das variveis entre os processadores em t+t/2 deve ser dividido em duas etapas: primeiro h a comunicao do valor da presso, o que permite a cada processador corrigir os valores da velocidade nos seus correspondentes grupos de ns, e ento feita a comunicao entre processadores do valor da velocidade. Desta forma, o esquema explcito de Taylor-Galerkin empregado necessita, em sua forma paralela, para o primeiro meio passo de tempo t/2, de dois processos de comunicao entre os processadores lgicos para a atualizao das variveis nodais vi e p, e para o segundo meio passo, um processo de comunicao. O algoritmo est mostrado na tabela 4.5. Ao longo de cada passo de tempo, os laos de elementos utilizados na implementao do algoritmo de soluo resultante das equaes (4.19) e (4.22) so tomados sobre o conjunto de elementos Ei , que inclui os elementos EiP conectados exclusivamente ao conjunto de ns Ni do processador e os elementos comuns EiC conectados tanto a ns do grupo do processador i quanto a ns alocados a outros processadores. Da mesma forma, todos os laos referentes a variveis nodais que sero utilizadas pelos elementos de Ei so feitos sobre o conjunto N i+ .

Tabela 4.5: Algoritmo do esquema explcito de Taylor-Galerkin de dois passos sem iteraes, paralelizao otimizada para configuraes de memria distribuda. Etapa 1. Inicializao (a) (b) (c) n=0:t=0 U n = valores iniciais
tele = CS Lele a + ( vi vi )
1 2

(d)

t = min ( tele )

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

132

Tabela 4.5 (continuao): Algoritmo do esquema explcito de TaylorGalerkin de dois passos sem iteraes, paralelizao otimizada para configuraes de memria distribuda. Etapa 2. Passo de tempo t = t + t 2
n n n G i t Fi t n Fi + A k xi xi 2 4 xk xi

(e)

n+ 1

= Un +

para Ni

(f) (g) (h) (i) (j)

Aplica as condies de contorno Envia p para processador lgico j Recebe p do processador lgico j para Nij para Nji

Repete (g) e (h) para todos os processadores lgicos j com os quais i troca dados

vin +1 2 = vin +1 2

1 t 2 p n +1 2 ij x j 8

para Ni para Nij para Nji

(k) (l) (m)

Envia vi para processador lgico j Recebe vi do processador lgico j

Repete (k) e (l) para todos os processadores lgicos j com os quais i troca dados

Etapa 3. . Passo de tempo t = t + t


F n + 1 2 G n + 1 2 t n + 1 F n + 1 2 i + t i + Ak 2 i 2 x x x x i i k i

(n)

n +1

=U

n+ 1

para Ni

(o) (p) (q) (r)

Aplica as condies de contorno Envia vi e p para processador lgico j Recebe vi e p do processador lgico j para Nij para Nji

Repete (p) e (q) para todos os processadores lgicos j com os quais i troca dados

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

133

Tabela 4.5 (continuao): Algoritmo do esquema explcito de Taylor-Galerkin de dois passos sem iteraes, paralelizao otimizada para configuraes de memria distribuda. Etapa 4. Atualizao do tempo fsico de anlise (s) (t) n = n+1 : t = t + t Retorna ao passo (e)

Quanto necessidade de um processador lgico mestre, valem os mesmos comentrios feitos a respeito do esquema de um passo com iteraes.

4.4 INTERAO FLUDO ESTRUTURA


Para simulao de problemas de Interao Fludo-Estrutura, foi utilizada a formulao arbitrria Lagrangeana-Euleriana (ALE) com acoplamento particionado entre o fludo e a estrutura e interfaces no coincidentes empregada por Braun (2007).

4.4.1 A anlise conjunta do fludo e da estrutura.


Problemas de Dinmica dos Fludos tradicionalmente utilizam uma descrio Euleriana, na qual a malha tratada como um referencial fixo atravs do qual o fludo escoa. Por outro lado, na Mecnica dos Slidos, utilizada a descrio Lagrangeana, na qual a malha move-se juntamente com os deslocamentos da matria. Para permitir que os movimentos apresentados pela estrutura ao vibrar sob a ao do escoamento sejam percebidos e computados adequadamente na anlise do fludo, pode-se utilizar uma formulao ALE, cuja idia bsica est na introduo de um domnio de referncia que se move arbitrariamente e de forma independente aos pontos espaciais e materiais, sendo que as equaes da Mecnica do Contnuo passam a ser descritas a partir de pontos fixos definidos no domnio de referncia (Braun, 2007). Na implementao utilizada, a discretizao espacial empregada para a simulao do escoamento dividida em dois sub-domnios arbitrrios: um sub-domnio puramente Euleriano (no qual os ns da malha utilizada na discretizao permanecem fixos); e um subComputao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

134

domnio ALE (no qual as coordenadas dos ns da malha sofrem alteraes ao longo do tempo) que engloba a estrutura imersa no escoamento. O sub-domnio ALE apresenta duas regies de contorno, uma, denominada cotorno ALE, que faz interface com o sub-domnio Euleriano, de modo que os ns nela contidos permanecem fixos, e a outra, denominada de contorno slido, que faz interface com a estrutura, e cujos ns reproduzem, conseqentemente, os deslocamentos e a velocidade da estrutura a cada instante. As velocidades dos ns da malha pertencentes ao sub-domnio ALE e internos aos contornos so calculados a partir dos valores de velocidade da malha nas duas regies de contorno, interpolando-se em funo de uma potncia do inverso da distncia de cada n aos contornos. As coordenadas dos ns da malha a cada instante so calculadas a partir das velocidades. Para o clculo da velocidade do fludo em cada ponto do domnio, a velocidade da malha deve ser considerada. A integrao no tempo feita utilizando-se o esquema explcito de dois tempos descrito na seo 4.3, com a condio de estabilidade dada pela equao (4.9) em funo do tamanho dos elementos empregados na discretizao espacial. Para o acoplamento entre o fludo e a estrutura utiliza-se o tratamento particionado. A estrutura tratada computacionalmente como uma entidade isolada, com uma malha independente que pode, inclusive, ser no coincidente na interface (contorno slido) com a malha do fludo. Essa caracterstica extremamemente interessante porque permite o uso de uma malha bastante refinada para o fludo na regio de interface, sem acarretar um esforo computacional extra na discretizao da estrutura desnecessariamente. A estrutura considerada como um corpo deformvel constitudo de um material elstico linear com a presena de no linearidade geomtrica. A equao de equilbrio dinmico integrada no tempo utilizando-se o mtodo implcito de Newmark no contexto do mtodo de estabilizao -Generalizado, dando origem a um processo iterativo cujos sistemas de equaes resultantes so resolvidos utilizando-se o Mtodo dos Gradientes Conjugados. Maiores detalhes podem ser vistos em Braun (2007). A condio de estabilidade do mtodo de Newmark empregado leva ao uso de um passo de tempo em geral maior que o passo de tempo necessrio para a anlise do fludo, de forma que a marcha no tempo da soluo feita atravs de sub-ciclos, com a estrutura avanando com o passo de tempo t e o fludo com passo t/n, sendo n um inteiro.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

135

4.4.2 A implementao paralela para IFE


Em funo da diferena entre os passos utilizados na marcha no tempo entre o fludo e a estrutura, a implementao feita com a caracterstica de sub-ciclos, onde um determinado nmero de passos feito na integrao no tempo para o fludo para cada passo na integrao no tempo para a estrutura. Como os domnios do fludo e da estrutura no so resolvidos simultaneamente, mas alternadamente, e as malhas relativas a cada domnio so diferentes e independentes, com caractersticas geomtricas prprias (formato geomtrico, nmero de ns, nmero e tamanho dos elementos, etc), cada malha precisa ser dividida de forma independente entre os processadores lgicos presentes para garantir eficincia de paralelizao. Uma vez que as malhas para o fludo e para a estrutura so independentes, com distribuies de tarefas (particionamento de malhas) independentes, a transferncia de dados do fludo para a estrutura e vice-versa de um processador diretamente para outro torna-se bastante complexa. Portanto, faz-se necessrio um modelo de programao paralela do tipo mestre-escravo para coordenar a transferncia de dados entre os diversos processadores ao se passar da anlise do fludo para a estrutura , e desta novamente para o fludo, como pode ser visto na Tabela 4.6.

Tabela 4.6: Algoritmo de soluo para problemas de interao fludoestrutura, paralelizao otimizada para configuraes de memria distribuda. Etapa 1. Inicializao (a) (b) (c) (d) (e) (f) testrut = 0 : t fludo = 0 testrut = m.t fludo m = int

Aplicao das condies iniciais para o slido e para ao fludo n=0


n = u n no contorno slido x n no sub-domnio ALE interporlar x

mestre e escravos mestre e escravos

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

136

Tabela 4.6 (continuao): Algoritmo de soluo para problemas de interao fludo-estrutura, paralelizao otimizada para configuraes de memria distribuda. Etapa 2. Integrao no tempo do Fludo
x n +1 = x n +

(g) (h) (i) (j)

nt fluido testrut

n no sub-domnio ALE x

mestre e escravos mestre e escravos

Taylor-Galerkin, esquema de dois passos t fluido = t fluido + t fluido : n = n + 1 Caso n < m retorna ao passo (g)

Etapa 3. Transferncia de dados do Fludo para Estrutura (k) (l) (m) Comunicao das presses no contorno slido Presso no fludo transferida para cargas na estrutura Comunicao das cargas na estrutura escravos para mestre mestre mestre para escravos

Etapa 4. Integrao no tempo da Estrutura (n) (o) Newmark no contexo -Generalizado testrut = testrutu + testrut mestre e escravos

Etapa 5. Transferncia de dados da Estrutura para o Fludo (p) (q) (r) (s) (t) (u)
n do contorno slido Consolidao das velocidades u n de todo o contorno slido Comunicao de u n = u no contorno slido x n no sub-domnio ALE interporlar x

escravos para mestre mestre para escravos mestre e escravos mestre e escravos

n=0 retorna Etapa 2


Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

137

n so as coordenadas dos ns da malha de discretizao espacial do fludo, Na tabela 4.6, x n as velocidades nodais obtidos para a estrutura, sendo a regio de interface Estruturae u

Fludo chamada de contorno slido indiscriminadamente para as duas malhas. A paralelizao da etapa (h) est descrita em detalhes na seo 4.3.2. A etapa (n) consiste em um processo iterativo que consiste numa srie de etapas baseadas em laos de elementos (e portanto facilmente paralelizveis) e da soluo de um sistema de equaes, feito atravs do Mtodo dos Gradientes Conjugados cuja paralelizao est detalhada na seo 4.1. Quando a malha utilizada para a discretizao da estrutura muito pequena (poucos ns e elementos), pode ser vantajoso que a etapa da estrutura, passos (n) e (o), seja processada somente na mquina mestre. Nesse caso, os passos (m) e (p) no so realizados.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

138

5 RESULTADOS OBTIDOS PARA CONFIGURAES DE MEMRIA DISTRIBUDA


As tcnicas para a diviso de tarefas apresentadas no Captulo 2 e de ordenamento da comunicao de dados entre processadores lgicos apresentadas no Captulo 3 foram aplicadas para os algoritmos paralelos apresentados no captulo 4. Os cdigos resultantes foram implementados em FORTRAN 90 utilizando-se os compiladores Compaq Visual Fortran verso 6.6c e Intel Visual Fortran 9.1. Para comunicao de dados entre os processadores foi utilizada a biblioteca MPICH verso 1.2.5, uma verso de MPI desenvolvida pelo Argonne National Laboratory (2004), Estados Unidos. O sistema operacional utilizado foi o Windows XP Professional. Antes de serem paralelizados, todos os cdigos foram otimizados segundo os critrios contidos no Anexo A, a fim de se obter a maior velocidade de processamento possvel e evidenciar possveis problemas de saturao na comunicao entre computadores em funo da taxa de transmisso e latncia da rede de comunicao empregada. A tabela 5.1 resume os testes efetuados com diversas configuraes, indicando o tipo de problema (Problema), o nmero de computadores / processadores empregado nos testes (CPUs), a arquitetura e freqncia do ncleo dos processadores empregados, em GHz (Classe), o tipo de elemento finito utilizado na discretizao espacial das malhas (Malha), o tamanho dos problemas testados em milhares de graus de liberdade (GL x1000), a taxa de transferncia da rede Ethernet de comunicao entre computadores (Rede) e os tipos de tratamentos utilizados nas malhas para a diviso de tarefas (Trat.).

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

139

Tabela 5.1: Descrio dos testes de paralelismo realizados para configuraes de memria distribuda.
Problema
Flexo de placa elstica linear Solver de Gradientes Conjugados Escoamento compressvel em torno de esfera Escoamento compressvel em torno de esfera Escoamento compressvel em torno de esfera Escoamento compressvel em torno de veculo espacial Escoamento compressvel em torno de esfera

CPUs
8

Classe
Athlon XP 1,3 a 2,1 Athlon XP 1,3 a 1,5 Athlon 64 2,3 a 2,5 Athlon 64 2,0 a 2,2 Athlon 64 2,0 a 2,2 Athlon64 2,0 a 2,2 Athlon 64 2,0 a 2,2 Athlon 64 2,0 a 2,2 Athlon 64 2,0 a 2,2 Athlon 64 2,0 a 2,2 Athlon 64 2,0 a 2,2 Athlon 64 2,0 a 2,2 Athlon 64 2,0 a 2,2 Athlon 64 2,0 a 2,2

Malha
Hexaedros

GL x1000
43 a 2120 35 a 2826 35 a 1193

Rede Trat.
100M 1RN

Hexaedros

100M

1RN

Hexaedros

100M

1RN

11

Hexaedros

35 a 5129 1056 e 4746 305

1G

1RN 1RN nRN 1RN nRN 1RN nRN 1RN nRN 1RN nRN 1RN 1RN nRN 1RN nRN 1RN nRN 1RN nRN

20

Hexaedros

1G

20

Tetraedros

1G

Escoamento compressvel em torno de esfera

Tetraedros

305 229 a 8488 1359

100M

Escoamento compressvel em torno de avio

20

Tetraedros

1G

Escoamento compressvel em torno de avio Escoamento compressvel em torno de asa Uso de subciclos Escoamento incompressvel em cavidade Escoamento incompressvel bidimensional em torno de edificao Escoamento incompressvel tridimensional em torno de edificao rgida Interao Fludo Estrutura Escoamento incompressvel em cavidade com fundo flexvel Interao Fludo Estrutura Escoamento incompressvel bidimensional em torno de edificao com teto flexvel Interao Fludo Estrutura Escoamento incompressvel em torno de edificao tridimensional flexvel

Tetraedros

100M

20

Tetraedros

554

1G

20

Hexaedros

21

1G

20

Hexaedros

182

1G

20

Hexaedros

1534

1G

20

Hexaedros

21

1G

20

Athlon 64 2,0 a 2,2

Hexaedros

182

1G

1RN nRN

20

Athlon 64 2,0 a 2,2

Hexaedros

1534

1G

1RN nRN

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

140

5.1 MTODO DOS GRADIENTES CONJUGADOS


Para teste do algoritmo paralelo de soluo de sistemas de equaes utilizando o Mtodo dos Gradientes Conjugados, o mesmo foi implementado em programa de anlise esttica elstica linear de slidos tridimensionais usando elementos hexadricos lineares de 8 ns com integrao reduzida, livre de travamento volumtrico e travamento de cisalhamento e que no apresenta modos esprios. Na formulao do elemento, foi utilizado apenas um ponto de integrao, de forma que a matriz de rigidez calculada de forma explcita e o tempo computacional necessrio para o seu processamento bastante reduzido. Mais detalhes podem ser encontrados em Duarte Filho (2002). Os testes de avaliao de desempenho do solver foram feitos para o problema de uma placa quadrada espessa, com lado igual a 4 unidades de comprimento e espessura igual a 0,8 unidades, submetida a uma carga de 10 unidades de fora centrada na face superior, e apoiada em todo o contorno da face inferior, conforme figura 5.1. O mdulo de elasticidade do material adotado foi de 107 unidades de fora por unidade de superfcie, com um coeficiente de Poisson de 0,3. A fim de verificar a evoluo do desempenho do solver paralelo usando Gradientes Conjugados com o aumento do tamanho do sistema de equaes, diversas malhas foram utilizadas sobre a mesma geometria, com nmero crescente de elementos e ns, mantendo aproximadamente constante a razo de aspecto dos elementos de 1:1:1 e garantindo a existncia de um n central onde a carga aplicada. O uso de elementos com tal razo de aspecto em um problema de placa espessa d origem a sistemas extremamente bem condicionados e permite o mximo desempenho do solver de gradientes conjugados quanto ao nmero de iteraes necessrias para ser alcanada a convergncia. Em todos os testes a tolerncia usada para determinar a convergncia do Mtodo dos Gradientes Conjugados foi de 10-6, tanto com uso do pr-condicionador Diagonal quanto com o pr-condicionador de Cholesky. A menor das malhas utilizadas est representada na figura 5.1 com 10x10x2 elementos. A famlia de malhas utilizada e suas caractersticas esto mostradas na tabela 5.2.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

141
1

10 2 10

Figura 5.1: Placa quadrada espessa com carga centrada utilizada nos testes de desempenho do solver paralelo usando Gradientes Conjugados

Tabela 5.2: Famlia de malhas utilizada no teste de desempenho do solver paralelo usando Gradientes Conjugados Malha PLACA010 PLACA016 PLACA020 PLACA026 PLACA030 PLACA036 PLACA040 PLACA046 PLACA050 PLACA060 PLACA070 PLACA080 PLACA090 PLACA100 PLACA110 PLACA120 PLACA130 PLACA140 PLACA150 Dimenses em elementos 10 x 10 x 2 16 x 16 x 3 20 x 20 x 4 26 x 26 x 5 30 x 30 x 6 36 x 36 x 7 40 x 40 x 8 46 x 46 x 9 50 x 50 x 10 60 x 60 x 12 70 x 70 x 14 80 x 80 x 16 90 x 90 x 18 100 x 100 x 20 110 x 110 x 22 120 x 120 x 24 130 x 130 x 26 140 x 140 x 28 150 x 150 x 30 Nmero de elementos 200 768 1.600 3.380 5.400 9.072 12.800 19.044 25.000 43.200 68.600 102.400 145.800 200.000 266.200 345.600 439.400 548.800 675.000 Nmero de ns 363 1.156 2.205 4.374 6.727 10.952 15.129 22.090 28.611 48.373 75.615 111.537 157.339 214.221 283.383 366.025 463.347 576.549 706.831 Nmero de equaes (gl) 1.089 3.468 6.615 13.122 20.181 32.856 45.387 66.270 85.833 145.119 226.845 334.611 472.017 642.663 850.149 1.098.075 1.390.041 1.729.647 2.120.493

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

142

Embora no seja objetivo deste trabalho comparar o desempenho computacional dos diversos solvers, as 8 primeiras malhas foram resolvidas por um cdigo seqencial, em um nico processador, utilizando o Mtodo dos Gradientes Conjugados com pr-condicionador Diagonal e com uma soluo direta usando a eliminao de Gauss, com malha ordenada para banda mnima. Ambos cdigos foram otimizados de acordo com a diretrizes mostradas no Anexo 1. A velocidade relativa do solver usando Gradientes Conjugados em relao ao solver direto pode ser vista na Figura 5.2 em funo do nmero de equaes do sistema. At a malha PLACA020 (6615 equaes) a soluo direta de Gauss foi mais rpida, mas a partir da a soluo por Gradientes Conjugados se tornou mais eficiente, alcanando 12,74 vezes a velocidade de processamento da soluo direta para 66 mil equaes. O computador utilizado para o teste contava com 512 MB de memria RAM, e o exemplo com 66 mil equaes foi o maior exemplo que podia ser resolvido com a soluo direta de Gauss com essa quantidade de memria. Pelo fato de no ser preciso a montagem da matriz de rigidez global da estrutura, o mesmo computador foi capaz de resolver sistemas com at 470 mil equaes com Gradientes Conjugados.
14 V elocidade relativa 12 10 8 6 4 2 0 0 10 20 30 40 50 60 70 Equaes (x1000)

Figura 5.2: Velocidade relativa da soluo de sistema de equaes atravs do Mtodo dos Gradientes Conjugados com pr-condicionador Diagonal em comparao com a soluo do mesmo sistema pela decomposio direta de Gauss. preciso considerar que o sistema de equaes utilizado extremamente bem condicionado, favorecendo o desempenho de Gradientes Conjugados por exigir um nmero mnimo de iteraes para a convergncia, mas mesmo para sistemas mal condicionados a tendncia clara: a velocidade relativa de soluo de Gradientes Conjugados vai se tornando exponencialmente maior com o aumento do tamanho do sistema. tornando sua escolha adequada para problemas de Elementos Finitos em que malhas muito refinadas se fazem

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

143

necessrias, seja pela complexidade da geometria a ser discretizada, seja pela complexidade do fenmeno fsico sendo simulado. Em termos de demanda de memria, a vantagem clara. A implementao paralela foi testada com um conjunto de 8 computadores heterogneos formando um cluster temporrio, conectados entre si atravs de uma rede Fast Ethernet (100 Mbps). Cada computador tinha somente 1 processador com um ncleo e 512 MB de memria DDR. A especificao de cada processador est mostrada na tabela 5.3. Os computadores foram agrupados seguindo sempre o nmero de ordem indicado (4 computadores: do 1 ao 4, e assim por diante). A diviso de tarefas empregada utilizou o tratamento 1RN, e foi feito o balanceamento das cargas de trabalho atribudas a cada computador.

Tabela 5.3: Conjunto de computadores utilizados em cluster temporrio para teste da soluo paralela usando Gradientes Conjugados Computador 1 2 3 4 5 6 7 8 Especificao AMD Athlon XP 2,08 GHz AMD Athlon XP 2,0 GHz AMD Athlon XP 2,0 GHz AMD Athlon XP 1,53 GHz AMD Athlon XP 1,53 GHz AMD Athlon XP 1,53 GHz AMD Athlon Thunderbird 1,33 GHz AMD Athlon Thunderbird 1,33 GHz

5.1.1 Pr-condicionador diagonal ou de Jacobi


Para os testes com o pr-condicionador Diagonal ou de Jacobi, foram empregadas as malhas de PLACA040 a PLACA150. Em funo da heterogeneidade dos computadores utilizados em termos de desempenho, o tempo de processamento de cada computador para cada problema foi avaliado, de modo a se poder quantificar os ganhos obtidos com a soluo paralela. Em funo da capacidade de memria, os computadores somente puderam processar de modo seqencial as malhas de PLACA040 a PLACA090. Para as comparaes com as malhas
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

144

maiores, foram feitas extrapolaes dos tempos de processamento de cada mquina, como mostrado na figura 5.3, ajustando-se uma funo do tipo y = a.xy com ndice de determinao R2 = 0,9999 ou superior (indicado por extrap. na legenda). Ainda assim, os resultados devem ser considerados com cuidado.

1600 1400 Tempo de Soluo (s) 1200 1000 800 600 400 200 0 0 500000 1000000 1500000 2000000 2500000 Graus de Liberdade Comp. 1 Comp. 4 Extrap Extrap Comp. 2 Comp. 7 Extrap Extrap

Figura 5.3: Tempo de soluo utilizando Gradientes Conjugados com pr-condicionador Diagonal em funo do tamanho do problema em graus de liberdade, para os diversos processadores utilizados. O speed-up obtido para conjuntos de 2 a 8 computadores para cada tamanho de problema poder ser visto na figura 5.4. Mesmo os computadores sendo heterogneos, o speed-up terico igual ao nmero de computadores empregado em funo da normalizao decorrente da equao (1.6). O ponto de trmino de cada curva indica o nmero mximo de equaes que pode ser resolvido por aquele conjunto usando somente a memria principal (sem uso de memria virtual). Como esperado, quanto maior o nmero de computadores empregados, maior deve ser o tamanho do problema para que o speed-up obtido se aproxime do valor terico. Se as matrizes de rigidez das malhas utilizadas tiverem largura de banda aproximadamente constante, o tempo absoluto gasto com a troca de dados entre os computadores no sofre grandes alteraes, pois o tratamento 1Rn empregado na diviso de tarefas faz com que o primeiro e o ltimo computadores do conjunto troquem dados somente com um outro computador, e todos os demais com somente dois, e essa condio independe, dentro de certos
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

145

limites, do nmero de mquinas utilizadas. Assim, os computadores mais crticos em termos de tempo de comunicao so os centrais. Contudo, a relao entre o tempo de comunicao e o tempo de processamento vai se tornando cada vez maior com o aumento do nmero de computadores, limitando o ganho de velocidade, conforme a Lei da Amdhal. Contribui para isso a baixa velocidade da rede de comunicao, de apenas 100 Mbps.

6 5 4 Speed-up 3 2 1 0 0 500 1000 1500 2000 2500 Graus de Liberdade (x1000) 2 4 6 8

Figura 5.4: Speed-up da implementao paralela para Gradientes Conjugados com prcondicionador Diagonal em funo do tamanho do problema para diferentes tamanhos de clusters (2 a 8 computadores). Alm disso, com o aumento do nmero de mquinas, aumenta tambm a redundncia de esforo computacional: a cada novo computador que adicionado ao grupo, uma parcela maior da malha passa a ser processada por 2 computadores ao invs de um. O resultado desses fatores que, para cada tamanho de problema, existe um nmero timo de computadores atuando em paralelo a partir do qual a redundncia no esforo computacional decorrente da incluso de cada novo computador no conjunto no compensada pela diminuio da carga de trabalho de cada computador, de modo que o speed-up passa a diminuir ao invs de aumentar. Esse fenmeno mostrado na figura 5.5, onde se pode ver a evoluo do speed-up com o nmero de computadores utilizados em paralelo, para 4 tamanhos de problemas. Entre 45 e 227 mil graus de liberdade, o uso de 6 computadores proporciona o mximo speed-up, e a adio de mais computadores alm desse nmero provoca diminuio da velocidade de
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

146

processamento do conjunto, um corportamento previsto pela lei da Amdahl. A diminuio do valor de speed-up representa o efeito da redundncia do esforo computacional e da comunicao em rede sobre o processo. Para 334 mil graus de liberdade, o ponto de timo parece se deslocar para 8 computadores, e para alm disso em problemas maiores, comportamento previsto pela lei de Gustafson.

6 5 4 Speed-up 3 2 1 0 0 2 4 Computadores 45 227 335 850 Terico 6 8

Figura 5.5: Speed-up de Gradientes Conjugados com pr-condicionador Diagonal em funo nmero de computadores utilizados para alguns tamanhos de problemas em milhares de graus de liberdade. A figura 5.6(a) mostra a eficincia de paralelizao obtida para os diversos tamanhos de problema e a figura 5.6(b) em funo do nmero de computadores empregados em paralelo. A rede relativamente lenta e a redundncia do esforo computacional fazem com que a eficincia de conjuntos maiores de computadores atuando em problemas muito pequenos seja muito baixa. A figura 5.7 mostra a frao serial de Karp-Flatt calculada em funo dos valores de speed-up obtidos. Para problemas com at 227 mil graus de liberdade, a escalabilidade ruim, uma vez que a frao serial cresce, especialmente com o uso de 8 computadores. A partir de 335 mil graus de liberdade, a frao serial tende a ficar constante, indicando boa escalabilidade. Fica bastante evidente por esse grfico a perda de escalabilidade resultante da adio dos dois ltimos computadores, os mais lentos, especialmente em problemas pequenos.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

147

100% 90% Eficincia de paralelizao 80% 70% 60% 50% 40% 30% 20% 0 500 1000 1500 2000 2500 Graus de Liberdade (x1000) 2 4 6 8 Eficincia de paralelizao

100% 90% 80% 70% 60% 50% 40% 30% 20% 0 2 4 Computadores 45 227 335 850 6 8

(a)

(b)

Figura 5.6: Eficincia de paralelizao de Gradientes Conjugados com pr-condicionador Diagonal (a) em funo do tamanho do problema para diferentes tamanhos de clusters e (b) em funo do tamanho de cluster para diferentes tamanhos de problemas em milhares de graus de liberdade

0,6 0,5 0,4 0,3 0,2 0,1 0,0 0 200 400 600 800 1000 Graus de Liberdade (x1000) 2 4 6 8

0,6 0,5 0,4 0,3 0,2 0,1 0,0 0 2 4 6 8 10 Computadores 45 227 335 850

Frao serial

(a)

Frao serial

(b)

Figura 5.7: Frao serial de Karp-Flatt para Gradientes Conjugados com pr-condicionador Diagonal (a) em funo do tamanho do problema para diferentes tamanhos de clusters e (b) em funo do tamanho de cluster para diferentes tamanhos de problemas em milhares de graus de liberdade.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

148

Para verificar a influncia da heterogeneidade dos computadores trabalhando em paralelo em termos de capacidade de processamento, um segundo conjunto de 4 mquinas foi utilizado para teste com as malhas PLACA040 a PLACA090. Todos os computadores possuam 512 MB de memria DDR, e as especificaes dos processadores esto mostradas na tabela 5.4. As eficincias de paralelizao desse conjunto e do conjunto anterior utilizando os 4 primeiros computadores esto mostradas na figura 5.8.

Tabela 5.4: Conjunto de computadores heterogneos utilizados em cluster temporrio para teste da soluo paralela usando Gradientes Conjugados Computador 1 2 3 4 Especificao AMD Athlon XP 2,35 GHz AMD Athlon XP 2,10 GHz AMD Athlon Thunderbird 1,35 GHz AMD Athlon Pluto 0,8 GHz

80%

Eficincia de Paralelizao

75%

70%

65%

60%

55% 0 100000 200000 Graus de Liberdade Mais Heterogneo Mais Homogneo 300000 400000

Figura 5.8: Eficincia de paralelizao de Gradientes Conjugados com pr-condicionador Diagonal em funo tamanho do problema em graus de liberdade para conjuntos de 4 computadores com diferentes graus de homogeneidade.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

149

Apesar do processo de balanceamento da distribuio de tarefas compensar parcialmente a heterogeneidade do conjunto, mais eficiente a utilizao de computadores com um desempenho prximo entre si do que computadores de capacidades de processamento muito diferentes. Em funo do balanceamento, um computador menos potente receber um conjunto menor de ns e elementos para processar, mas se a malha apresentar uma largura de banda aproximadamente constante e for utilizado o tratamento 1RN, a quantidade de dados a ser comunicada atravs da rede e o nmero de elementos redundantes desse computador no muito diferente dos correspondentes da mquina mais potente, levando perda de eficincia.

5.1.2 Pr-condicionador de Cholesky


Para os testes com o pr-condicionador de Cholesky, foi empregado o mesmo conjunto de computadores indicado na tabela 5.3 e os mesmos procedimentos de avaliao do desempenho da soluo paralela em relao soluo seqencial utilizados para o prcondicionador Diagonal. Em funo da necessidade de armazenamento das matrizes fatoradas do pr-condicionador de Cholesky, cada computador individualmente conseguiu resolver apenas os problemas de PLACA040 a PLACA070 sem o uso de memria virtual. Com o conjunto de 8 computadores, foi possvel a soluo das malhas at PLACA130. Para as comparaes com as malhas maiores (entre PLACA080 e PLACA130), foram feitas extrapolaes dos tempos de processamento de cada mquina, como mostrado na figura 5.9, atravs de um ajuste perfeito de uma funo do tipo y = a.xy (ndice de determinao R2 = 1,0). Ainda assim, os resultados devem ser considerados com cuidado. Pela comparao das figuras 5.3 e 5.9, nota-se que apesar do pr-condicionador de Cholesky ter uma melhor taxa de convergncia (menor nmero de iteraes para a mesma tolerncia), o tempo total de soluo obtido foi maior, pois ele exige um esforo computacional consideravelmente maior que o pr-condicionador Diagonal. Contudo, importante lembrar que os exemplos em anlise so extremamente bem condicionados, e que sistemas mal condicionados exigem um nmero muito maior de iteraes ou simplesmente no h convergncia quando empregado o pr-condicionador Diagonal.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

150

1200

1000 Tempo de Soluo (s)

800

600

400

200

0 0 250000 500000 750000 1000000 1250000 1500000 Graus de Liberdade Comp. 1 Comp. 4 Extrap. Extrap. Comp. 2 Comp. 7 Extrap. Extrap.

Figura 5.9: Tempo de soluo utilizando Gradientes Conjugados com pr-condicionador de Cholesky em funo do tamanho do problema em graus de liberdade, para os diversos processadores utilizados. Como apontado no Captulo 4, a taxa de convergncia do Mtodo dos Gradientes Conjugados dependente da ordem dos elementos na etapa de aplicao da decomposio de Cholesky elemento-por-elemento. A implementao paralela tem, em geral uma taxa de convergncia mais baixa que a verso seqencial pela alterao da ordem dos elementos em cada computador do cluster, resultando em um nmero maior de iteraes. O nmero de iteraes at a convergncia para as malhas de PLACA040 a PLACA090 obtidos na verso seqencial e na verso paralela para 2 e 4 computadores, bem como a diferena percentual em entre elas esto mostrados na Tabela 5.5. Esse efeito est includo nos valores de speed-up e eficincia de paralelizao mostrados a seguir. Os valores de speed-up obtidos com conjuntos de 2 a 8 computadores para diversos tamanhos de problemas podem ser vistos nas figuras 5.10 e 5.11. O Mtodo dos Gradientes Conjugados com pr-condicionador de Cholesky mostrou-se mais eficiente do ponto de vista de desempenho que com o pr-condicionador Diagonal, pois no somente o tempo de soluo menor como o speed-up alcanado pela verso paralela maior, especialmente para os problemas maiores e com um maior nmero de computadores.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

151

Para um problema com 1,39 milhes de graus de liberdade, um conjunto de 8 computadores foi 6,68 vezes mais rpido que um nico computador (estimativa), e somente o menor de todos os problemas apresentou como tamanho timo do cluster 6 computadores. Para todos os demais tamanhos, o nmero mximo de computadores disponveis foi a melhor alternativa. A desvantagem do pr-condicionador de Cholesky o sua maior demanda por memria, no permitindo a soluo de problemas to grandes como o pr-condicionador Diagonal.

Tabela 5.5: Nmero de iteraes at a convergncia para o Mtodo dos Gradientes Conjugados com pr-condicionador de Cholesky, verso seqencial e paralela. Malha PLACA040 PLACA050 PLACA060 PLACA070 PLACA080 PLACA090 Seqencial 2 Comp. Diferena 4 Comp. Diferena 93 116 138 161 184 206 99 123 148 171 195 219 6,5% 6,0% 7,2% 6,2% 6,0% 6,3% 101 125 149 173 197 221 8,6% 7,8% 8,0% 7,5% 7,1% 7,3%

7 6 5 Speed-up 4 3 2 1 0 0 250 500 750 1000 1250 1500 Graus de Liberdade (x1000) 2 4 6 8

Figura 5.10: Speed-up de Gradientes Conjugados com pr-condicionador de Cholesky em funo do tamanho do problema para diferentes tamanhos de clusters.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

152

7 6 5 Speed-up 4 3 2 1 0 0 2 4 Computadores 45 86 227 472 Terico 6 8

Figura 5.11: Speed-up de Gradientes Conjugados com pr-condicionador de Cholesky em funo nmero de computadores utilizados para alguns tamanhos de problemas em milhares de graus de liberdade. A eficincia de paralelizao obtida est mostrada na figura 5.12.

100% 90% Eficincia de paralelizao 80% 70% 60% 50% 40% 30% 0 250 500 750 1000 1250 1500 Graus de Liberdade (x1000) 2 4 6 8 Eficincia de paralelizao

100% 90% 80% 70% 60% 50% 40% 30% 0 2 4 Computadores 45 86 227 472 6 8

(a)

(b)

Figura 5.12: Eficincia de paralelizao de Gradientes Conjugados com pr-condicionador de Cholesky (a) em funo do tamanho do problema para diferentes tamanhos de clusters e (b) em funo do tamanho de cluster para diferentes tamanhos de problemas (x 1000 GL). Os resultados para a frao serial de Karp-Flatt obtidos esto mostrados na figura 5.13. Para problemas com 86 mil ou mais graus de liberdade, h uma tendncia de estabilizao do
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

153

valor da frao serial, indicando boa escalabilidade. A frao serial diminui com o aumento do tamanho do problema, em concordncia com a lei de Gustafson.

0,4 0,3 0,3 Frao serial

0,4 0,3 0,3 Frao serial 0,2 0,2 0,1 0,1 0,0
0 100 200 300 400 500

0,2 0,2 0,1 0,1 0,0 Graus de Liberdade (x1000) 2 4 6 8

10

Computadores 45 86 227 472

(a)

(b)

Figura 5.13: Frao serial de Karp-Flatt para Gradientes Conjugados com pr-condicionador de Cholesky (a) em funo do tamanho do problema para diferentes tamanhos de clusters e (b) em funo do tamanho de cluster para diferentes tamanhos de problemas (x 1000 GL). Para o conjunto mais heterogneo de computadores, a eficincia de paralelizao obtida foi mais baixa, como mostrado na figura 5.14 para um conjunto com os 4 computadores da tabela 5.4 e outro com os primeiros 4 computadores da tabela 5.3, reproduzindo o comportamento obtido com o pr-condicionador Diagonal.

Eficincia de Paralelizao

75%

70%

65%

60% 0 50000 100000 150000 200000 250000 Graus de Liberdade Mais Heterogneo Mais Homogneo

Figura 5.14: Eficincia de paralelizao de Gradientes Conjugados com pr-condicionador de Cholesky em funo tamanho do problema em graus de liberdade para conjuntos de 4 computadores com diferentes graus de homogeneidade.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

154

5.2 ESCOAMENTOS COMPRESSVEIS EM REGIME TRANSNICO E SUPERSNICO


Para os testes do algoritmo paralelo explcito de Taylor-Galerkin de integrao no tempo de um passo com iteraes para a soluo de problemas de escoamentos compressveis tridimensionais, o mesmo foi implementado utilizando-se elementos hexadricos lineares de 8 ns com integrao das matrizes de elemento efetuada analiticamente (Gresho, 1984) considerando o elemento no distorcido e usando um nico ponto de integrao para avaliar a matriz Jacobiana, conforme apresentado por Burbridge (1999) e elementos tetradricos lineares com as matrizes tambm avaliadas de forma analtica, sem a necessidade de integrao numrica, conforme apresentado por Bono (2008).

5.2.1 Elementos Hexadricos Escoamento em torno de uma esfera


O exemplo utilizado para os testes iniciais com o esquema de um passo com interaes consiste no escoamento de um fludo no viscoso compressvel ao redor de uma esfera de raio R = 1,0, tendo-se como regio de interesse a metade anterior. Considerando a simetria do problema, suficiente definir o domnio correspondente a apenas um oitavo da esfera, como mostrado na figura 5.15. A velocidade de referncia Mach = 3,0 e a constante do gs foi considerada igual a 1,4. O modelo de escoamento utilizado o de Euler.

Figura 5.15: Geometria do domnio e discretizao empregada para o problema de escoamento ao redor de uma esfera. Fonte: Burbridge (1999)

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

155

Condies de contorno foram impostas aos planos de simetria (x1,x2) e (x1,x3) para que atravs deles no exista fluxo de massa ou de qualquer outra quantidade envolvida na anlise do problema. O domnio utilizado na anlise est limitado pelo contorno slido da esfera e por um elipside de raios (1,5; 2,0 ; 2,0) nas direes x1, x2 e x3, respectivamente, adotado como contorno de entrada com as condies correspondentes corrente no perturbada, ou seja, v1 = 3, 0 , v2 = v3 = 0, 0 , e = 6, 2857 e = 1, 0 . O plano (x2,x3) o contorno de sada sobre o qual no aplicado nenhuma condio. Sobre o domnio de anlise foi gerada uma famlia de malhas, cada uma correspondendo a um nmero diferente de divises (n div.) das linhas de definio do domnio, conforme inidicado na figura 5.15. As malhas obtidas foram designadas por ESFxxx, onde xxx representa o nmero de divises empregado. As caractersticas das mesmas podem ser vistas na tabela 5.6.

Tabela 5.6: Famlia de malhas de elementos hexadricos lineares usadas no problema de escoamento em torno de uma esfera. Malha ESF020 ESF030 ESF040 ESF050 ESF060 ESF070 ESF080 ESF090 ESF100 ESF110 Nmero de elementos Nmero de ns Nmero de graus de liberdade 6.000 20.250 48.000 93.750 162.000 257.250 384.000 546.750 750.000 998.250 6.951 22.351 51.701 99.501 170.251 268.451 398.601 565.201 772.751 1.025.751 34.755 111.755 258.505 497.505 851.255 1.342.255 1.993.005 2.826.005 3.863.755 5.128.755

O primeiro teste sobre a implementao paralela foi feito com um cluster temporrio heterogneo composto por 6 computadores conectados atravs de uma rede Fast Ethernet (100 Mbps). Cada computador dispunha de um processador com um nico ncleo e de 512 MB de memria RAM. Os agrupamentos foram feitos seguindo o nmero de ordem indicado na tabela 5.7. A diviso de tarefas foi feita utilizando-se o tratamento 1RN com balanceamento da carga de trabalho computacional.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

156

Tabela 5.7: Conjunto de computadores utilizados em cluster temporrio para teste da implementao paralela do esquema explcito de 1 passo com iteraes. Computador 1 2 3 4 5 6 Especificao AMD Athlon XP 1,53 GHz AMD Athlon XP 1,53 GHz AMD Athlon XP 1,47GHz AMD Athlon XP 1,33 GHz AMD Athlon XP 1,33 GHz AMD Athlon XP 1,2 GHz

Para cada tamanho de problema, foi feita a simulao do escoamento limitando-se a anlise a um nmero fixo de passos de tempo representativo da soluo. Os passos de tempo utilizados correspondem parte inicial de soluo. Os diversos tamanhos de problema foram analisados por cada computador do conjunto de forma seqencial. Em funo da memria RAM disponvel, a anlise se restringiu em cada computador aos problemas at o ESF090. Os tempos de soluo obtidos, por iterao, esto mostrados na figura 5.16(a), mostrando que o desempenho do cdigo aumenta quase linearmente com a velocidade do processador. Entre o computador mais rpido e o mais lento h uma diferena de 27,5% na freqncia do processador e de 24,6% na velocidade de execuo mdia do cdigo seqencial implementado. As velocidades de processamento do cdigo seqencial em milhes de operaes de ponto flutuante por segundo (Mflops) para cada processador foi avaliada pela comparao com o tempo de processamento do mesmo cdigo em um supercomputador CRAY T-94, e podem ser vistas na figura 5.16(b). A diminuio da velocidade de processamento em Mflops com o aumento do tamanho do problema decorrente do tamanho finito do cache do processador frente a crescente quantidades de dados a serem mapeados. A partir da anlise seqencial, foi possvel quantificar o desempenho da soluo paralela agrupando-se os computadores em conjuntos de 2 a 6 mquinas. Os resultados de speed-up e eficincia de paralelizao esto mostrados nas figuras 5.17 e 5.18.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

157

90 Tempo de soluo por iterao (s) 80 70 60 50 40 30 20 10 0 0 1000 2000 3000 Graus de Liberdade (x1000) 1,53 Ghz 1,33 GHz 1,47 GHz 1,2 Ghz

700 Velocidade de processamento (Mflops)

600

500

400

300

200

100 0 1000 2000 3000 Graus de Liberdade (x1000) 1,53 GHz 1,33 GHz 1,47 GHz 1,2 GHz

(a)

(b)

Figura 5.16: (a)Tempo de soluo por iterao e (b) velocidade de processamento para o algoritmo seqencial do esquema explicito de 1 passo com iteraes em funo do tamanho do problema em milhares de graus de liberdade, para processadores com freqncia entre 1,2 e 1,53 GHz.

6,00 5,00 4,00 Speed-up 3,00 2,00 1,00 0,00 0 1000 2000 3000 Graus de Liberdade (x 1000) 2 3 4 5 6

6,00 5,00 4,00 Speed-up 3,00 2,00 1,00 0,00 1 2 3 4 Computadores 112 Teor 5 6

35 2826

851

(a)

(b)

Figura 5.17: Speed-up do esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

158

110% Eficincia de Paralelizao Eficincia de Paralelizao 0 1000 2000 3000 100% 90% 80% 70% 60% 50% 40% 30% Graus de Liberdade (x 1000) 2 3 4 5 6

110% 100% 90% 80% 70% 60% 50% 40% 30% 1 2 3 4 5 6 Computadores 35 112 851 2826

Figura 5.18: Eficincia de paralelizao para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade. Somente para o menor tamanho de problema (35 mil graus de liberdade ou equaes) houve estagnao do speed-up, com o nmero timo de computadores sendo 4. Para problemas muito pequenos, ao se dividir as tarefas entre um nmero maior de computadores, a parcela de tempo gasta para o processamento propriamente dito torna-se pequena ao ser comparada com o tempo gasto na comunicao de dados atravs da rede, causando perda de desempenho. Para todos os tamanhos de clusters, h um leve aumento da eficincia para a maior da malhas, a ESF090. Isso se deve no execuo do cdigo paralelo ficar mais rpido, mas sim ao cdigo seqencial ser executado mais lentamente para essa malha. A quantidade de memria exigida por essa malha para uma execuo seqencial bastante prxima da memria instalada em cada computador. Adicionando-se a parcela de memria destinada ao sistema operacional, o total provavelmente superou a memria RAM disponvel, fazendo com que o cdigo seqencial fizesse uso, mesmo que pequeno, da memria virtual e, portanto, perdesse velocidade No cdigo paralelo a memria utilizada menor, de modo que o problema no acontece e o cdigo executado mais rapidamente, ganhando eficincia de paralelizao. Percebe-se a ocorrncia de um speed-up superlinear com o uso de 2 computadores para as 2 maiores malhas, decorrente de uma maior eficincia do cache dos processadores quando o conjunto de dados correspondente s malhas dividido em 2.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

159

Os valores de frao linear de Karp-Flatt obtidos esto mostrados na figura 5.19.

0,45 0,40 0,35 0,30 Frao serial 0,20 0,15 0,10 0,05 0,00 -0,05 0 -0,10 Graus de Liberdade (x 1000) 2 3 4 5 6 1000 2000 3000 Frao serial 0,25

0,45 0,40 0,35 0,30 0,25 0,20 0,15 0,10 0,05 0,00 -0,05 1 -0,10 Computadores 35 112 851 2826 2 3 4 5 6

Figura 5.19: Frao serial para o esquema explcito de um passo com iteraes (a) em funo do tamanho do problema para diferentes tamanhos de clusters e (b) em funo do tamanho do cluster para diferentes tamanhos de problemas em milhares de graus de liberdade. A partir de 93 mil graus de liberdade (malha ESF050), a frao linear mostra-se praticamente constante e com valores bastante baixos, indicando excelente escalabilidade. A existncia de speed-up superlinear indicada pelos valores de frao serial negativos. A implementao paralela foi testada tambm com um conjunto de 11 computadores em um cluster permanente heterogneo, conectados atravs de uma rede Fast Ethernet (100 Mbps) ou Gigabit Ethernet ( 1 Gbps). Cada computador dispunha de um processador com um nico ncleo AMD Athlon 64 e de 4 GB de memria RAM. Os agrupamentos foram feitos seguindo o nmero de ordem indicado na tabela 5.8. A diviso de tarefas foi feita utilizando-se o tratamento 1RN com balanceamento da carga de trabalho computacional. Esse conjunto mais homogneo que o primeiro em termos de desempenho dos computadores, sendo a diferena de freqncia entre o processador mais rpido e o mais lento de 8,7% e entre a velocidade mdia de execuo do cdigo seqencial de 8,8%, conforme pode ser visto na figura 5.20. Os computadores do cluster permanente so consideravelmente mais potentes que os utilizados anteriormente, apresentando velocidade de processamento entre 1,8 e 2 vezes maior para o cdigo seqencial.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

160

Tabela 5.8: Conjunto de computadores utilizados em cluster permanente para teste da implementao paralela do esquema explcito de 1 passo com iteraes. Computador Freqncia do ncleo 1 2 3 4 5 6 7 8 9 10 11 2,5 GHz 2,3 GHz 2,4 GHz 2,4 GHz 2,3 GHz 2,3 GHz 2,4 GHz 2,4 GHz 2,5 GHz 2,4 GHz 2,5 GHz

Tempo de soluo por passo de tempo (s)

120 100 80 60 40 20 0 0 1000 2000 3000 4000 5000 6000 Graus de Liberdade (x1000) 2500 2400 2300

Figura 5.20: Tempo de soluo por passo de tempo para o algoritmo paralelo do esquema explicito de 1 passo com iteraes em funo do tamanho do problema em milhares de graus de liberdade, para processadores com freqncia entre 2,3 e 2,5 GHz. Com o uso da rede de 100 Mbps, os computadores foram agrupados em conjuntos de 2, 4 e 8 mquinas para os problemas de ESF020 a ESF080, sendo obtidos os valores de speed-up e de eficincia de paralelizao mostrados nas figuras 5.21 e 5.22, respectivamente.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

161

7 6 5 Speed-up Speed-up 4 3 2 1 0 0 500 1000 1500 2000 Graus de Liberdade (x1000) 2 4 8

7 6 5 4 3 2 1 0 0 2 4 6 8 Graus de Liberdade (x1000) 35 498 1993 Terico

(a)

(b)

Figura 5.21: Speed-up do esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade. Cluster permanente, rede de 100 Mbps.

100% 90% Eficincia de Paralelizao 80% 70% 60% 50% 40% 30% 0 500 1000 1500 2000 Graus de Liberdade (x1000) 2 4 8 Eficincia de Paralelizao

100% 90% 80% 70% 60% 50% 40% 30% 0 2 4 Computadores 35 498 1993 6 8

(a)

(b)

Figura 5.22: Eficincia de paralelizao para o esquema explcito de um passo com iteraes (a) em funo do tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade. Cluster permanente, rede de 100 Mbps.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

162

Pela comparao dos grficos das figuras 5.21 e 5.17, percebe-se que com o cluster temporrio de mquinas menos potentes foram obtidos valores de speed-up superiores aos obtidos com o cluster permanente. A diferena mdia entre os speed-ups para cada tamanho de problema e cada tamanho de conjunto de computadores entre o cluster temporrio e o cluster permanente foi de 4,5%. O mesmo pode ser visto na comparao entre as figuras 5.22 e 5.18. Isso no significa que o cluster temporrio com mquinas menos potentes processe os problemas de forma paralela mais rapidamente que o cluster permanente, apenas que o primeiro o faz de forma mais eficiente. Considerando que a velocidade relativa da comunicao de dados entre processadores em relao velocidade de processamento para o cluster temporrio maior, o resultado obtido coerente. Para manter a escalabilidade da soluo paralela, preciso que a velocidade da rede cresa de forma proporcional velocidade de processamento dos computadores empregados. Os valores obtidos para a frao serial de Karp-Flatt esto mostrados na figura 5.23. Os valores obtidos so baixos apenas para problemas de maior tamanho, e as curvas so levemente ascendentes com o aumento do nmero de processadores, indicando uma escalabilidade razovel para os tamanhos de problema analisados.

0,35 0,30 Frao serial Frao serial 0 500 1000 1500 2000 2500 0,25 0,20 0,15 0,10 0,05 0,00 Graus de Liberdade (x1000) 2 4 8

0,35 0,30 0,25 0,20 0,15 0,10 0,05 0,00 0 2 4 6 8 10 Graus de Liberdade (x1000) 35 498 1993

(a)

(b)

Figura 5.23: Frao serial para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problemas em milhares de graus de liberdade. Cluster permanente, rede de 100 Mbps.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

163

Com o uso da rede de 1 Gbps, os computadores foram agrupados em conjuntos de 2, 4, 8 e 11 mquinas para os problemas de ESF020 a ESF110, sendo obtidos os valores de speed-up e de eficincia de paralelizao mostrados nas figuras 5.24 e 5.25, respectivamente.
9 8 7 Speed-up 5 4 3 2 1 0 0 2000 4000 6000 Graus de Liberdade (x1000) 2 4 8 11
35

9 8 7 Speed-up 6 5 4 3 2 1 0 0 4 8 12 Graus de Liberdade (x1000)


498 1993 5129 Teor

(a)

(b)

Figura 5.24: Speed-up da implementao paralela para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problema. Cluster permanente, rede de 1 Gbps.

100% Eficincia de Paralelizao Eficincia de Paralelizao 90% 80% 70% 60% 50% 40% 30% 0 1000 2000 3000 4000 5000 6000 Graus de Liberdade (x1000) 2 4 8 11

100% 90% 80% 70% 60% 50% 40% 30% 0 4 8 12 Computadores 35 498 1993 5129

(a)

(b)

Figura 5.25: Eficincia de paralelizao para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problema. Cluster permanente, rede de 1 Gbps A rede mais rpida trouxe ganho para todos os tamanhos de problemas e de grupos de processadores. A partir de 1 milho de graus de liberdade, grupos de at 8 processadores
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

164

atingem o speed-up mximo, enquanto que com a rede de 100 Mbps isso acontece somente com grupos de at 4 processadores para esse tamanho de problema. Os valores obtidos para a frao serial de Karp-Flatt esto mostrados na figura 5.26.
0,25 0,20 Frao serial 0,15 0,10 0,05 0,00 0 2000 4000 6000 Graus de Liberdade (x1000) 2 4 8 11 Frao serial

0,25 0,20 0,15 0,10 0,05 0,00 0 2 4 6 8 10 12 Graus de Liberdade (x1000) 35 498 1993 5129

(a)

(b)

Figura 5.26: Frao serial para o esquema explcito de um passo com iteraes (a) em funo tamanho do problema para diferentes tamanhos de clusters e (b) em funo nmero de computadores utilizados para diferentes tamanhos de problema. Cluster permanente, rede de 1 Gbps Em relao aos valores mostrados na figura 5.23, os resultados obtidos com a rede de 1Gbps tem valores mais baixos e comportamento mais constante, indicando uma melhor escalabilidade. A figura 5.27 mostra o ganho no speed-up obtido para conjuntos de at 8 processadores ao se utilizar a rede de 1 Gbps em comparao rede de 100 Mbps. Os maiores ganhos correspondem s configuraes com maior nmero de computadores atuando em paralelo sobre os menores tamanhos de problemas, onde os tempos associados tanto maior velocidade da rede de 1Gbps como sua menor latncia tm maior importncia em relao ao tempo de processamento propriamente dito de cada mquina. Por outro lado, em problemas muito grandes com um nmero pequeno de computadores, o tempo gasto em troca de dados entre os computadores atravs da rede muito pequeno em relao ao tempo de processamento propriamente dito, fazendo com que no haja diferena em termos prtico entre o uso de uma rede de 1 Gbps ou de 100 Mbps. O emprego de clusters temporrios utilizando os computadores e redes disponveis em um laboratrio de desenvolvimento e

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

165

pesquisa torna-se vivel para esse cenrio sem que seja necessria a aquisio de uma infra-estrutura mais cara em termos de rede.

50,0%

40,0% Ganho de Speed-up

30,0%

20,0%

10,0%

0,0% 0 500 1000 1500 2000 Graus de Liberdade (x1000) 2 4 8

Figura 5.27: Ganho de speed-up com o uso de uma rede de 1 Gbps em comparao a uma rede de 100 Mbps para o esquema explcito de um passo com iteraes em funo tamanho do problema para diferentes tamanhos de clusters. Considerando os valores estabilizados de speed-up do grfico da figura 5.24 para cada tamanho de conjunto de computadores, foi possvel fazer uma previso aproximada do tamanho timo de cluster, ou seja, o nmero de computadores a partir do qual no haveria mais ganho na velocidade de processamento do problema com a adio de novos computadores. Os valores obtidos com os testes esto grafados na figura 5.28, e uma funo parablica foi ajustada sobre esse pontos, mostrada como uma linha pontilhada. A previso assim obtida deve ser encarada como uma aproximao, em funo do limitado nmero de pontos disponvel, mas indica que o tamanho timo do cluster para a aplicao paralela utilizada teria em torno de 24 computadores, com um speed-up mximo da ordem de 12, resultando em aproximadamente 50% de eficincia de paralelizao. Apesar do uso de computadores e rede de comunicao com diferentes desempenhos em relao aos empregados levarem a modificaes nos valores obtidos, o comportamento indicado pela figura 5.25 aponta com uma configurao composta por um nmero relativamente pequeno de computadores com o maior poder computacional possvel como alternativa tima para o
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

166

algoritmo empregado, ao invs de um grande nmero de computadores de desempenho mdio (computao massivamente paralela).

14 12 10 Spped-up 8 6 4 2 0 0 4 8 12 16 20 24 28 Tamanho do Cluster

Figura 5.28: Previso do tamanho timo do cluster para o esquema explcito de um passo com iteraes. A influncia da velocidade relativa da rede em relao a velocidade de processamento dos processadores pode ser resumida na figura 5.29, onde o speed-up e a eficincia de paralelizao obtidos para grupos de 2 a 8 computadores do cluster temporrio usando rede de 100 Mbps e do cluster permanente usando redes de 100 Mbps e 1 Gbps esto mostrados para os problemas ESF030 (112 mil graus de liberdade) e ESF080 (1,993 milhes de graus de liberdade). Nos grficos, o cluster temporrio est indicado pela letra T. Para problemas pequenos, a menor latncia da rede de 1 Gbps levou aos melhores resultados. Com a rede de 100 Mbps, o conjunto com a maior velocidade relativa da rede em comparao velocidade de processamento foi conjunto com maior eficincia de paralelizao e speed-up. Para problemas grandes, onde a latncia da comunicao em rede tem pouca influncia sobre o desempenho, os resultados para as 3 configuraes foram muito prximos. Os resultados com as mquinas rpidas e rede de 100 Mbps foi o que apresentou menor eficincia. Os resultados para o conjunto de mquinas mais lentas com rede de 100 Mbps e de mquinas mais rpidas com rede de 1Gbps foram praticamente equivalentes. Aumentar a velocidade dos computadores utilizados sem aumentar a velocidade da rede aumenta a velocidade absoluta de processamento em paralelo mas diminui a eficincia e, conseqentemente, o nmero timo de computadores que pode ser utilizado.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

167

110% 100% Eficincia de Paralelizao 90% Speed-up 80% 70% 60% 50% 40% 30% 0 2 4 Computadores 112/1G 112/100M/T 1993/100M 112/100M 1993/1G 1993/100M/T 6 8

7 6 5 4 3 2 1 0 0 2 4 6 8 Graus de Liberdade (x1000) 112/1G 112/100M/T 1993/100M 112/100M 1993/1G 1993/100M/T

(a)

(b)

Figura 5.29: (a) Eficincia de paralelizao e (b) speed-up para o esquema explcito de um passo com iteraes usando redes e conjuntos de computadores de diferentes velocidades para 2 tamanhos de problemas, em milhares de graus de liberdade.

5.2.2 Elementos Hexadricos Escoamento em torno de um veculo espacial


Para testes com uma geometria mais complexa foi utilizada a simulao do escoamento de um fludo no-viscoso com um nmero de Mach igual a M = 2,95 em torno de um corpo com geometria composta por uma meia esfera, um cilindro e um tronco de cone acoplados, com um ngulo de ataque de 10 em relao direo do escoamento, representando, em termos gerais, o vo de uma cpsula espacial na alta atmosfera. O problema similar ao apresentado por Bono (2008), mas discretizado atravs de hexaedros lineares, ao invs de tetraedros. Foram utilizadas 2 malhas na discretizao, cujas caractersticas esto mostradas na tabela 5.9. A malha VE1 est mostrada na figura 6.30, dando uma idia geral do formato do veculo.

Tabela 5.9: Caractersticas das malhas utilizadas na discretizao do escoamento em torno de um veculo espacial. Malha Nmero de Elementos Nmero de Ns Graus de Liberdade VE1 VE2 198750 917700 211146 949212 1.055.730 4.746.060

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

168

Figura 5.30: Malha VE1 utilizada na discretizao do escoamento em torno de um veculo espacial. A implementao paralela foi utilizada com um conjunto de 15 computadores em um cluster permanente heterogneo. Cada computador dispunha de um processador com AMD Athlon 64 e de 4 GB de memria RAM. Os agrupamentos foram feitos seguindo o nmero de ordem indicado na tabela 5.10. Dos 15 computadores, 5 dispunham de um processador de ncleo duplo. Os primeiros ncleos desses computadores receberam os nmeros de ordem 1 a 4 e 13, e os segundos 16 a 20. O objetivo desse ordenamento foi fazer com que problemas muito grandes no sobrecarregassem a memria das mquinas com processador de ncleo duplo, uma vez que os mesmos 4 GB das mquinas com processadores de ncleo simples deveriam atender 2 processos e o dobro da quantidade de dados. Com o ordenamento utilizado, grupos com at 15 processadores utilizariam somente um ncleo dessas mquinas, e com 16 ou mais processadores a quantidade de memria utilizada por cada ncleo seria pequena o suficiente para no forar o uso de memria virtual. Alm disso, tambm era objetivo tentar simular um cluster com 20 mquinas com processadores de ncleo simples, por ser uma configurao mais crtica, visto que todas as trocas de dados so feitas atravs da rede. Com o ordenamento utilizado, dificilmente um ncleo do processador precisar trocar dados com o outro, o que seria feito atravs da memria, e sim com ncleos de outras mquinas, o que feito atravs da
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

169

rede. A presena de uma nica interface de rede torna mais crtica ainda a configurao, fazendo com que a configurao utilizada seja uma aproximao conservativa de um cluster com 20 computadores com processadores de ncleo simples.

Tabela 5.10: Freqncia dos processadores utilizados na simulao do escoamento em torno de um veculo espacial. Processador Freqncia do ncleo 1a4 5e6 7 8 a 12 13 14 a 20 2,2 GHz 2,0 GHz 2,2 GHz 2,0 GHz 2,0 GHz 2,2 GHz

O padro de rede utilizado foi o Gigabit Ethernet (1Gbps). As configuraes das interfaces de rede foram otimizadas para utilizar pacotes de dados de 9 KB, o valor mximo para o padro Gigabit Ethernet Jumbo Frame, uma vez que o switch de rede suportava essa caracterstica. Alm disso, o sistema operacional dos computadores foi reconfigurado para suportar um nmero maior de conexes simultneas, e os tamanhos dos buffers de transmisso e recepo foram aumentados. Isso levou a uma melhora substancial de desempenho quanto comunicao de dados. As malhas utilizadas foram obtidas diretamente a partir de um gerador de malhas comercial, que j executava uma reordenao nodal para minimizao da banda, de forma que o as malhas j continham o tratamento 1RN para diviso de tarefas. Foram executados testes em 3 condies: a) com o tratamento 1RN aplicado, mas sem balanceamento das cargas de trabalho; b) com o tratamento 1RN e balanceamento das cargas de trabalho; c) com o tratamento nRN e balanceamento das cargas de trabalho. Em todas as condies, a distribuio de tarefas inicial foi baseada na freqncia de cada processador lgico como ndice de desempenho.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

170

De forma similar ao que foi feito com o problema de escoamento em torno da esfera, apenas um determinado nmero de passos de tempo da soluo foi utilizado como medida para a determinao do desempenho paralelo. Cada malha foi analisada com o cdigo seqencial individualmente por cada um dos computadores do conjunto, de modo a fornecer os tempos de soluo utilizados na determinao do speed-up e da eficincia de paralelizao, cujos resultados esto mostrados nas figuras 5.31 e 5.32, respectivamente. O balanceamento prvio das cargas de trabalho mostrou-se tanto mais importante quanto maior o nmero de processadores lgicos utilizados. Quando o nmero de processadores grande, o nmero de ns e de elementos alocados a cada processador no muito grande, fazendo com que os ns e elementos associados a cargas ou condies de contorno possam ficar concentrados em um nico processador, dada a distribuio no uniforme dessas caractersticas ao longo da malha. Processadores lgicos com um nmero idntico de ns podem ter cargas de trabalho computacional bastante diferentes. Sem o balanceamento para equalizar a distribuio, a mquina mais lenta (aquela que responsvel pelos ns e elementos associados ao maior esforo computacional) governa o desempenho do conjunto. Esse efeito pode aparecer mais fortemente em algumas configuraes quanto ao nmero de processadores que em outras, explicando o comportamento observado para conjuntos de 12 processadores nas figuras 5.31 e 5.32.

20

16

Speed-up

12

0 0 4 8 12 16 20 Processadores Lgicos

VE1 1RN VE2 1RN Terico

VE1 1RN Bal VE2 1RN Bal

VE1 nRN Bal VE2 nRN Bal

Figura 5.31: Speed-up do esquema explcito com 1 passo e iteraes para as malhas VE1 e VE2 utilizadas na discretizao do escoamento em torno de um veculo espacial.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

171

100%

Eficincia de Paralelizao

90%

80%

70%

60% 0 4 8 12 16 20 Processadores Lgicos

VE1 1RN VE2 1RN

VE1 1RN Bal VE2 1RN Bal

VE1 nRN Bal VE2 nRN Bal

Figura 5.32: Eficincia de paralelizao para o esquema explcito com 1 passo e iteraes para as malhas VE1 e VE2 utilizadas na discretizao do escoamento em torno de um veculo espacial. Do ponto de vista prtico no h diferena entre os resultados obtidos para os tratamentos 1RN e nRN balanceados com as malhas estruturadas utilizadas. O tratamento nRN apresentou ligeira vantagem (3% aproximadamente) para a malha de menor tamanho VE1 com o uso de conjuntos com maior nmero de processadores lgicos. Para a malha de maior tamanho VE2, os resultados so virtualmente idnticos. A eficincia de paralelizao obtida para as duas malhas foi excelente, indicando a possibilidade de se utilizar um nmero bem maior de processadores lgicos com ganho de velocidade de processamento. Os resultados para a frao serial de de Karp-Flatt esto mostrados na figura 5.33. As divises de tarefas sem balanceamento das cargas de trabalho apresentaram uma escalabilidade bastante varivel. O processo de balanceamento levou a fraes seriais praticamente constantes e bastante baixas, comprovando a excelente escalabilidade do cdigo paralelo para as malhas utilizadas.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

172
0,030 0,025 Frao serial 0,020 0,015 0,010 0,005 0,000 0 4 8 12 16 20 Processadores Lgicos

VE1 1RN VE2 1RN

VE1 1RN Bal VE2 1RN Bal

VE1 nRN Bal VE2 nRN Bal

Figura 5.33: Frao serial para o esquema explcito com 1 passo e iteraes para as malhas VE1 e VE2 utilizadas na discretizao do escoamento em torno de um veculo espacial.

5.2.3 Elementos Tetradricos Escoamento supersnico em torno de uma esfera


O mesmo problema da seo 5.2.1 foi utilizado para teste da implementao do algoritmo paralelo para o esquema explcito de 1 passo com iteraes com o emprego de elementos tetradricos. A malha utilizada formada por 331.799 elementos tetradricos lineares e 61.095 ns, totalizando 305.475 graus de liberdade, e est mostrada na Figura 5.34.

Figura 5.34: Malha de elementos tetradricos utilizada para o problema de escoamento supersnico em torno de uma esfera.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

173

Os mesmos computadores utilizados na simulao do escoamento em torno do veculo espacial foram empregados, mas com a ordem dos ncleos alterada. Como o tamanho da malha utilizada relativamente pequeno, no havia o problema da malha inteira sendo processada pelos 2 ncleos de um mesmo processador esgotar a memria disponvel, de modo que os ncleos dos processadores de ncleo duplo foram colocados seqencialmente no ordenamento do cluster. Grupos de 2 a 20 computadores foram estabelecidos seguindo a ordem indicada na tabela 5.11.

Tabela 5.11: Freqncia dos processadores utilizados na simulao do escoamento supersnico em torno de uma esfera. Processador Freqncia do ncleo 1a8 7 a 18 19 20 2,2 GHz 2,0 GHz 2,2 GHz 2,0 GHz

A diviso de tarefas foi feita considerando a malha original sem nenhum tratamento e com os tratamentos 1RN e nRN. Os resultados em termos de speed-up e eficincia de paralelizao esto mostrados nas figuras 6.35 e 6.36, respectivamente.

16

12

Speed-up

0 0 4 8 12 16 20 Processadores lgicos malha original 1RN nRN Terico

Figura 5.35: Speed-up obtido para o problema de escoamento supersnico em torno de uma esfera com diversos tratamentos para a diviso de tarefas, malha de tetraedros, .
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

174

120%

100% Eficincia de Paralelizao

80%

60%

40%

20%

0% 0 4 8 12 16 20 Processadores lgicos malha original 1RN nRN

Figura 5.36: Eficincia de paralelizao obtida para o problema de escomanento supersnico em torno de uma esfera com diversos tratamentos para a diviso de tarefas, malha de tetraedros. Para a malha original ou com o tratamento 1RN, o tamanho timo de cluster de 16 processadores lgicos. O aumento do nmero de ncleos de processamento a partir deste ponto causa estagnao ou diminuio da velocidade de processamento do conjunto, pois o poder de processamento adicionado com cada ncleo no suficiente para compensar a perda de eficincia de paralelizao decorrente do aumento da comunicao de dados pela rede e da redundncia de esforo computacional inerentes diviso de tarefas entre os ncleos. O uso do tratamento nRN apresentou, para qualquer nmero de processadores lgicos, melhor eficincia de paralelizao, permitindo o crescimento da velocidade com o acrscimo de processadores at o nmero mximo de 20 processadores. Para conjuntos com 16 processadores, a soluo com o tratamento 1RN aproximadamente 2,95 vezes mais rpida que a soluo sem tratamento. O uso do tratamento nRN permitiu uma soluo 3,44 vezes mais rpida que sem tratamento, e 16,5% mais rpida que com o tratamento 1RN. O speed-up mximo com o tratamento nRN 33,9% maior que o com o 1RN (15,4 com 20 ncleos contra 11,5 com 16 ncleos), e 294,8% maior que o speed-up mximo para os dados sem tratamento (3,9 com 16 ncleos). As eficincias de paralelizao acima de 100% obtidas com conjuntos de at 4 processadores com os tratamentos 1RN e nRN (speed-up superlinear) so explicadas pelo uso mais eficiente
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

175

do cache do processador (independente para cada ncleo, no caso do AMD AThlon 64 X2 utilizado) que precisa mapear uma quantidade menor de dados na configurao paralela que quando um nico ncleo responsvel pela processamento da totalidade dos dados. Para verificar a influncia da velocidade da rede no desempenho da implementao paralela, fez-se um teste com os oito primeiros processadores conectados atravs de uma rede de 100 Mbps. Os resultados de speed-up obtidos, bem como o desempenho relativo com a rede de 100Mbps em comparao ao com a rede de 1Gbps esto mostrados na tabela 5.12.

Tabela 5.12: Desempenho relativo para rede de 100Mbps, escoamento em torno de uma esfera, malha de tetraedros. Tratamento 1RN Nmero de Processadores 4 8 nRN 4 8 Speed-up Speed-up Desempenho Relativo 1 Gbps 4,1 7,7 4,2 8,1 100 Mbps 3,47 6,43 3,43 6,77 100Mbps / 1 Gbps 85% 84% 82% 84%

A velocidade mais baixa da rede de conexo tem um impacto sobre o desempenho um pouco maior com o tratamento nRN que com o 1RN, explicado pelo maior nmero de processos de comunicao entre processadores que o primeiro exige. O speed-up mdio com uma rede de 100 Mbps 84% do speed-up obtido com a rede de 1Gbps para as configuraes testadas, mostrando a validade de se formar um cluster temporrio com os computadores disponveis em um laboratrio para a obteno de maior desempenho computacional mesmo quando no h disponibilidade de uma estrutura de rede de alta velocidade.

5.2.4 Elementos Tetradricos Escoamento supersnico em torno de um modelo de avio


O escoamento supersnico em torno de um modelo de avio com a configurao canard-asaestabilizador-fuselagem baseado no problema apresentado por Bono (2008) foi utilizado

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

176

como base para os testes de desempenho do algoritmo paralelo. A geometria bsica do problema pode ser vista na figura 5.37.

Figura 5.37: Viso geral do problema de escoamento supersnico em torno de um modelo de avio. Distribuio da densidade. A partir de uma malha original com 242979 elementos tetradricos lineares e 45823 ns foram obtidas duas famlias de malhas de complexidade e tamanho crescente atravs do processo de refinamento de malha desenvolvido por Popiolek (2006): uma para o modelo de escoamento de Euler e outra para o modelo de Navier-Stokes. Para a obteno das malhas, no foi utilizado um processo de refinamento uniforme, no qual todos os elementos so subdivididos da mesma forma, mas local, fazendo com que um nmero maior de ns e elementos se concentrem nas regies do domnio com maiores gradientes das variveis do problema. Uma viso geral das malhas utilizadas est mostrada na figura 5.38 e suas caractersticas esto mostradas na tabela 5.13. A mesma metodologia empregada anteriormente foi utilizada para estimar o desempenho da soluo paralela. Foi utilizado o mesmo conjunto de computadores do exemplo 5.2.2. Como as malhas empregadas so bastante grandes, a ordenao dos ncleos dos processadores da tabela 5.10 foi adotada.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

177

Figura 5.38: Domnio do problema de escoamento em torno de um modelo de avio e discretizao utilizando elementos tetradricos lineares.

Tabela 5.13: Caractersticas das malhas utilizadas na discretizao do escoamento em torno de um modelo de avio. Malha EU1 / NS1 EU2 EU3 NS2 NS3 NS4 Nmero de Elementos Nmero de Ns Graus de Liberdade 242.979 2.093.370 7.397.968 1.501.912 7.400.765 9.654.369 45.823 364.996 1.274.645 271.842 1.322.254 1.697.705 229.115 1.824.980 6.373.225 1.359.210 6.611.270 8.488.525

As malhas referentes ao modelo de escoamento de Navier-Stokes foram executadas com o algoritmo paralelo sem nenhum tratamento, com os tratamentos 1RN e nRN. Os resultados obtidos para o speed-up esto mostrados na figura 5.39, e para a eficincia de paralelizao na figura 5.40.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

178

16

16

12 Speed-Up

12 Speed-Up

0 0 4 8 12 16 20 Processadores lgicos malha original nRN 1RN Terico

0 0 4 8 12 16 20 Processadores lgicos malha original nRN 1RN Terico

(a)
16 16 12 Speed-Up

(b)

12 Speed-Up

0 0 4 8 12 16 20 Processadores lgicos malha original nRN 1RN Terico

0 0 4 8 12 16 20 Processadores lgicos malha original nRN 1RN Terico

(c)

(d)

Figura 5.39: Speed-up obtido para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Navier-Stokes, malhas (a) NS1, (b) NS2, (c) NS3 e (d) NS4. Para todos os tamanhos de problema, aplicar o algoritmo paralelo sobre as malhas sem nenhum tratamento leva a um desempenho bastante baixo, com um speed-up mximo com o uso de 19 processadores de apenas 5,6 (30% de eficincia). O uso do tratamento nRN levou ao maior desempenho para todos os casos, em especial para problemas de tamanho pequeno a mdio analisados com um nmero grande de processadores lgicos. Quanto maior o tamanho do problema, maior deve ser o nmero de processadores empregado para que o tratamento nRN apresente vantagem significativa sobre o tratamento 1RN. Para as malhas NS3 e NS4, os tratamentos foram equivalentes, aparecendo uma pequena diferena apenas com o uso de 20
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

179

processadores. O maior desempenho obtido foi com a malha NS2 empregando 20 processadores, onde foi obtido um speed-up de 14,1 (74% de eficincia).
100%
100%

Eficincia de Paralelizao

75%

Eficincia de Paralelizao

75%

50%

50%

25%

25%

0%

0% 0 4 8 12 1RN 16 20 nRN Processadores lgicos malha original

12

16

20

Processadores lgicos malha original 1RN nRN

(a)
100% Eficincia de Paralelizao Eficincia de Paralelizao 100%

(b)

75%

75%

50%

50%

25%

25%

0% 0 4 8 12 16 20 Processadores lgicos malha original 1RN nRN

0% 0 4 8 12 16 20 Processadores lgicos malha original 1RN nRN

(c)

(d)

Figura 5.40: Eficincia de paralelizao obtido para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Navier-Stokes, malhas (a) NS1, (b) NS2, (c) NS3 e (d) NS4. Os resultados para a frao serial de de Karp-Flatt esto mostrados na figura 5.41, mostrando como os tratamentos 1RN e nRN so importantes para que uma boa escalabilidade do problema seja obtida. Os valores de frao linear negativa indicam a ocorrncia de speed-up superlinear.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

180

0,50 0,40 0,30 0,20 0,10 0,00 0 -0,10 Processadores lgicos malha original 1RN nRN 4 8 12 16 20

0,50 0,40 0,30 0,20 0,10 0,00 0 -0,10 Processadores lgicos malha original 1RN nRN 4 8 12 16 20

Frao serial

(a)
0,50 0,40 0,30 0,20 0,10 0,00 0 -0,10 Processadores lgicos malha original 1RN nRN 4 8 12 16 20 -0,10 0,50 0,40 0,30 0,20 0,10 0,00 0 4 8

Frao serial

(b)

Frao serial

Frao serial

12

16

20

Processadores lgicos malha original 1RN nRN

(c)

(d)

Figura 5.41: Frao serial para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Navier-Stokes, malhas (a) NS1, (b) NS2, (c) NS3 e (d) NS4. Para a maior das malhas (NS4) houve uma queda no desempenho para todos os tamanhos de conjuntos de processadores em relao malha de tamanho imediatamente inferior (NS3), quando a expectativa seria de que o desempenho crescesse ou se estabilizasse com o aumento do tamanho do problema. Contudo, a malha NS4 formada por tetraedros e obtida por refinamento de uma malha de tamanho menor. Malhas com essas caractersticas apresentam um nmero muito grande de elementos conectados a um mesmo n, chegando a mais de uma centena. A diviso de tarefas nessas condies faz com que haja um nmero muito grande de

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

181

elementos comuns, com a conseqente redundncia do esforo computacional, afetando negativamente o desempenho do conjunto. Para verificar a influncia da velocidade da rede no desempenho da implementao paralela, fez-se um teste com a malha NS2 e os oito primeiros processadores conectados atravs de uma rede de 100 Mbps. Os resultados de speed-up obtidos, bem como o desempenho relativo com a rede de 100Mbps em comparao ao com a rede de 1Gbps esto mostrados na tabela 5.14.

Tabela 5.14: Desempenho relativo para rede de 100Mbps, escoamento em torno de um modelo de avio, malha NS2. Tratamento 1RN Nmero de Processadores 4 8 nRN 4 8 Speed-up Speed-up Desempenho Relativo 1 Gbps 3,73 6,54 3,74 6,71 100 Mbps 3,06 5,27 2,94 4,84 100Mbps / 1 Gbps 82% 81% 79% 72%

Em funo da complexidade da geometria do problema, o impacto da rede mais lenta sobre o desempenho nitidamente maior para o tratamento nRN que para o tratamento 1RN, indicando que a latncia da comunicao em rede assume um papel preponderante no desempenho. Para a rede mais lenta, o tratamento 1RN parece ser o mais adequado As malhas referentes ao modelo de escoamento de Euler foram executadas com o algoritmo paralelo sem nenhum tratamento e sem balanceamento das cargas de trabalho, com os tratamentos 1RN e nRN mas sem balanceamento, e com os dois tratamentos com balanceamento. Os resultados obtidos para o speed-up obtido esto mostrados na figura 5.42, e para a eficincia de paralelizao na figura 5.43.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

182

16

16

12 Speed-Up Speed-Up 0 4 original Terico 8 12 1RN nRN 16 20 1RN+bal nRN+bal

12

0 Processadores lgicos

0 0 4 8 12 16 20 1RN+bal nRN+bal Processadores lgicos original 1RN Terico nRN

(a)
16

(b)

12 Speed-Up

0 0 4 8 12 16 20 Processadores lgicos original Terico 1RN nRN 1RN+bal nRN+bal

(c) Figura 5.42: Speed-up obtido para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Euler, malhas (a) EU1, (b) EU2 e (c) EU3. Mesmo com as cargas de trabalho iniciais sendo distribudas proporcionalmente freqncia de cada processador lgico, o balanceamento das mesmas representou ganhos de at 22% no speed-up obtido, ressaltando tanto a no uniformidade espacial da aplicao das condies de contorno e de cargas como a no uniformidade do graus de conexo dos ns (nmero de elementos a ele conectados).

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

183

100%

100% Eficincia de Paralelizao


0 4 8 12 16 20

Eficincia de Paralelizao

75%

75%

50%

50%

25%

25%

0% Processadores lgicos

0% 0 4 8 12 16 20 Processadores lgicos original nRN 1RN nRN+bal 1RN+bal original nRN 1RN nRN+bal 1RN+bal

(a)
100% Eficincia de Paralelizao

(b)

75%

50%

25%

0% 0 4 8 12 16 20 Numero de ncleos

original nRN

1RN nRN+bal

1RN+bal

(c) Figura 5.43: Eficincia de paralelizao obtido para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Euler, malhas (a) EU1, (b) EU2 e (c) EU3. Tambm para as malhas com o modelo de escoamento de Euler, a aplicao do algoritmo paralelo sobre as malhas sem nenhum tratamento resultou num desempenho bastante baixo, com um speed-up mximo de 5,7 com 20 processadores (28% de eficincia). Para todos os tamanhos de problema, os melhores resultados foram obtidos com o tratamento nRN em conjunto com o balanceamento das cargas de trabalho, em especial quando eram utilizados mais de 12 processadores. Com o uso de 20 processadores, o emprego do tratamento nRN
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

184

com balanceamento resultou em um desempenho 7% superior ao do tratamento 1RN com balanceamento, atingindo um speed-up mximo de 14,4 (eficincia de 72%). Os valores obtidos para a eficincia de paralelizao do modelo de escoamento de Euler so muito prximos dos obtidos para o modelo de escoamento de Navier-Stokes, com uma leve vantagem para o ltimo, uma vez que o modelo de Navier-Stokes exige mais esforo computacional para a avaliao das matrizes, mas o mesmo tempo de comunicao em rede. Os resultados para a frao serial de Karp-Flatt esto mostrados na figura 5.44, mostrando novamente como os tratamentos 1RN e nRN so importantes para que uma boa escalabilidade do problema seja obtida. Os valores de frao linear negativa indicam a ocorrncia de speedup superlinear. Considerando os problemas com geometria mais complexa (veculo espacial para hexaedros, modelo de avio para tetraedros), uma comparao entre o desempenho do algoritmo paralelo para os dois tipos de elementos pode ser feita tomando-se, para cada malha empregada, qual o maior valor de speed-up obtido e a eficincia de paralelizao correspondente. Os dados correspondentes esto mostrados na tabela 5.15, onde GL indica o nmero de graus de liberdade do problema, NP o nmero de processadores empregados para a obteno do speedup mximo, tetra refere-se a elementos tetradricos e hexa a hexadricos. Comparando-se os valores obtidos na tabela 5.15, percebe-se a ntida diferena existente entre a eficincia do algoritmo aplicado a malhas de hexaedros e a de tetraedros. As

implementaes so idnticas, diferindo apenas na forma de avaliao das matrizes. O fato de uma malha de hexaedros ter de ser estruturada faz com que haja uma constncia muito maior quanto ao nmero de elementos conectados a cada n ao longo da malha do que em uma malha no estruturada de tetraedros. Isso faz com que a premissa de que a carga de trabalho computacional associada aos ns constante, utilizada no processo de diviso de tarefas, aproxime-se muito mais da condio existente nas malhas de hexaedros, tornando a diviso de tarefas mais eficiente e menos dependente do balanceamento das cargas.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

185

0,50

0,50

0,40

0,40

0,30 Frao serial


Frao serial

0,30

0,20

0,20

0,10

0,10

0,00 0 -0,10 4 8 12 16 20

0,00 0 -0,10 4 8 12 16 20

Processadores lgicos

Processadores lgicos

original nRN

1RN nRN+bal

1RN+bal

original nRN

1RN nRN+bal

1RN+bal

(a)
0,50

(b)

0,40

0,30 Frao serial

0,20

0,10

0,00 0 -0,10 Processadores lgicos 4 8 12 16 20

original nRN

1RN nRN+bal

1RN+bal

(c) Figura 5.44: Frao serial obtida para o escoamento supersnico em torno de um modelo de avio, modelo de escoamento de Euler, malhas (a) EU1, (b) EU2 e (c) EU3.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

186

Tabela 5.15: Valores mximos de speed-up e a eficincia computacional correspondente para as malhas de hexaedros e tetraedros utilizadas na simulao de escoamentos em torno de um veculo espacial e de um modelo de avio. Malha Tipo VE1 VE2 EU1 EU2 EU3 NS1 NS2 NS3 NS4 GL Elementos Speed-up mximo NP Eficincia 198.750 917.700 242.979 2.093.370 7.397.968 242.979 1.501.912 7.400.765 9.654.369 17,08 17,82 12,70 14,10 14,40 11,60 14,10 13,70 11,70 20 20 20 20 20 19 19 19 19 85% 89% 61% 74% 72% 62% 63% 71% 72%

hexa 1.055.730 hexa 4.746.060 tetra 229.115

tetra 1.824.980 tetra 6.373.225 tetra 229.115

tetra 1.359.210 tetra 6.611.270 tetra 8.488.525

Para as malhas no estruturadas de tetraedros, o grande nmero de elementos conectados a um n faz com que a redundncia no esforo computacional quando da diviso de tarefas seja grande, alm de aumentar a quantidade de dados a ser transmitida pela rede em comparao com as malhas de hexaedros. A premissa de que a carga de trabalho computacional associada a cada n constante ao longo da malha , em muitos casos, bastante distante da condio existente, fazendo com que o balanceamento das cargas de trabalho sejam de grande importncia para obteno do desempenho timo. Alm disso, a grande quantidade de elementos conectados a um mesmo n faz com que a informao de um grande nmero de ns seja necessria para que as equaes nodais desse n sejam resolvidas em um dado passo de tempo ou iterao. Divises de tarefas com um tratamento como o nRN faz com que seja comum a troca de dados de cada processador presente no conjunto com todos os outros, tornando mais importante o correto ordenamento das comunicaes entre processadores para que no haja perda de eficincia na velocidade de processamento do conjunto.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

187

5.2.5 Elementos Tetradricos Escoamento transnico em torno de uma asa delta usando a tcnica de sub-ciclos
Para teste do algoritmo paralelo para escoamentos compressveis de um passo com iteraes utilizando a tcnica de sub-ciclos para integrao no tempo, foi utilizado o problema de escoamento transnico ao redor de uma asa delta apresentada por Bono (2008) e representada na figura 5.45. A malha utilizada tem 613.077 elementos tetradricos, 110.725 ns e 553.625 graus de liberdade.

Figura 5.45: Malha utilizada na anlise paralela do escoamento transnico ao redor de uma asa delta com a tcnica de sub-ciclos.

Para a aplicao do algoritmo com a tcnica de sub-ciclos, os elementos da malha so divididos em grupos cujo valor do passo de tempo empregado um mltiplo 2n do valor do menor passo de tempo, correspondente ao menor elemento da malha. Na tabela 5.16 esto mostrados os grupos de passos de tempo utilizados, o percentual de elementos em cada grupo e o valor do speed-up terico da tcnica de sub-ciclos.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

188

Tabela 5.16: Distribuio dos elementos da malha em funo do passo de tempo mnimo a ser empregado Escoamento transnico em torno de uma asa delta. Grupo % de elementos Grupo % de elementos 1 t 4 t 16 t 64 t 256 t 0,06% 2,13% 30,91% 12,40% 10,53% 16,4 8,22 2 t 8 t 32 t 128 t 0,04% 21,71% 17,71% 4,45%

Speed-up de sub-ciclos terico Speed-up de sub-ciclos obtido

Para que o ganho de desempenho do algoritmo paralelo possa ser avaliado, o cdigo seqencial foi utilizado com a malha do problema com um nico passo de tempo e com subciclos. A partir dos tempos de processamento obtidos, possvel avaliar o desempenho da verso paralela. O valor de speed-up efetivamente obtido para a tcnica de sub-ciclos com o algoritmo seqencial foi de 8,22. Os valores de speed-up e eficincia de paralelizao para o algoritmo paralelo so mostrados na figura 5.46(a). Se o ganho de velocidade de processamento obtido com a tcnica de sub-ciclos foi de 8,22 vezes, o speed-up terico da verso paralela com sub-ciclos dada pelo produto do speed-up terico de paralelizao (igual ao nmero de processadores utilizado) com o speed-up obtido com sub-ciclos, ou seja 20 x 8,22 = 164,4 para 20 processadores. O valor obtido para cada nmero de processadores foi utilizado como base para o clculo da eficincia de paralelizao mostrada na figura 5.46(b). Apesar do speed-up obtido ser bastante alto em termos absolutos (at 43 vezes mais rpido que o cdigo original) a eficincia de paralelizao obtida com o uso de sub-ciclos bastante mais baixa que com o uso de um passo de tempo nico. Como com a tcnica de sub-ciclos durante uma parcela considervel da anlise os valores das variveis nodais de vrios ns so apenas interpolados, o esforo computacional consideravelmente mais baixo que com o algoritmo original (8,22 vezes), mas a quantidade de dados a ser comunicada entre os diversos processadores continua a mesma. Isso faz com que, proporcionalmente ao tempo gasto com
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

189

processamento, o tempo de comunicao de dados pela rede se torne maior, baixando a eficincia do conjunto.
45 40 Eficincia de paralelizao 0 4 8 12 16 20 35 30 Speed-up 25 20 15 10 5 0 Processadores lgicos passo de tempo nico sub-ciclos

110% 100% 90% 80% 70% 60% 50% 40% 30% 20% 0 4 8 12 16 20 Processadores lgicos passo de tempo nico sub-ciclos

(a)

(b)

Figura 5.46: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo com a tcnica de sub-ciclos para na anlise paralela do escoamento transnico ao redor de uma asa delta. Alm disso, a diviso de tarefas nunca tima, pois o esforo computacional varia ao longo dos passos de tempo de um ciclo, de modo que uma diviso de tarefas inicial baseada na premissa de que o esforo computacional constante para todos os ns deixa de ser verdadeira espacialmente e temporalmente, pois para cada passo de tempo o esforo diferente. Mesmo o balanceamento das cargas de trabalho no consegue equilibrar perfeitamente o esforo, pois ele feito sobre o tempo de processamento gasto para um determinado nmero de passos de tempo (pelo menos 1 ciclo completo). Na mdia h um equilbrio, mas isso no significa que em um determinado passo de tempo um processador tenha uma grande carga de trabalho enquanto outro fica esperando que o processamento do primeiro termine para que haja a comunicao de dados, e que no passo seguinte a situao no se inverta.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

190

5.3 ESCOAMENTOS INCOMPRESSVEIS EM REGIME SUBSNICO


Para os testes do algoritmo paralelo explcito de Taylor-Galerkin de integrao no tempo de dois passos para a soluo de problemas de escoamentos incompressveis tridimensionais, empregou-se uma implementao com os mesmos elementos hexadricos lineares com integrao reduzida utilizado no esquema de um passo com iteraes. Maiores detalhes podem ser encontrados em Burbridge (1999). Os computadores utilizados nas simulaes foram os mesmos do exemplo 5.2.2, seguindo a ordem indicada na tabela 5.10. A fim de verificar a influncia dos tratamentos da malha e do balanceamento das cargas de trabalho sobre o desempenho, em todos os exemplos a implementao paralela do algoritmo de soluo foi empregada com 4 configuraes: a) a malha original sem nenhum tratamento e sem realizar o balanceamento das cargas de trabalho, usando apenas a diviso inicial de tarefas baseada na freqncia dos processadores; b) a malha original sem nenhum tratamento, mas com o balanceamento das cargas de trabalho; c) o tratamento 1RN com balanceamento das cargas de trabalho; d) o tratamento nRN com balanceamento das cargas de trabalho.

5.3.1 Cavidade de fundo flexvel


Este exemplo simula o escoamento bidimensional em uma cavidade com paredes laterais rgidas e um fundo flexvel. O escoamento do fludo perturbado pelo movimento do fundo. Maiores detalhes podem ser encontrados em Foster et al. (2007) e em Braun (2009). Para os testes do esquema explcito de escoamento, o fundo foi considerado rgido. No exemplo 6.4.1 o problema completo, com o fundo flexvel, ser utilizado para os testes de desempenho do algoritmo paralelo para interao fludo-estrutura. Foi utilizada a malha da figura 5.47 com 2.500 elementos hexadricos lineares e 5.202 ns, correspondendo a 20.808 graus de liberdade. Como o escoamento bidimensional, foi considerado apenas um elemento na direo da espessura (eixo z). Os resultados obtidos para o speed-up e para a eficincia de paralelizao podem ser vistos na figura 5.48.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

191

Figura 5.47: Malha utilizada na anlise do escoamento em cavidade.

7 6 5 Speed-up 4 3 2 1 0 0 4 8 12 16 20 Processadores lgicos Orig. s/ bal. 1RN bal. Orig. bal. nRN bal.

100%

Eficincia de paralelizao

80%

60%

40%

20%

0% 0 4 8 12 16 20 Processadores lgicos
Orig. s/ bal. 1RN bal. Orig. bal. nRN bal.

(a)

(b)

Figura 5.48: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo do esquema explcito de dois passos na anlise do escoamento em cavidade. Em funo da malha ser constituda por um nmero muito pequeno de ns e elementos, o speed up obtido para um nmero grande de processadores relativamente baixo, atingindo 5,8 para 20 processadores no melhor dos casos. A malha apresenta uma distribuio de esforo computacional por n praticamente uniforme, uma vez que o processo de balanceamento no trouxe diferenas visveis para o desempenho. Na comunicao de dados entre os processadores, a latncia da rede teve uma influncia maior que a taxa de transferncia. Em funo disso, o tratamento nRN, que reduz a
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

192

quantidade de dados a serem comunicados entre processadores mas implica em um nmero maior de trocas de dados que o tratamento 1RN, apresentou um desempenho pior que o ltimo. Como termo de comparao de desempenho, Petry (2002) resolve um problema semelhante de escoamento bidimensional em uma cavidade quadrada, com uma malha em torno de 6 vezes maior, e obteve uma velocidade de processamento de 8,69 x 10-6 s por passo de tempo por iterao, obtendo uma taxa de aproximadamente 700 Mflops sustentada em um supercomputador Cray T94 utilizando um nico processador. O melhor resultado obtido com o cluster empregado foi de 3,63 x 10-7 s por passo de tempo por iterao para 20 computadores com tratamento de malha 1RN e carga balanceada. Apesar dos cdigos serem diferentes, com implementaes totalmente distintas (o Cray usa vetorizao, o cluster usa paralelizao), e o tamanho do problema ser diferente (uma malha maior levaria a melhores resultados de speed-up mas tambm a uma maior carga atribuda ao cache do processador), a comparao pode ser utilizada como ordem de grandeza do desempenho relativo. Se a comparao direta pudesse ser realizada, o cluster seria aproximadamente 24 vezes mais rpido que o Cray, com uma taxa equivalente de 16,8 Gflops sustentada.

5.3.2 Escoamento bidimensional em torno de uma edificao prismtica


Este exemplo simula o escoamento do vento natural sobre uma edificao prismtica de parede e tetos rgidos, havendo desenvolvimento de camada limite do terreno e gerao e desprendimento de vrtices. Maiores detalhes so apresentados por Braun (2007). A malha emprega elementos tridimensionais para simular um escoamento bidimensional, tendo somente um elemento na direo da espessura (eixo z). Uma viso geral da malha utilizada pode ser vista na figura 5.49. Um total de 22.368 elementos e 45.558 ns foram utilizados na discretizao, correspondendo a 182.232 graus de liberdade. Os resultados obtidos para o speed-up e para a eficincia de paralelizao podem ser vistos na figura 5.50. Sendo uma malha maior que a do exemplo 5.3.1, o tempo de comunicao de dados pela rede no impe uma perda de desempenho to grande quanto naquele exemplo. O balanceamento das cargas de trabalho representa um ganho de aproximadamente 5% no speed-up mximo obtido. Em funo do esquema de gerao utilizado, a malha original apresentava uma ordenao de ns bastante ruim para ser base para diviso de tarefas. Os ordenamentos 1RN e
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

193

nRN produziram melhoras significativas no desempenho, resultando para o speed-up mximo ganhos de 71% e 85%, respectivamente.

Figura 6.49: Malha utilizada na anlise do escoamento bidimensional em torno de uma edificao prismtica. Fonte: Braun, 2007.

12

100%

10 Eficincia de paralelizao 0 4 8 12 16 20 80%

8 Speed-up

60%

40%

0 Processadores lgicos Orig. s/ bal. 1RN bal. Orig. bal. nRN bal.

20% 0 4 8 12 16 20 Processadores lgicos Orig. s/ bal. 1RN bal. Orig. bal. nRN bal.

(a)

(b)

Figura 5.50: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo do esquema explcito de dois passos na anlise do escoamento em torno de uma edificao prismtica.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

194

O uso do tratamento nRN com balanceamento das cargas de trabalho foi o mais vantajoso. Pelo tamanho da malha, a menor quantidade de dados a serem comunicados atravs da rede pelos processadores lgicos compensou, em tempo de processamento total, a necessidade de um nmero maior de comunicaes entre os processadores que o que necessrio com o uso do tratamento 1RN.

5.3.3 Escoamento tridimensional em torno de uma edificao prismtica


Este exemplo simula os estudos experimentais em tnel de vento conduzidos por Akins et al. (1977) no Laboratrio de Dinmica dos Fludos e Difuso da Universidade do Estado do Colorado (EUA). O modelo caracterizado por uma seo retangular com uma razo altura / largura igual a dois, submetido a um escoamento de camada limite atmosfrica com ngulo de ataque igual a zero para obteno dos coeficientes aerodinmicos de um edifcio prismtico imerso no escoamento. Maiores detalhes podem ser encontrados em Braun (2007). Uma viso geral do domnio computacional e das condies de contorno utilizadas na anlise esto mostradas na figura 6.51. A malha empregada pode ser vista na figura 5.52, sendo composta por 368.800 elementos e 383.613 ns, totalizando 1.534.452 graus de liberdade.

Figura 5.51: Domnio computacional e condies de contorno do escoamento tridimensional em torno de uma edificao prismtica. Fonte: Braun (2007)

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

195

Figura 5.52: Malha utilizada na anlise do escoamento tridimensional em torno de uma edificao prismtica. Fonte: Braun (2007) Os resultados de speed-up e eficincia de paralelizao obtidos com o algoritmo paralelo esto mostrados na figura 5.53. O tamanho da malha utilizada permitiu que se obtivesse valores de speed-up bastante altos, alcanando 15,1 com o uso de 20 processadores lgicos. O balanceamento das cargas de trabalho foi responsvel por uma ganho de aproximadamente 5% no desempenho.
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 4 8 12 16 20 Processadores lgicos Orig. s/ bal. 1RN bal. Orig. bal. nRN bal. 100%

Eficincia de paralelizao

80%

Speed-up

60%

40% 0 4 8 12 16 20 Processadores lgicos Orig. s/ bal. 1RN bal. Orig. bal. nRN bal.

(a)

(b)

Figura 5.53: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo do esquema explcito de dosi passos para na anlise do escoamento em cavidade.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

196

Para este exemplo, os tratamentos 1RN e nRN resultaram em diminuio da velocidade de processamento. De todos os exemplos analisados para os vrios algoritmos, foi o nico em que isso ocorreu. O tratamento nRN resultou em um desempenho bastante prximo do obtido com a malha sem reordenao, mais ainda assim com um desempenho inferior. Uma provvel explicao que o gerador de malha utilizado empregue um reordenador nodal de minimizao de banda mais eficiente que o empregado nos tratamentos 1RN e nRN.

5.4 INTERAO FLUDO-ESTRUTURA


No algoritmo paralelo para anlise de problemas de interao fludo estrutura, utilizou-se, para a parte do fludo, o esquema explcito de dois passos, e para a soluo do sistema de equaes resultante da parte da estrutura, o Mtodo dos Gradientes Conjugados. A anlise dinmica foi feita pelo mtodo de Newmark no contexto -generalizado. A implementao foi feita para problemas tridimensionais empregando os elementos hexadricos lineares com integrao reduzida utilizados nos testes anteriores para o Mtodo dos Gradientes Conjugados e para escoamentos subsnicos incompressveis. Os exemplos utilizados nos testes foram os mesmos empregados no escoamento subsnico, mas com uma estrutura deformvel imersa no escoamento ao invs de um contorno slido. O primeiro exemplo analisado o de escoamento em uma cavidade de fundo flexvel, substituindo-se o fundo da cavidade do exemplo 5.3.2 por uma membrana deformvel, como mostra a figura 5.54. A malha para a estrutura formada por 108 elementos e 296 ns (888 graus de liberdade).

Figura 5.54: Malhas para o fludo e para a estrutura usadas na simulao do problema de escoamento em cavidade com fundo flexvel. Fonte: Braun (2009)
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

197

O segundo exemplo o de um escoamento bidimensional em uma edificao prismtica, substituindo-se o teto da edificao, considerado rgido no exemplo 6.3.2, por uma membrana flexvel discretizada por uma malha com 600 elementos e 1510 ns (4530 graus de liberdade), mostrada na figura 5.55.

Figura 5.55: Malha utilizada na discretizao do teto da edificao sob escoamento bidimensional. Fonte: Braun (2007). No ltimo exemplo, o prdio prismtico imerso em um escoamento tridimensional deixa de ser um objeto rgido e passa a ser flexvel, sendo discretizado por uma malha com 1000 elementos e 1404 nos (4212 graus de liberdade), como mostrado na figura 5.56.

Figura 5.56: Malha utilizada na discretizao do edifcio imerso em um escoamento tridimensional. Fonte: Braun (2007).

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

198

No algoritmo utilizado, as malhas para o fludo e para a estrutura so independentes entre si. Da mesma forma, na verso paralela cada malha tem seu processo de diviso de tarefas com ou sem tratamento de forma independente. Para cada processador lgico envolvido na anlise designado um grupo de ns e elementos da malha do fludo e da malha da estrutura. Para o balanceamento das cargas de trabalho, somente se considera que uma situao equilibrada foi encontrada quando os tempos de processamento dos diversos processadores o mesmo, dentro de uma certa tolerncia, tanto no que se refere ao fludo quanto estrutura. Em todos os exemplos utilizados a estrutura de dados correspondente estrutura muito pequena, sendo esperadas eficincias de paralelizao muito baixas e, eventualmente, speedups inferiores unidade. Para contornar parcialmente o problema, foi implementada a possibilidade da estrutura ser processada somente no processador mestre (processamento seqencial) ao invs de em todos os processadores. Os computadores e a ordem de uso dos processadores foi a mesma empregada nos testes com o algoritmo paralelo para escoamento subsnico incompressvel. Como indicado no algoritmo utilizado para a anlise de problemas de interao fluido estrutura na seo 4.4.2, h a necessidade a cada determinado nmero de passos de tempo (da anlise do fludo) de se transferir os dados de presso no contorno slido da estrutura de dados do fludo para a estrutura de dados da estrutura, e, aps a correspondente integrao no tempo da estrutura, passar os dados de velocidade da malha desta ltima para a estrutura de dados do fludo. Na implementao paralela, isso significa que os processadores lgicos envolvidos devem transmitir pela rede seus dados sobre presso no contorno slido para o processador mestre. Uma vez consolidados, esses dados so distribudos novamente para os diversos processadores segundo a diviso de tarefas da estrutura. O processamento da estrutura feito de forma paralela, com a soluo do sistema de equaes resultante sendo feito pelo Mtodo dos Gradientes Conjugados (em paralelo). Obtidas as velocidades nos ns da malha para o grupo de cada processador, os valores so agrupados no processador mestre e distribudos novamente aos diversos processadores segundo a diviso de tarefas do fludo. Ou seja, h uma quantidade muito maior de dados trafegando na rede que em qualquer dos algoritmos anteriormente testados, pois o algoritmo para interao fludo-estrutura o nico que exige um modelo de programao do tipo mestre-escravo.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

199

Os resultados obtidos para o speed-up e para a eficincia de paralelizao do exemplo da cavidade com fundo flexvel esto mostrados na figura 5.57. Tanto o pr-condicionador Diagonal como o pr-condicionador de Cholesky foram utilizados. As curvas indicadas por ES correspondem a solues nas quais a estrutura foi analisada de forma seqencial, somente pelo processador mestre. A indicao EP corresponde estrutura analisada de forma paralela por todos os processadores. Em todos os testes foi utilizado o tratamento 1RN com balanceamento das cargas de trabalho, tanto para o fludo como para a estrutura.
4

100% Eficincia de paralelizao 80% 60% 40% 20% 0% 0 4 8 12 16 20 0 4 8 12 16 20 Processadores lgicos Diag ES Chol ES Diag EP Chol EP Processadores lgicos Diag ES Chol ES Diag EP Chol EP

3 Speed-up

(a)

(b)

Figura 5.57: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo de interao fludo-estrutura na anlise do escoamento em cavidade com fundo flexvel. Os resultados mostram que o pr-condicionador Diagonal levou a um tempo de

processamento ligeiramente menor que o de Cholesky. Alm disso, a estrutura de dados correspondente estrutura to pequena que prefervel, em termos de desempenho, processar a estrutura somente no processador mestre, utilizando os demais em paralelo apenas para a anlise do fludo. Considerando que a anlise somente do fludo para este problema resultou em um speed-up mximo de 5,79 com 20 processadores, o valor mximo obtido com a interao fludoestrutura de 3,54 consideravelmente menor, decorrncia da maior quantidade de dados trafegando na rede entre os processadores durante o processo de soluo. Os resultados obtidos para o exemplo do escoamento bidimensional em torno da edificao com o teto composto por uma membrana flexvel esto mostrados na figura 5.58.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

200

2,0 Eficincia de paralelizao 0 4 8 12 16 20

80%

1,5 Speed-up

60%

1,0

40%

0,5

20%

0,0 Processadores lgicos Diag ES Chol ES Diag EP Chol EP

0% 0 4 8 12 16 20 Processadores lgicos Diag ES Chol ES Diag EP Chol EP

(a)

(b)

Figura 5.58: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo de interao fludo-estrutura na anlise do escoamento bidimensional em torno de edificao com teto composto por membrana flexvel. Novamente a estrutura de dados correspondente to pequena que somente compensador a anlise da estrutura em paralelo com um conjunto mximo de 4 processadores, onde se obteve o speed-up mximo de 1,54 com o pr-condicionador Diagonal. Alm disso, o sistema correspondente estrutura extremamente mal condicionado, decorrente do formato bastante achatado dos elementos utilizados para discretizar a membrana do teto, exigindo mais de 1000 iteraes para que o Mtodo dos Gradientes Conjugados alcanasse a convergncia. Nesse mesmo exemplo, a anlise em paralelo somente do escoamento conseguiu um valor mximo de speed-up de 10,81 com o tratamento utilizado. Finalmente, os dados correspondentes a anlise da interao fludo-estrutura do escoamento tridimensional em torno do edifcio flexvel esto mostrados na figura 5.59. Neste exemplo, os pr-condicionadores de Gaus e Cholesky levaram a um mesmo tempo de soluo. O tempo de processamento correspondente estrutura foi bastante pequeno, de modo que no houve diferena prtica entre o processamento paralelo e seqencial da mesma. Mesmo o fluido sendo preponderante em termos de tempo de processamento no problema, a da necessidade constante de transferncia de dados entre o processador mestre e os escravos resultou em um speed-up mximo de 4,25, bastante inferior ao valor 10,32 obtido para o mesmo problema com a estrutura rgida.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

201

5 Eficincia de paralelizao 0 4 8 12 16 20 4 Speed-up 3 2 1 0 Processadores lgicos Diag ES Chol ES Diag EP Chol EP

100% 80% 60% 40% 20% 0% 0 4 8 12 16 20 Processadores lgicos Diag ES Chol ES Diag EP Chol EP

(a)

(b)

Figura 5.59: (a) Speed-up e (b) eficincia de paralelizao para o algoritmo paralelo de interao fludo-estrutura na anlise do escoamento tridimensional em torno de edifcio flexvel. Os resultados mostram que, em problemas de interao fludo estrutura, se a malha correspondente estrutura muito pequena, muitas vezes no vale a pena realizar o processo de soluo da parte da estrutura de forma paralela. Talvez ainda mais vantajoso que processar a parte da estrutura apenas no processador mestre seria faz-lo em todos os processadores, de forma seqencial, reduzindo bastante a comunicao mestre-escravos. Se uma soluo seqencial do sistema de equaes correspondente estrutura vai ser utilizada, um solver direto pode ser considerado, especialmente para sistemas mal condicionados como o da edificao com teto em membrana flexvel. Em todos os exemplos analisados, a soluo seqencial da estrutura seria mais rpida utilizando o solver direto de Gauss, como indicado na figura 5.2. A opo pela utilizao da verso paralela do Mtodo dos Gradientes Conjugados para que seja possvel resolver de forma mais eficiente estruturas de dados bem maiores que as aqui analisadas.

5.5 SISTEMATIZAO DOS RESULTADOS


Com base nos resultados obtidos, diversas caractersticas foram identificadas. Os valores apresentados a seguir devem ser interpretados como um comportamento mdio entre diversas
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

202

aplicaes, e representam mais um indicativo de tendncia que um valor que efetivamente ser alcanado por alguma aplicao especfica. Em programas de simulao computacional baseados no Mtodo dos Elementos Finitos cuja discretizao espacial feita atravs de elementos hexadricos possvel obter ganhos de desempenho considerveis atravs de implementaes paralelas baseadas em trocas de mensagens entre os computadores atravs da rede (MPI). Computadores comuns ou estaes de trabalho de um laboratrio de pesquisa, mesmo quando no especificamente configurados para computao de alto desempenho, podem ser reunidos temporariamente em pequenos clusters temporrios e interligados atravs de uma rede de baixa velocidade (Fast Ethernet ou 100 Mbps) proporcionando um desempenho bastante superior ao que poderia ser obtido por computadores individuais. A tabela 5.17 mostra os valores mdios de speed-up obtidos para as aplicaes utilizando malhas de hexaedros (solver interativo de Gradientes Conjugados, escoamentos compressveis) com interconexo atravs de uma rede Ethernet de 100 Mbps, com processadores com freqncias de ncleo variando de 1,3 a 2,5 GHz para diversos tamanhos de problemas. O relativamente pequeno nmero de elementos conectados a um mesmo n nas malhas de hexaedros faz que, na diviso de tarefas, no seja necessria a comunicao de grande quantidade de dados entre os processadores e nem haja uma redundncia considervel no esforo computacional. Essas caractersticas, aliadas a uma distribuio de tarefas que minimize o nmero de operaes de comunicao entre processadores, tal como a diviso de tarefas baseada em ns com o tratamento 1RN, permite o emprego de uma rede de baixa velocidade e latncia relativamente alta sem que a eficincia de paralelizao seja muito baixa.

Tabela 5.17: Valores mdios de speed-up elementos hexadricos e rede de 100Mbps.

para aplicaes com

Tamanho do problemas (x 1000 GL) Nmero de Processadores 2 4 8 50 1,6 2,3 2,3 250 1,8 3 4 500 1,9 3,2 5 1400 1,9 3,5 6 2000 1,9 3,5 6,0

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

203

Nos problemas cuja discretizao espacial feita por malhas no estruturadas de tetraedros, o nmero de elementos conectados a ume mesmo n , em geral, bastante superior ao obtido em malhas de tetraedros, resultando em um maior nmero de operaes de comunicao entre computadores, uma maior quantidade de dados a ser transmitida entre eles e uma maior redundncia no esforo computacional. Apesar disso, os dois exemplos testados de malhas de tetraedros com rede em 100Mbps (escoamento compressvel em torno de uma esfera e escoamento compressvel em torno de um avio) apresentaram valores de speed-up bastante semelhantes aos valores mdios obtidos com malhas de hexaedros., conforme mostra a tabela 5.18.

Tabela 5.18: Valores consolidados de speed-up para aplicaes com elementos tetradricos e rede de 100Mbps. Tamanho do problemas (x 1000 GL) Nmero de Processadores 4 8 300 3,4 6,8 1400 3,1 5,3

O uso de uma rede mais rpida (1 Gbps) permite alcanar valores de speed-up de 20 a 40% maiores especialmente em problemas pequenos com o uso de um nmero grande de processadores. A maior taxa de transferncia da rede Gigabit Ethernet em relao Fast Ethernet e, em especial, sua menor latncia particularmente importante para problemas discretizados por malhas de tetraedros, resultando em grandes aumentos de eficincia mesmo em problemas grandes, o que no ocorre com as malhas de tetraedros. Para malhas de hexaedros com diviso de tarefas empregando o tratamento 1RN e com rede de 1Gbps, os valores mdios de speed-up considerando as diversas aplicaes testadas

(escoamento compressvel em torno de uma esfera, escoamento compressvel em torno de um veculo espacial, escoamento incompressvel em cavidade, escoamento incompressvel bidimensional em torno de edificao, escoamento incompressvel tridimensional em torno de edificao rgida) esto mostrados na Tabela 5.19. Os valores consolidados para o tratamento nRN esto mostrados na tabela 5.20. O tratamento nRN o que resulta em melhor desempenho quando utilizado com malhas estruturadas.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

204

Tabela 5.19: Valores mdios de speed-up para aplicaes com elementos hexadricos, rede de 1 Gbps e tratamento 1RN. Tamanho do problemas (x 1000 GL) Nmero de Processadores 4 8 12 16 20 30 2,9 3,8 4,3 5,3 5,8 200 3,4 5,7 7,2 9,2 10,8 1000 3,7 6,8 9,2 13 16,5 1500 3,7 7,0 9,5 13,5 17,2 5000 3,8 7,1 9,7 13,8 17,8

Tabela 5.20: Valores consolidados de speed-up para aplicaes com elementos hexadricos, rede de 1 Gbps e tratamento nRN. Tamanho do problemas (x 1000 GL) Nmero de Processadores 4 8 12 16 20 30 3,1 4,4 4,6 4,7 4,9 200 3,5 6,2 8,4 9,5 11,6 1000 3,9 7,4 10,8 13,3 17,1 1500 3,9 7,5 11,0 13,6 17,5 5000 3,9 7,6 11,2 13,8 17,8

Para malhas de tetraedros, com diviso de tarefas empregando o tratamento 1RN e com rede de 1Gbps, os valores mdios de speed-up considerando as diversas aplicaes testadas

(escoamento compressvel em torno de esfera, escoamento incompressvel em torno de avio) esto mostrados na Tabela 5.21. Os valores mdios para o tratamento nRN esto mostrados na tabela 5.22. Tambm para esse tipo de malha o tratamento nRN o que resulta em melhor desempenho, apresentando uma diferena maior em relao ao tratamento 1RN que o observado para malhas de hexaedros, especialmente quando um grande nmero de processadores empregado.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

205

Tabela 5.21: Valores mdios de speed-up para aplicaes com elementos tetradricos, rede de 1 Gbps e tratamento 1RN. Tamanho do problemas (x 1000 GL) Nmero de Processadores 4 8 12 16 20 250 3,9 6,7 8,5 9,7 10,5 1500 3,8 6,8 9,3 11,1 12,6 6500 3,9 7,2 10 12 13,4

Tabela 5.22: Valores mdios de speed-up para aplicaes com elementos tetradricos, rede de 1 Gbps e tratamento nRN. Tamanho do problemas (x 1000 GL) Nmero de Processadores 4 8 12 16 20 250 3,9 7 9,6 11,5 13,2 1500 3,8 6,9 9,6 12 14,1 6500 3,9 7,2 10,1 12,3 14,1

O modelo de programao paralela de programa sem mestre (hostless program) empregado em todas as aplicaes com exceo das para simulao de interao fludo estrutura mostraram-se bastante eficientes para todos os tipos de malha, alcanando valores de speedup respeitveis. Por outro lado, o modelo mestre-escravo empregado nos problemas de interao fludo-estrutura mostraram-se altamente ineficientes, principalmente devido enorme quantidade de dados que precisa trafegar na rede dos escravos para o mestre e vice versa. Considerando os resultados obtidos, sempre que possvel esse modelo deve ser preterido em favor do primeiro.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

206

6 RESULTADOS OBTIDOS PARA CONFIGURAES DE MEMRIA COMPARTILHADA E HBRIDAS MEMRIA COMPARTILHADA MEMRIA DISTRIBUDA.

6.1 CONSIDERAES GERAIS SOBRE A IMPLEMENTAO


As tcnicas desenvolvidas nos captulos 2 e 3 e a forma de paralelizao empregada nos algoritmos mostrados no captulo 4 foram concebidas e otimizadas para configuraes de memria distribuda, em que a comunicao entre processadores feita atravs de uma rede lgica e a sincronizao e troca de dados entre os processadores so feitas atravs de uma biblioteca de troca de mensagens. Contudo, esses mesmos algoritmos podem ser utilizados em configuraes de memria compartilhada, tais como computadores pessoais com 1 nico processador com diversos ncleos, funcionando na maioria dos aspectos como um computador com diversos processadores. Os processadores de uso geral para computadores pessoais e notebooks com mltiplos ncleos de processamento tm se tornado o padro de mercado nos ltimos 3 anos, com o nmero de ncleos fsicos variando de 2 a 4 e de ncleos lgicos variando de 2 a 8. Nesses processadores, cada ncleo funciona como um processador completo, acessando a totalidade da memria, justificando a nomenclatura memria compartilhada. Em tais configuraes, no h a necessidade de haver uma troca de mensagens entre ncleos, pois as variveis esto na memria e todo o contedo da memria pode ser mapeado por qualquer dos ncleos. H formas, portanto, bem mais simples de se implementar um algoritmo paralelo do que trocando mensagens entre os ncleos. Para isso, existem bibliotecas especficas de comandos que permitem atribuir tarefas aos diversos ncleos, determinar que variveis so compartilhadas entre eles e que variveis so proprietrias de cada um, que trechos do cdigo precisam ser executados de forma seqencial (por um nico ncleo) e de que forma uma varivel pode ser atualizada por mais de ncleo.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

207

Para testar a eficincia da forma de paralelizao dos algoritmos propostos em configuraes de memria compartilhada, o algoritmo para o esquema explcito de um passo com interao para simulao de escoamentos compressveis em regime transnico e supersnico foi paralelizado de forma otimizada para emprego nessas configuraes. Para tanto, utilizou-se a biblioteca OpenMP, e a implementao foi feita com cada lao do programa no relacionado entrada e sada de dados tornado paralelo, e com somente as variveis locais especficas de cada lao tornadas privadas, mantendo as demais compartilhadas para otimizar o uso da memria. Toda a estrutura para uso da biblioteca MPI para comunicao em rede foi mantida, podendo ser configurada atravs de parmetros nos dados de entrada. Cuidados foram tomados para que a estrutura de comunicao em rede no causasse impacto sobre a velocidade de processamento quando desativada. Como o compilador Compaq Visual Fortran v.6.6 utilizado anteriormente no tem suporte para OpenMP, foi empregado tambm o compilador Intel Visual Fortran 9.1. Como em muitas situaes o cdigo gerado pelo compilador Intel mais lento que o gerado pelo compilador Compaq, nos testes com configuraes utilizando somente MPI ambos foram empregados para um comparativo de desempenho. Os testes foram feitos com um cluster permanente e homogneo composto por 8 computadores com processadores de ncleo qudruplo Intel Core 2 Quad Q9550 com freqncia de ncleo de 3,75 GHz e 12 MB de cache L2, conectados atravs de uma rede Gigabit Ethernet (1 Gbps). A memria instalada em cada computador foi de 8 GB DDR2 800. Duas malhas de diferentes tamanhos foram escolhidas para cada tipo de elemento (hexaedros lineares e tetraedros lineares), empregadas anteriormente nos testes com configuraes de memria distribuda nos exemplos 5.2.2. e 5.2.4, e indicadas na tabela 6.1.

Tabela 6.1: Caractersticas das malhas utilizadas nos testes com configuraes de memria compartilhada. Malha Elemento Nmero de Elementos Nmero de Ns Graus de Liberdade VE1 VE2 NS1 NS2 Hexaedro Hexaedro Tetraedro Tetraedro 198.750 917.700 242.979 1.501.912 211.146 949.212 45.823 271.842 1.055.730 4.746.060 229.115 1.359.210

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

208

6.2 IMPACTO SOBRE O DESEMPENHO DO USO PLENO DOS NCLEOS DE UM PROCESSADOR


Uma parte considervel do desempenho de um processador est relacionada ao acesso memria, e forma como ela feita para os vrios ncleos uma caracterstica chave para um bom desempenho com o uso simultneo de todos os ncleos. O processador Core 2 de 4 ncleos da Intel no tem controladora de memria interna (no prprio processador), de modo que o acesso memria pelos vrios ncleos fica a cargo do chipset da placa-me, que desta forma quase to importante para o desempenho quanto o processador. Nos testes realizados foi utilizado o chipset Intel P45. O processador conta com um cache L2 de 6MB unificado para cada 2 ncleos, compensando, pelo tamanho, a maior latncia da controladora de memria externa, e garantindo coerncia de cache em processamento paralelo com 2 ncleos sem necessidade de acesso memria principal. Contudo, como o processador de 4 ncleos da Intel obtido pelo encapsulamento em um nico chip de 2 processadores de ncleo duplo, sem um cache unificado para todos os ncleos, quando todos eles esto em uso em processamento paralelo h a necessidade de acesso memria para coerncia de cache entre cada dupla de ncleos. Averiguar a influncia da arquitetura dos processadores utilizados sobre o desempenho foi o objetivo do primeiro teste, de forma a quantificar a perda de desempenho de um cdigo seqencial quando mais de um ncleo do processador estivesse em uso. Inicialmente uma nica cpia da verso seqencial de cada um dos cdigos empregados foi executada, de modo que somente um ncleo do processador estivesse em uso. Os tempos de processamento obtidos foram utilizados como tempos de referncia para uma comparao com 2 ou mais cpias do cdigo sendo executadas simultaneamente, de modo a colocar 2 ou mais ncleos do processador em uso pleno. O procedimento foi feito com as verses dos cdigos geradas por ambos compiladores empregados, de forma a se verificar a existncia de alguma influncia do compilador. Com os tempos de processamento obtidos, foi possvel estimar a velocidade relativa ao caso com somente um ncleo em uso. Os resultados obtidos esto mostrados na tabela 6.2. A diferena entre o desempenho relativo dos cdigos gerados pelos dois compiladores bastante pequena, podendo-se considerar os resultados equivalentes. Em mdia, com o uso
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

209

simultneo de 2 ncleos h uma perda de aproximadamente 3% no desempenho, e com o uso dos 4 ncleos, 10% aproximadamente. As perdas de desempenho verificadas so caractersticas da arquitetura do processador (e do chipset da placa-me), no podendo ser generalizadas para outras arquiteturas de processadores.

Tabela 6.2: Velocidade relativa de processamento quando mais de um ncleo do processador utilizado de forma plena malhas NS1, NS2, VE1 e VE2. Compaq 6.6 Intel 9.1

Processador Malha 2 ncleos 4 ncleos 2 ncleos 4 ncleos NS1 Intel Q9550 NS2 VE1 VE2 Mdia 0,943 0,971 0,977 0,981 0,968 0,808 0,928 0,916 0,924 0,894 0,959 0,978 0,970 0,978 0,971 0,874 0,912 0,878 0,927 0,898

A perda de desempenho observada na execuo de cdigos seqenciais simultneos esperada de forma anloga na execuo de um cdigo paralelo da forma como foi implementado para configuraes de memria distribuda utilizando a biblioteca MPI em um processador de ncleos mltiplos, pois apesar dos cdigos estarem sendo executados pelos vrios ncleos de um mesmo processador, eles so independentes entre si, utilizando reas de memria principal diferentes e independentes e concorrendo entre si pelo acesso memria, de forma muito similar que acontece com a execuo simultnea de cdigos seqenciais independentes. s perdas pelo uso simultneo dos vrios ncleos do processador (associadas principalmente ao acesso memria) se somam as perdas de desempenho inerentes implementao paralela.

6.3 PARALELISMO SEM O USO DA REDE


Utilizar uma implementao paralela para memria distribuda em uma configurao de memria compartilhada, especificamente em um computador com um nico processador com

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

210

mltiplos ncleos, faz com que cada ncleo se comporte como se fosse um computador independente, com seu prprio cdigo e seu conjunto de dados. Quando uma implementao paralela executada em diversos computadores com um nico processador com um nico ncleo, a controladora de memria somente precisa atender a um processo ou um cdigo. A comunicao entre os processos ou cdigos feita obrigatoriamente atravs da rede lgica de conexo dos computadores. Em um computador com um nico processador de ncleos mltiplos, a controladora de memria deve atender a tantos processos ou cdigos quanto o nmero de ncleos. O impacto sobre o desempenho deve, de certa forma, ser minimizado pela configurao de cache escolhida para o processador. Ao se executar uma implementao paralela otimizada para configuraes de memria compartilhada, boa parte das variveis utilizadas nos processos em cada ncleo so as mesmas, podendo ser armazenadas de forma comum, otimizando tanto o uso do cache quanto o acesso memria. Por outro lado, ao se executar uma implementao paralela otimizada para memria distribuda, cada processo em cada ncleo tem suas prprias variveis, concorrendo uns com os outros pelo uso de caches comuns e do acesso memria. A vantagem que a comunicao entre os ncleos ou processos se d inteiramente na memria, e no mais atravs da rede, pois o sistema operacional capaz de identificar pacotes cuja origem e destino sejam a mesma interface de rede e os mantm internos ao computador. Para verificar o desempenho das implementaes paralelas utilizando MPI empregadas no captulo 5 em uma configurao de memria compartilhada, os cdigos para tetraedros e hexaedros foram testados em um dos computadores usando de 1 ao nmero total de ncleos disponveis como se fossem computadores independentes. Alm disso, verses com o uso de OpenMP dos mesmos cdigos foram testadas nas mesmas condies. Como uma estimativa de eficincia, os resultados de speed-up foram obtidos considerando-se como referncia o tempo de processamento do cdigo seqencial para o mesmo compilador. A mesma verso seqencial base para as configuraes usando o compilador Intel com MPI ou com OpenMP. Contudo, como os compiladores geram cdigos que podem apresentar diferenas significativas na velocidade de processamento, as velocidade relativas foram calculadas tendo como referncia o menor tempo de processamento para a verso seqencial, independentemente do compilador utilizado.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

211

Os tratamentos 1RN e nRN usados em conjunto com MPI para 2 computadores ou ncleos so equivalentes (1 nica reordenao e 1 nica diviso) e os resultados obtidos para 4 ncleos so praticamente idnticos, de forma que no ser feita diferenciao entre eles. Os resultados de speed-up obtidos para as malhas VE1 e VE2 (hexaedros) com a biblioteca MPI utilizada em conjunto com o compiladores Compaq v.6.6 e Intel v.9.1, bem como os obtidos com OpenMP em conjunto com o compilador Intel v. 9.1 esto mostrados na figura 6.1.

4,0

4,0

3,5

3,5

3,0 Speed-up

3,0

Speed-up

2,5

2,5

2,0

2,0

1,5

1,5

1,0 1 2 3 4 Ncleos de Processamento


Compaq MPI Intel MPI Intel OMP

1,0 1 2 3 4

Ncleos de Processamento
Compaq MPI Intel MPI Intel OMP

(a)

(b)

Figura 6.1: Speed-ups obtidos para as malhas VE1 (a) e VE2 (b) em um processador multincleos com MPI empregada em conjunto com os compiladores Compaq v.6.6 e Intel v.9.1, e com OpenMP em conjunto com o compilador Intel v.9.1. Com o uso de apenas 2 ncleos do processador, os valores de speed-up obtidos nas trs implementaes foram muito prximos, alcanando aproximadamente 1,93 para a malha VE1 e 1,95 no VE2. Com o uso de 4 ncleos, as duas implementaes com MPI foram praticamente equivalentes (spped-up mdio de 3,65 para VE1 e 3,69 para VE2), e a implementao empregando-se OpenMP mostrou-se a menos eficiente (aproximadamente 7% mais lenta que as demais), contrariando a expectativa inicial, uma vez que no h redundncia do esforo computacional nessa forma de implementao.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

212

Para fins de comparao, o cdigo gerado pelo compilador Compaq com MPI obteve speedups de 1,97 e 3,88 para 2 e 4 computadores com um nico processador de um nico ncleo da classe Athlon 64 conectados por uma rede de 1 Gbps para a malha VE1, e 1,98 e 3,92 para a malha VE2, todos maiores que os obtidos com o processador de mltiplos ncleos. Se por um lado h neste ltimo uma maior velocidade de comunicao entre os processos (a troca de dados ocorre internamente na memria sem o uso da rede), por outro h uma maior sobrecarga na controladora de memria em funo dos processos em execuo em cada ncleo concorrendo entre si pelo acesso memria, anulando a vantagem da comunicao mais rpida. Os valores de velocidade relativa obtidos esto mostrados na figura 6.2.

4,0 3,5

4,0 3,5 3,0

Velocidade Relativa

Velocidade Relativa

3,0 2,5 2,0 1,5 1,0 0,5 0,0 1 2 3 4

2,5 2,0 1,5 1,0 0,5 0,0 1 2 3 4

Ncleos de Processamento
Compaq MPI Intel OMP Intel MPI

Ncleos de Processamento
Compaq MPI Intel OMP Intel MPI

(a)

(b)

Figura 6.2: Velocidades relativas obtidas para as malhas VE1 (a) e VE2 (b) em um processador multi-ncleos com MPI empregada em conjunto com os compiladores Compaq v.6.6 e Intel v.9.1, e com OpenMP em conjunto com o compilador Intel v.9.1. Apesar de apresentarem o mesmo valor de speed-up e, conseqentemente, mesma eficincia de paralelizao, o cdigo obtido com o compilador Compaq / MPI ligeiramente mais lento que o correspondente com o compilador Intel / MPI para a malha menor (VE1), e ligeiramente mais rpido para a malha maior (VE2). Para os dois problemas o cdigo

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

213

utilizando OpenMP foi o mais lento, com diferenas em relao implementao mais rpida de 6% e 9% para as malhas VE1 e VE2, respectivamente. Os speed-ups obtidos de para as malhas de tetraedros esto mostrados na figura 6.3.

4,0

4,0

3,5

3,5

3,0

3,0

Speed-up

2,5

Speed-up
1 2 3 4

2,5

2,0

2,0

1,5

1,5

1,0

1,0 1 2 3 4

Ncleos de Processamento
Compaq MPI Intel OMP Intel MPI

Ncleos de Processamento
Compaq MPI Intel OMP Intel MPI

(a)

(b)

Figura 6.3: Speed-ups obtidos para as malhas NS1 (a) e NS2 (b) em um processador multincleos com MPI empregada em conjunto com os compiladores Compaq v.6.6 e Intel v.9.1, e com OpenMP em conjunto com o compilador Intel v.9.1. O speed-up obtidos com MPI para a menor malha de tetraedros (NS1) foi aproximadamente 15% menor que o obtido para a menor malha de hexaedros, e a diferena para as malhas maiores foi de aproximadamente 8%. Esses resultados so conseqncia direta das caractersticas geomtricas dos dois tipos de malhas. As malhas de tetraedros tendem a ter um nmero muito maior de elementos conectados a cada n, fazendo com que a comunicao de dados entre os processadores lgicos (ncleos) seja consideravelmente maior. Essa caracterstica no afeta as implementaes empregando OpenMP, pois no h comunicao de dados entre processos, mas acesso compartilhado memria, fazendo com que os resultados obtidos sejam praticamente equivalentes para os dois tipos de malhas. Para a malha menor (NS1), a implementao empregando OpenMP apresentou o maior speed-up (5% maior que a melhor soluo com MPI), e para a malha maior (NS2) todas as implementaes foram praticamente equivalentes.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

214

Para fins de comparao, o cdigo gerado pelo compilador Compaq com MPI obteve speedups de 2,02 e 3,59 para 2 e 4 computadores com um nico processador de um nico ncleo da classe Athlon 64 conectados por uma rede de 1 Gbps para a malha VE1, e 1,99 e 3,72 para a malha VE2. Os melhores resultados obtidos para a configurao de mltiplos ncleos foi de 1,93 e 3,35 para a malha NS1 e 1,97 e 3,35 para a malha NS2, mostrando tambm neste caso o impacto negativo sobre o desempenho decorrente da sobrecarga da controladora de memria ao atender diversos ncleos simultaneamente. Os valores de velocidade relativa obtidos esto mostrados na figura 6.4.

4,0 3,5 3,0 Velocidade Relativa


Velocidade Relativa

4,0 3,5 3,0 2,5 2,0 1,5 1,0 0,5 0,0 1 2 3 4

2,5 2,0 1,5 1,0 0,5 0,0 1 2 3 4 Ncleos de Processamento

Ncleos de Processamento Compaq MPI Intel MPI

Compaq MPI

Intel MPI

Intel OMP

Intel OMP

(a)

(b)

Figura 6.4: Velocidades relativas obtidas para as malhas NS1 (a) e NS2 (b) em um processador multi-ncleos com MPI empregada em conjunto com os compiladores Compaq v.6.6 e Intel v.9.1, e com OpenMP em conjunto com o compilador Intel v.9.1. Para a malha menor (NS1) a implementao Compaq com MPI obteve uma velocidade de processamento 21% maior que as obtida pela implementao mais rpida com o compilador Intel (OpenMP), mesmo tendo o mais baixo speed-up dentre todas as implementaes para essa malha, um resultado surpreendente considerando-se que o compilador Intel v.9.1 uma verso melhorada e otimizada para processadores Intel do compilador Compaq. Para a malha de maior tamanho (NS2), a vantagem em termos de velocidade de processamento para a implementao Compaq / MPI cerca de 5% mais rpida que o as implementaes com o
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

215

compilador Intel, embora essa diferena seja pequena o suficiente para que as solues possam ser consideradas equivalentes.

6.4 PARALELISMO HBRIDO COM E SEM O USO DA REDE


Quando um cdigo paralelo empregando MPI utilizado em um computador com um nico processador com mltiplos ncleos, a comunicao entre os processos ou ncleos ocorre sem o uso da rede, permanecendo interna ao computador. Contudo, quando formado um cluster de computadores com esse tipo de processador, as comunicaes entre os ncleos de um processador e os de outro efetivamente feita atravs da rede. Ao contrrio de clusters compostos por computadores com um nico processador de ncleo nico, como os utilizados nos exemplos do captulo 5, que dispem de uma interface de rede para cada ncleo, em um cluster de computadores com um processador de mltiplos ncleos normalmente existe apenas uma interface de rede para atender comunicao de todos os ncleos. Esquemas de divises de tarefas que impliquem na comunicao de cada ncleo com todos os outros, como o caso do tratamento nRN, tendem a ser menos eficientes em clusters de computadores com processadores de mltiplos ncleos, pois h um grande nmero de comunicaes simultneas e externas a cada computador saturando a interface de rede e dividindo a largura de banda disponvel nos switches de rede. Por outro lado, tratamentos como o 1RN, que fazem com que em um processador de 4 ncleos somente o primeiro e o ltimo ncleos precisem de uma comunicao de dados externa ao computador cada um, com as comunicaes entre os ncleos (1-2), (2-3) e (3-4) permanecendo internas, tendem a ser mais vantajosas. Um tratamento do tipo nRN somente se tornaria mais vantajoso quando a quantidade de dados a serem comunicados entre ncleos decorrente da diviso de tarefas a ele associada fosse significativamente menor que a correspondente quantidade de dados para um tratamento do tipo 1RN, compensando assim a perda de desempenho associada latncia de um nmero muito maior de processos de comunicao em rede e saturao da interface de rede. Em uma diviso de tarefas baseada em ns, o uso de uma biblioteca de paralelismo de memria compartilhada como a OpenMP para dividir tarefas entre os mltiplos ncleos do processador de um computador, associado ao uso de um biblioteca como MPI para a
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

216

comunicao de dados entre computadores (os nodos do cluster) leva ao mesmo nmero de comunicaes pela rede e mesma quantidade de dados a serem comunicados que com o uso unicamente de MPI quando a malha sofre um tratamento do tipo 1RN (visto que parte das comunicaes permanecem internas). Quando um tratamento mais complexo como o nRN utilizado, uma implementao OpenMP-MPI resulta em um nmero bastante menor de processos de comunicao atravs da rede que uma implementao MPI pura, embora a quantidade de dados por processo de comunicao seja maior. Desta forma, uma implementao OpenMP-MPI torna-se atrativa quando: a) o emprego da biblioteca OpenMP representa a alternativa de melhor desempenho para a paralelizao de tarefas entre os ncleos de um mesmo processador; b) um nmero grande de processadores com mltiplos ncleos empregado. Neste caso, a comunicao direta entre ncleos utilizando MPI somente e empregando o tratamento 1RN levaria a uma diviso da malha ineficiente, e o tratamento nRN levaria a um nmero muito grande de processos de comunicao simultneos que se tornam crticos com um nmero reduzido de interfaces de rede. A fim de verificar o desempenho de todas as configuraes, a implementao paralela com os oito computadores disponveis foi feita de 2 formas: a) os 32 ncleos se comunicam diretamente uns com os outros com o uso da biblioteca MPI, independentemente de pertencerem a um mesmo processador ou a processadores diferentes. b) a diviso de tarefas entre os ncleos de um mesmo processador feita utilizando-se a biblioteca OpenMP. A comunicao entre computadores feita atravs da biblioteca MPI. Com o uso de OpenMP, a distribuio de tarefas feita dividindo-se cada lao do programa em tantas partes quantos forem os ncleos do processador, uma vez que nos processadores utilizados os correspondentes ncleos tem o mesmo poder computacional. Com o uso de MPI, a diviso inicial de tarefas entre ncleos feita baseada na freqncia de cada ncleo, e balanceada at que o equilbrio seja obtido. Os tratamentos 1RNe nRN so utilizados. Com o uso simultneo de OpenMP e MPI, a diviso inicial de tarefas entre computadores feita
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

217

utilizando-se como parmetro de desempenho relativo de cada processador o produto da freqncia do processador pelo nmero de ncleos disponveis. Essa diviso inicial entre computadores balanceada at que o equilbrio seja atingido e os tratamentos 1RN e nRN so empregados na diviso da malha entre computadores. A diviso do esforo computacional pelo diversos ncleos internamente ao processador feita atravs do OpenMP dividindo-se os laos entre eles. Os resultados de speed-up obtidos para as malhas de hexaedros esto mostrados na figura 6.5. Nas implementaes utilizando apenas MPI h, em geral, equivalncia entre o desempenho dos cdigos gerados pelos compiladores Compaq e Intel. O tratamento 1RN foi, em geral, mais eficiente que o nRN, embora a diferena de desempenho no seja significativa na maioria dos casos. A nica configurao em que o tratamento 1RN resultou em speed-up significativamente maior (11% aproximadamente) que o tratamento nRN foi com a malha VE2 com o compilador Intel. As implementaes utilizando somente MPI foram mais eficientes que as utilizando MPI e OpenMP em conjunto. Com o tratamento 1RN, as comunicaes entre os ncleos de um mesmo processador ocorrem internamente, de modo que as nicas comunicaes com o uso da rede so entre o primeiro ncleo do processador e o ltimo do processador anterior, e entre o ltimo ncleo do processador e o primeiro do processador seguinte, de modo que o nmero de comunicaes em rede e a quantidade de dados envolvida so aproximadamente os mesmos dos correspondentes a uma implementao usando OpenMP e MPI com o tratamento 1RN. No entanto, a diviso de tarefas entre processadores inerente ao emprego de MPI resulta em redundncia do esforo computacional. Essa redundncia menor na configurao que emprega MPI e OpenMP em conjunto, em comparao com as configuraes utilizando somente MPI pois a diviso de tarefas feita em funo do nmero de computadores, e no de ncleos, resultando em um nmero de divises 4 vezes menor (para processadores de 4 ncleos) e, conseqentemente, um nmero consideravelmente menor de fronteiras. Esse efeito pode ser percebido na malha de menor tamanho (VE1) quando o nmero de processadores utilizados torna-se grande. As configuraes utilizando apenas MPI apresentam uma perceptvel perda de escalabilidade, caracterizada pela reduo da inclinao dos grficos de speed-up versus nmero de processadores, o que no percebido na configurao empregando OpenMP em conjunto com MPI at o nmero mximo de processadores disponveis. Se essa tendncia se mantiver com o aumento do nmero de processadores, o
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

218

speed-up obtido com o uso conjunto de OpenMP e MPI provavelmente ser maior que o obtido com apenas MPI.
22 20 18 16 Speed-up Speed-up 14 12 10 8 6 4 2 4 8 12 16 20 24 28 32 Ncleos de Processamento Compaq MPI 1RN Compaq MPI nRN 22 20 18 16 Speed-up 4 8 12 16 20 24 28 32 Ncleos de Processamento Intel MPI 1RN Intel MPI nRN 14 12 10 8 6 4 2 4 8 12 16 20 24 28 32 Intel OMP MPI 1RN Intel OMP MPI nRN Ncleos de Processamento

22 20 18 16 14 12 10 8 6 4 2

(a)
26 24 22 20 18 Speed-up Speed-up 16 14 12 10 8 6 4 2 4 8 12 16 20 24 28 32 Ncleos de Processamento Compaq MPI 1RN Compaq MPI nRN 26 24 22 20 18 16 14 12 10 8 6 4 2 4

(b)
26 24 22 20 18 Speed-up 16 14 12 10 8 6 4 2 8 12 16 20 24 28 32 Ncleos de Processamento Intel MPI 1RN Intel MPI nRN 4 8

(c)

12 16 20 24 28 32

Ncleos de Processamento Intel OMP MPI 1RN Intel OMP MPI nRN

(d)

(e)

(f)

Figura 6.5 Speed-ups obtidos em cluster permanente com processadores multi-ncleos para o problema VE1 com (a) compilador Compaq v.6.6 / MPI, (b) compilador Intel v.9.1 / MPI, (c) compilador Intel v.9.1 / OpenMP + MPI e para o problema VE2 com (d) compilador Compaq v.6.6 / MPI, (e) compilador Intel v.9.1 / MPI, (f) compilador Intel v.9.1 / OpenMP + MPI.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

219

Nas implementaes utilizando somente MPI com o tratamento nRN, cada ncleo de cada processador pode estabelecer comunicaes com todos os outros ncleos dos outros processadores, de modo que a interface de rede nica para cada 4 ncleos tende a ser muito solicitada e constituir-se em um gargalo importante para o desempenho. O tratamento nRN reduz a quantidade de dados a serem comunicados atravs da rede em relao ao tratamento 1RN, mas aumenta o nmero de operaes de comunicao, o que particularmente crtico quando a quantidade de dados a ser comunicada pequena, tornando a soluo mais dependente da latncia da comunicao em rede que da taxa de transferncia, situao agravada pela presena de apenas uma interface de rede para atender a vrios ncleos simultaneamente. Esses fatores explicam o tratamento em 3 das 4 configuraes. Os valores mximos de speed-up utilizando o compilador Compaq / MPI para 16 processadores foram de 13,4 e 13,3 para as malhas VE1 e VE2, respectivamente, ambas para o tratamento 1RN. Para comparao, os valores obtidos com o cluster de 15 computadores com processadores de ncleo nico e uma rede de 1Gbps foram 13,3 e 13,8 para as mesmas malhas. A maior eficincia do conjunto com processadores de ncleo nico deve-se tanto controladora de memria e interface de rede serem dedicadas a apenas um ncleo ou processo, quanto velocidade relativa da rede em relao velocidade de processamento ser maior (rede de 1Gbps para 2,2 GHz por ncleo contra 3,75 GHz). Em funo do nmero relativamente pequeno de elementos conectados a cada ns da malha, o que favorvel ao emprego de MPI tanto no que se refere redundncia do esforo computacional quanto ao nmero de operaes de comunicao entre processadores e quantidade de dados a ser comunicada atravs da rede, os algoritmos paralelos desenvolvidos mostraram-se particularmente eficientes em problemas com malhas de hexaedros, alcanando uma eficincia de paralelizao entre 65% e 75% com 32 ncleos de processamento para a malha de maior tamanho (VE2). Os resultados de velocidade reativa obtidos esto mostrados na figura 6.6. O comportamento geral o mesmo verificado para o speed-up, com as implementaes utilizando apenas MPI praticamente equivalentes, ambas apresentando maior velocidade de processamento que a soluo empregando OpenMP combinado com MPI. Para efeitos de comparao, a velocidade de processamento para 16 ncleos de 3,75GHz no cluster com processadores de ncleos menor desempenho das solues com esse

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

220

mltiplos 1,76 vezes maior que a obtida para 15 ncleos de 2,2 GHz com o cluster com processadores de ncleo nico para a malha VE1, e 1,85 vezes maior para a malha VE2.
22 20 18 Velocidade Relativa Velocidade Relativa 4 8 12 16 20 24 28 32 Intel MPI 1RN Intel MPI nRN 16 14 12 10 8 6 4 2 4 8 12 16 20 24 28 32 Ncleos de Processamento Compaq MPI 1RN Compaq MPI nRN Ncleos de Processamento 22 20 18 16 14 12 10 8 6 4 2 4 8 12 16 20 24 28 32 Intel OMP MPI 1RN Intel OMP MPI nRN Ncleos de Processamento

22 20 18 Velocidade Relativa 16 14 12 10 8 6 4 2

(a)
26 24 22 20 Velocidade Relativa Velocidade Relativa 18 16 14 12 10 8 6 4 2 4 8 12 16 20 24 28 32 Ncleos de Processamento Compaq MPI 1RN Compaq MPI nRN 26 24 22 20 18 16 14 12 10 8 6 4 2 4

(b)
26 24 22 20 Velocidade Relativa 18 16 14 12 10 8 6 4 2 8 12 16 20 24 28 32 Ncleos de Processamento Intel MPI 1RN Intel MPI nRN 4 8

(c)

12 16 20 24 28 32

Ncleos de Processamento Intel OMP MPI 1RN Intel OMP MPI nRN

(d)

(e)

(f)

Figura 6.6: Velocidades relativas obtidas em cluster permanente com processadores multincleos para o problema VE1 com (a) compilador Compaq v.6.6 / MPI, (b) compilador Intel v.9.1 / MPI, (c) compilador Intel v.9.1 / OpenMP + MPI e para o problema VE2 com (d) compilador Compaq v.6.6 / MPI, (e) compilador Intel v.9.1 / MPI, (f) compilador Intel v.9.1 / OpenMP + MPI.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

221

Os resultados para a frao serial de Karp-Flatt esto mostrados na figura 6.7 para a malha VE1 e 6.8 para a malha VE2, mostrando uma escalabilidade levemente pior para a implementao utilizando OpenMP em conjunto com MPI em relao s implementaes empregando somente MPI, especialmente quando um nmero pequeno de ncleos empregado. Os resultados utilizando apenas MPI para os compiladores Compaq e Intel so equivalentes.

0,06 0,05 Frao serial 0,04 0,03 0,02 0,01 0,00 4 8 12 16 20 24 28 32 Ncleos de processamento Compaq MPI 1RN Intel MPI nRN Compaq MPI nRN Intel OMP MPI 1RN Intel MPI 1RN Intel OMP MPI nRN

Figura 6.7 Fraes seriais obtidas em cluster permanente com processadores multi-ncleos para o problema VE1 malha de hexaedros.

0,06 0,05 Frao serial 0,04 0,03 0,02 0,01 0,00 4 8 12 16 20 24 28 32 Ncleos de processamento Compaq MPI 1RN Intel MPI nRN Compaq MPI nRN Intel OMP MPI 1RN Intel MPI 1RN Intel OMP MPI nRN

Figura 6.8 Fraes seriais obtidas em cluster permanente com processadores multi-ncleos para o problema VE2 malha de hexaedros.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

222

Para as malhas de tetraedros, os valores de speed-up obtidos esto mostrados na figura 6.10, e os de velocidade relativa esto mostrados na figura 6.11.
14 13 12 11 10 Speed-up Speed-up 9 8 7 6 5 4 3 2 4 8 12 16 20 24 28 32 Compaq MPI 1RN Compaq MPI nRN Ncleos de Processamento 14 13 12 11 10 Speed-up 9 8 7 6 5 4 3 2 4 8 12 16 20 24 28 32 Intel MPI 1RN Intel MPI nRN Ncleos de Processamento 14 13 12 11 10 9 8 7 6 5 4 3 2 4 8 12 16 20 24 28 32 Ncleos de Processamento Intel OMP MPI 1RN Intel OMP MPI nRN

(a)
18 16 14 12 Speed-up Speed-up 10 8 6 4 2 4 8 12 16 20 24 28 32 Ncleos de Processamento Compaq MPI 1RN Compaq MPI nRN 18 16 14 12 10 8 6 4 2 4 8

(b)
18 16 14 12 Speed-up 10 8 6 4 2 12 16 20 24 28 32 4 8

(c)

12 16 20 24 28 32

Ncleos de Processamento Intel MPI 1RN Intel MPI nRN

Ncleos de Processamento Intel OMP MPI 1RN Intel OMP MPI nRN

(d)

(e)

(f)

Figura 6.9: Speed-ups obtidos em cluster permanente com processadores multi-ncleos para o problema NS1 com (a) compilador Compaq v.6.6 / MPI, (b) compilador Intel v.9.1 / MPI, (c) compilador Intel v.9.1 / OpenMP + MPI e para o problema NS2 com (d) compilador Compaq v.6.6 / MPI, (e) compilador Intel v.9.1 / MPI, (f) compilador Intel v.9.1 / OpenMP + MPI.
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

223

14 13 12 11 Velocidade Relativa Velocidade Relativa 10 9 8 7 6 5 4 3 2 4 8 12 16 20 24 28 32 Ncleos de Processamento Compaq MPI 1RN Compaq MPI nRN

14 13 12 11 Velocidade Relativa 10 9 8 7 6 5 4 3 2 4 8 12 16 20 24 28 32 Ncleos de Processamento Intel MPI 1RN Intel MPI nRN

14 13 12 11 10 9 8 7 6 5 4 3 2 4 8 12 16 20 24 28 32 Ncleos de Processamento Intel OMP MPI 1RN Intel OMP MPI nRN

(a)
18 16 14 Velocidade Relativa Velocidade Relativa 12 10 8 6 4 2 4 8 12 16 20 24 28 32 Ncleos de Processamento Compaq MPI 1RN Compaq MPI nRN 18 16 14 12 10 8 6 4 2 4 8

(b)
18 16 14 Velocidade Relativa 12 10 8 6 4 2 12 16 20 24 28 32 4

(c)

8 12 16 20 24 28 32 Ncleos de Processamento Intel OMP MPI 1RN Intel OMP MPI nRN

Ncleos de Processamento Intel MPI 1RN Intel MPI nRN

(d)

(e)

(f)

Figura 6.10: Velocidades relativas obtidas em cluster permanente com processadores multincleos para o problema NS1 com (a) compilador Compaq v.6.6 / MPI, (b) compilador Intel v.9.1 / MPI, (c) compilador Intel v.9.1 / OpenMP + MPI e para o problema NS2 com (d) compilador Compaq v.6.6 / MPI, (e) compilador Intel v.9.1 / MPI, (f) compilador Intel v.9.1 / OpenMP + MPI.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

224

Os valores mximos de speed-up obtidos para o cdigo com o compilador Compaq e tratamento 1RN foram de 7,9 e 10,4 para as malhas NS1 e NS2, respectivamente, e 7,2 e 10,5 para o tratamento nRN. Para comparao, os valores obtidos com o cluster de 16 computadores com processadores de ncleo nico e uma rede de 1Gbps foram 7,8 e 10,8 para o tratamento 1RN e 10,3 e 12,1 para o tratamento nRN. A existncia de uma interface de rede nica para 4 ncleos realizando as operaes de comunicao atravs dela de forma simultnea e concorrente levou a uma sria penalizao em termos de latncia na comunicao atravs da rede com o cluster com processadores de ncleos mltiplos, fator agravado pela grande quantidade de processos de comunicao decorrentes do grande nmero de elementos conectados em cada n nas malhas de tetraedro. Esses fatores fizeram com que os resultados obtidos com o tratamento nRN no cluster com processadores de ncleos mltiplos fossem piores que os obtidos com o tratamento 1RN, especialmente na malha menor (NS1). O tratamento 1RN, por acarretar um nmero mnimo de operaes de comunicao em rede, impediu que a interface nica de rede para atender a vrios ncleos se constitusse em um grande gargalo para o desempenho. Os valores de speed-up obtidos no cluster com processadores com mltiplos ncleos fosse equivalente ao obtido no cluster com processadores de ncleo nico. O uso de OpenMP em conjunto com MPI resultou nos maiores valores de speed-up, mostrando ser a alternativa mais eficiente para problemas discretizados por malhas no estruturadas em clustesr cujos ns so computadores com processadores de mltiplos ncleos. O nmero de operaes de comunicao de dados em rede bastante reduzida em ralao s implementaes utilizando somente MPI, o que foi altamente benfico para o desempenho em malhas de tetraedros onde a grande quantidade de elementos conectados a um mesmo n critica, seja quanto ao tempo de comunicao em rede, seja na redundncia do esforo computacional. A implementao com o compilador Compaq apresentou velocidades de processamento bastante superior s obtidas com o compilador Intel para a malha menor (NS1), e equivalente para a malha maior (NS2). Contudo, a muito maior eficincia de paralelizao da

implementao empregando OpenMP e MPI em conjunto mais do que compensou o cdigo bastante mais lento do compilador Intel para a malha menor, tornando-se a alternativa mais rpida para os dois tamanhos de malha testados.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

225

Os resultados para a frao serial de Karp-Flatt esto mostrados nas figuras 6.11 e 6.12 para as malhas NS1 e NS2, respectivamente. Para a malha menor (NS1), todas as solues com o tratamento nRN apresentaram crescimento da frao serial com o nmero de processadores, indicando o efeito negativo de de um grande nmero de processos de comunicao sobre a escalabilidade. As solues com o tratamento 1RN apresentaram frao serial aproximadamente constante, com valores mdios inferiores aos obtidos com o tratamento nRN. Para a malha maior, os resultado obtidos para todas as implementaes so equivalentes, e indicam boa escalabilidade.

0,20 0,18 0,16 0,14 0,12 0,10 0,08 0,06 0,04 0,02 0,00 4 8 12 16 20 24 28 32 Ncleos de processamento Compaq MPI 1RN Intel MPI nRN Compaq MPI nRN Intel OMP MPI 1RN Intel MPI 1RN Intel OMP MPI nRN

Figura 6.11: Fraes seriais obtidas em cluster permanente com processadores multi-ncleos para o problema NS1.

Frao serial Frao serial

0,20 0,18 0,16 0,14 0,12 0,10 0,08 0,06 0,04 0,02 0,00 4 8 12 16 20 24 28 32 Ncleos de processamento Compaq MPI 1RN Intel MPI nRN Compaq MPI nRN Intel OMP MPI 1RN Intel MPI 1RN Intel OMP MPI nRN

Figura 6.12: Fraes seriais obtidas em cluster permanente com processadores multi-ncleos para o problema NS2.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

226

6.5 SISTEMATIZAO DOS RESULTADOS


Com base nos resultados obtidos, pode-se identificar as seguintes tendncias de comportamento das implementaes paralelas testadas: a) Em computadores com configuraes de memria compartilhada, especificamente com um nico processador com mltiplos ncleos, uma abordagem paralela utilizando somente MPI, ou seja, tratando cada ncleo do processador como um nodo de cluster ou computador independente, a alternativa que apresenta maior eficincia e maior velocidade de processamento. Sua implementao, contudo, bastante mais trabalhosa que uma equivalente utilizando OpenMP, pela exigncia de maior organizao dos dados, sincronizao e diviso de tarefas inerente a um paralelismo baseado na troca de mensagens entre os processos. b) Em clusters compostos por computadores com processadores multi-ncleos, a abordagem paralela ideal depende do tipo de malha de elementos finitos utilizada na discretizao espacial do problema. Em malhas estruturadas de hexaedros, o nmero de elementos conectados a um mesmo n relativamente baixo, resultando em pequena quantidade de dados a ser comunicada entre processadores e baixa redundncia do esforo computacional. Essas caractersticas associadas a um tratamento que minimize o nmero de processos de comunicao entre ncleos, deixando o maior nmero de operaes internas ao computador (sem o uso da rede) conseguem anular o efeito negativo sobre o desempenho da existncia de uma nica interface de rede para atender aos mltiplos ncleos do processador e s suas operaes de comunicao simultneas e concorrentes, de modo que a melhor abordagem paralela aquela baseada inteiramente baseada na troca de mensagens entre os ncleos presentes no cluster (MPI), sem o emprego de uma biblioteca de paralelismo de memria compartilhada (OpenMP), e em uma diviso de tarefas com um mnimo de operaes de comunicao entre os ncleos (1RN). c) No mesmo tipo de cluster, para malhas no estruturadas de tetraedros, onde o nmero de elementos conectados a um mesmo n muito grande com conseqncias negativas para o desempenho relacionadas redundncia do esforo computacional, ao nmero de operaes de comunicao entre processadores e quantidade de dados envolvidos nessas operaes, a abordagem paralela mais indicada a que utiliza
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

227

memria compartilhada (OperMP) para a mobilizao dos vrios ncleos dentro de um nodo do cluster, e troca de mensagens atravs da rede (MPI) para a comunicao entre nodos do cluster. d) Pela existncia de uma interface de rede para cada ncleo, clusters formados por computadores com processadores de ncleo nico tendem a ser mais eficientes que os formados por computadores com processadores de ncleos mltiplos nas configuraes adequadas ao paralelismo que utiliza somente a troca de mensagens (MPI). Contudo, importante lembra que, para o mesmo nmero de ncleos de processamento, uma configurao de hardware baseada em processadores de ncleos mltiplos bastante mais barata que a com processadores de ncleo nico, por evitar a duplicao de componentes como fontes, placas-me, unidades de armazenamento, etc. Essa diferena de custo poderia ser investida em processadores mais potentes, resultando em um conjunto com maior velocidade de processamento em paralelo, apesar de menos eficiente.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

228

7 CONCLUSES E SUGESTES

7.1 CONCLUSES
Neste trabalho foi desenvolvida uma metodologia de paralelizao para processos de soluo iterativos de problemas de mecnica dos slidos, dinmica dos fludos e interao fludoestrutura utilizando o Mtodo dos Elementos Finitos em configuraes de memria distribuda, memria compartilhada ou hbridas que pode ser aplicada para clusters temporrios e permanentes, homogneos ou no. Diversos testes foram realizados com diferentes configuraes de tamanho de cluster, poder computacional dos computadores envolvidos, velocidade da rede de conexo e tamanho e tipo da estrutura de dados envolvida. Apesar de os testes no esgotarem todas as possveis combinaes, os resultados obtidos permitiram estabelecer as seguintes concluses: Os algoritmos iterativos de soluo mostraram-se adequados para a paralelizao, particularmente para configuraes de memria distribuda. A diviso de tarefas entre os processadores lgicos envolvidos relativamente simples de ser feita, bem como a identificao das variveis envolvidas na comunicao entre processadores. Enquadram-se nessa classificao o Mtodo dos Gradientes Conjugados para a soluo de sistemas de equaes lineares e os esquemas explcitos de Taylor-Galerkin de dois passos e de um passo com iteraes para a soluo de problemas de dinmica dos fludos. As caractersticas desses algoritmos permitiram que fosse adotada uma estratgia de paralelizao sem processador ou computador mestre (Hostless program), resultando em baixa comunicao de dados entre os processadores. As escolha de um processo de diviso de tarefas baseada em ns mostrou-se adequada para as estruturas de dados decorrentes do Mtodo dos Elementos Finitos, uma vez que o mtodo resulta na soluo de sistemas de equaes envolvendo variveis nodais. A identificao dos dados necessrios para a comunicao entre processadores lgicos
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

229

envolvidos na soluo paralela bem como da redundncia de esforo computacional intrnseca a essa diviso diretamente relacionada com os dados da malha utilizada na discretizao do problema. A diviso de tarefas baseada em ns fundamenta-se na suposio de que o esforo computacional associado aos ns da malha constante ao longo de toda a estrutura de dados. Caractersticas como cargas, condies de contorno, no linearidades fsicas e processos adaptativos espaciais e temporais no so uniformes para toda a malha, a real distribuio do esforo computacional ao longo dos ns no constante. Alm disso, boa parte do esforo computacional est associado ao clculo das matrizes dos elementos, de modo que a variabilidade do nmero de elementos conectados a cada n tambm contribui para a no homogeneidade da distribuio do esforo computacional, especialmente em malhas no estruturadas. O balanceamento das cargas de trabalho empregado mostrou-se eficaz o suficiente para minimizar os efeitos da no uniformidade do esforo computacional e para permitir o ajuste das cargas de trabalho alocadas a cada processador quando um indicador simples e imperfeito como a freqncia do processador utilizado como base para uma diviso inicial de tarefas em clusters heterogneos. Os tratamentos de malha empregados para a minimizao tanto da quantidade de dados comunicados entre processadores lgicos a cada iterao do processo de soluo quanto da redundncia do esforo computacional apresentaram um bom desempenho quanto eficincia de paralelizao obtida. O tratamento 1RN mostrou-se mais adequado quando o nmero de processadores lgicos no muito grande em uma configurao de memria distribuda, quando a latncia de comunicao em rede grande para essa mesma configurao ou em configuraes hbridas de memria distribuda e memria compartilhada, como em clusters cujos ns possuem processadores de mltiplos ncleos. O tratamento nRN mostrou-se particularmente interessante em clusters com um nmero maior de nodos cujos processadores so de ncleo nico. A forma de ordenamento das comunicaes em rede empregada foi necessria para que, com o tratamento nRN, fossem obtidos tempos de comunicao em rede relativamente baixos.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

230

Embora otimizada para configuraes de memria distribuda, a forma de paralelizao escolhida e as tcnicas empregadas para aumentar sua eficincia fizeram com que os cdigos gerados sejam adequados para uso em configuraes de memria compartilhada e em configuraes hbridas (clusters de computadores com processadores de mltiplos ncleos). Os resultados obtidos em termos de speed-up, eficincia de paralelizao e velocidade de processamento nessas configuraes, para problemas que usem uma malha estruturada de elementos hexadricos na discretizao espacial foram melhores com o uso somente de MPI que com o emprego de OpenMP ou OpenMP em conjunto com MPI. Quando a discretizao espacial utiliza malhas no estruturadas de tetraedros, o emprego de OpenMP, sozinho ou em conjunto com MPI, levou maior eficincia de paralelizao. A velocidade de processamento altamente dependente do compilador utilizado, de modo que compiladores que oferecem suporte a OpenMP nem sempre so os que geram o cdigo de maior velocidade de processamento.

A soluo paralela de problemas utilizando malhas no estruturadas bastante menos eficiente que a de problemas de tamanho semelhante utilizando malhas estruturadas. Com o uso de tetraedros, o nmero de elementos conectados a um mesmo n , em geral, muito maior e muito mais varivel do que quando so utilizados elementos hexadricos, levando a uma maior redundncia do esforo computacional na diviso de tarefas entre processadores em uma configurao de memria distribuda e a uma maior heterogeneidade na distribuio do esforo computacional de soluo ao longo da malha. Quanto maior o nmero de elementos conectados em um n, maior o nmero de outros ns relacionados a ele, maior o nmero de variveis nodais que so necessrias para o clculo do valor atualizado das variveis desse n em um processo iterativo, maior a quantidade de dados que precisam ser trocados entre processadores a cada passo iterativo. Conseqentemente, mais importantes se tornam procedimentos eficientes para minimizar a comunicao de dados entre processadores, a redundncia do esforo computacional e proporcionar uma diviso de tarefas equilibrada.

A tcnica de sub-ciclos empregada para acelerar a integrao no tempo nos esquemas explcitos de Taylor-Galerkin empregados em Dinmica dos Fludos adiciona no uniformidade temporal j existente no uniformidade espacial da distribuio do esforo computacional associado a cada n da malha utilizada na discretizao do
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

231

domnio do problema. O fato do esforo computacional associado a grupo de ns ou elementos da malha mudar a cada passo de tempo torna difcil a obteno de uma distribuio de cargas de trabalho equilibrada em todos os passo de tempo. A diviso de tarefas fixa ao longo do tempo utilizada levou a valores de speed-up e eficincia de paralelizao baixos, embora a combinao do speed-ups proporcionado pela paralelizao com aquele proporcionado pela tcnica de sub-ciclos tenha produzido ganhos de velocidade de processamento notveis. A escolha de um algoritmo com tratamento particionado para a soluo de problemas de interao fludo-estrutura levou a uma baixa eficincia de paralelizao em funo do fludo e da estrutura serem considerados como entidades isoladas, com estrutura de dados e distribuio de tarefas prprias. Embora os algoritmos utilizados para a soluo do fludo e da estrutura individualmente tenham apresentado boa escalabilidade na paralelizao, a juno dos mesmos com um tratamento particionado deu origem a uma grande quantidade de dados trafegando entre os processadores. A eficincia obtida no processo foi considerada insatisfatria. A implementao utilizada foi totalmente baseada nas capacidades apresentadas pela linguagem de programao utilizada (Fortran 90) e nas bibliotecas de comunicao empregadas (MPI e OpenMP). Nenhuma caracterstica especial do sistema operacional foi utilizada alm do suporte comunicao em rede. Os cdigos assim desenvolvidos podem ser utilizados em verses normais do sistema operacional, sem a necessidade de verses especficas para clusters, tanto em clusters permanentes especialmente configurados para o processamento puro como em clusters temporrios, utilizando as estaes de trabalho e a infra-estrutura de rede normalmente disponveis nos laboratrios de pesquisa e desenvolvimento. A configurao que garante a maior eficincia de paralelizao aquela na qual os processadores envolvidos tm o mesmo poder computacional. Configuraes heterogneas apresentam menor rendimento, mas as tcnicas empregadas para diviso e balanceamento das cargas de trabalho em tais configuraes proporcionaram uma boa eficincia para a as diferenas de poder computacional tpicas das vrias geraes de um processador dentro de uma mesma arquitetura.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

232

7.2 SUGESTES PARA TRABALHOS FUTUROS


Com base nos resultados obtidos, algumas sugestes para trabalhos futuros puderam ser formuladas para esclarecer alguns tpicos que no puderam ser melhor estudados neste trabalho ou para estender sua aplicao a outros campos. So elas: O estudo sobre a paralelizao de problemas de Mecnica dos Slidos foi bastante limitado e restringiu-se a problemas estticos de elasticidade linear, onde o clculo das matrizes de rigidez e de cargas e o posterior clculo de tenses naturalmente feito elemento a elemento e portanto, totalmente desacoplados, permitindo facilmente a paralelizao, e onde a soluo do sistema de equaes a responsvel pela maior parte do tempo de processamento necessrio. Problemas dinmicos e com no linearidade fsica e geomtrica necessitam de grande esforo computacional e demandam grandes tempos de processamento, sendo reas de grande interesse. Problemas com efeitos de plasticidade e dano contnuo alteram a distribuio espacial do esforo computacional, exigindo cuidados com a distribuio de tarefas para manter a eficincia de paralelizao. O tratamento dado a problemas de Dinmica dos Slidos Computacional dentro do estudo de Interao Fludo-Estrutura pode ser considerado preliminar e precisa ser bastante aprofundado. Problemas com no uniformidade espacial e temporal do esforo computacional relacionado aos elementos da malha trazem desafios para que a eficincia de paralelizao seja obtida e mantida ao longo do processo de soluo. O emprego da tcnica de sub-ciclos em problemas transientes de dinmica dos fludos onde o passo de tempo empregado em cada elemento depende no somente do tamanho do elemento mas tambm dos gradientes das variveis nodais um exemplo desse tipo de problema e exige uma abordagem dinmica para o problema de diviso de tarefas e balanceamento das cargas de trabalho. A Utilizao de uma diviso de tarefas baseada em particionamento dual (por elementos), para comparao de desempenho com o mtodo empregado. O processo de diviso de tarefas entre processadores utilizado pode ser melhorado pela adio de um custo computacional associado aos ns que leve em considerao o nmero de elementos conectados a cada n, ponderando a quantidade de ns alocada a
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

233

cada

processador.

Permitir

um

certo

desbalanceamento

de

cargas

no

particionamento da malha pela busca na regio provvel de diviso do sistema de equaes dos pontos onde o sistema apresenta largura de banda mnima. A diminuio na quantidade de dados associados s fronteiras dos subdomnios e do nmero de subdomnios vizinhos podem mais do que compensar o desbalanceamento de cargas em termos de tempo de execuo. O ordenamento da comunicao entre processadores pode ser melhorado pela identificao de etapas em que 2 ou mais processadores esto em estado de espera, mas a comunicao entre eles ainda no ocorreu. Estas situaes podem ser identificadas a priori pela anlise da tabela de incrementos, a qual pode ser modificada alterando a ordem dos incrementos de alguns processadores, levando a possveis redues no nmero total de etapas de comunicao do conjunto. A abordagem utilizada na comunicao de dados entre processadores no algoritmo com tratamento particionado para a anlise de problemas de interao fludo-estrtura mostrou-se particularmente ineficiente. Um melhor estudo da estrutura de dados para evitar o mximo possvel uma configurao do tipo mestre-escravo faz-se necessrio. A aplicao dos algoritmos desenvolvidos em clusters com um nmero maior de computadores com processadores de mltiplos ncleos precisa ser melhor estudada para se identificar possveis gargalos ao desempenho e formas de corrigi-los. Desenvolvimento de rotinas que permitam a deteco de falha de um processador lgico, de modo a realizar de modo automtico a excluso do processador do processo e a reconfigurao do cluster com nova diviso de tarefas e balanceamento. A verificao da adequabilidade da forma de paralelizao desenvolvida em processadores com um nmero de ncleos lgicos maior que o de ncleos fsicos, e com poderes computacionais diferentes por ncleo precisa ser estudada para a identificao de possveis gargalos ao desempenho e formas de corrigi-los. Um grande ganho na velocidade de processamento pode ser obtida em certos algoritmos ao utilizarem-se os processadores grficos atualmente disponveis para o processamento de cdigos numricos (GPGPU). Verificar a adequabilidade dos algoritmos de soluo empregados para os problemas de Mecnica dos Slidos e de
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

234

Dinmica dos Fludos nesse tipo de processadores, bem como estudar a forma de paralelizao para clusters compostos por computadores com processadores de mltiplos ncleos e mltiplos processadores grficos parece ser o caminho a ser seguido para a obteno de computao de alto desempenho com baixos custos. Formas de baixo custo de melhorar a velocidade de comunicao entre computadores podem ser testadas, como a utilizao de mais de uma interface de rede em computadores de mltiplos ncleos e o desenvolvimento de tcnicas de comunicao entre os ncleos ou processadores que delas faam uso.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

235

REFERNCIAS BIBLIOGRFICAS

AMD Famlia de Processadores AMD Opteron. Disponvel em < http://www.amd.com/brpt/processors/productInformation/0,,30_118_8825,00.html > Acesso em: dezembro de 2008. AMDAHL, G. Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities", AFIPS CONFERENCE Proceedings.., (30), pp. 483-485, 1967. ARGONE NATIONAL LABORATORY. MPICH A portable implementation of MPI. Disponvel em < http://www-unix.mcs.anl.gov/mpi/mpich1/index.htm> . Acesso em setembro de 2005. ARGYRIS, J.; DOLTSINIS, I. S.; FRIZ, H. Study on computational reentry aerodynamics. Computer Methods in Applied Mechanics and Engineering. v.81, p. 257289. 1990. AZEVEDO, R.L. Anlise de problemas de interao fludo-estrutura usando o mtodo dos elementos finitos com um acoplamento monoltico. Porto Alegre, RS. 1999. Tese (Doutorado). Programa de Ps-Graduao em Engenharia Civil. Universidade Federal do Rio Grande do Sul. BARNEY, B. Introduction to parallel computing. Disponvel em < https://computing.llnl.gov/ tutorials/parallel_comp/ >.Lawrence Livermore National Laboratory. Acesso em maio e 2007. BATHE, K.J. Finite element procedures. Englewood Cliffs, New JerseyPrentice Hall, 1996. BELYTSCHKO, T.; GILBERTSEN, N. D. Implementation of Mixed Time Integration Techniques on a Vectorized Computer with Shared Memory. International Journal of Numerical Methods in Engineering. v.35, p. 1803-1828. 1992. BELYTSCHKO, T.; LU, Y. Y. Explicit Multi-time step integration for first and second order finite element semidiscretizations. Computational. Methods in Applied. Mechanics and Engineering. v.108. p. 353-383. 1993. BELYTSCHKO, T.; YEN, H. J.; MULLEN, R. Mixed Method for Time Integration. Computational. Methods in Applied Mechanics and Engineering. v. 17/18. p. 259-275. 1979. BENNETT, R. M.; WALKER, C. E. Computational Test Cases for a Clipped Delta Wing With Pitching and Trailing-Edge Control Surface Oscillations, TM-209104, NASA, 1999. BENZI, M. Preconditioning techniques for large linear systems: a survey. Journal of Computational Physics, v.182, p. 418-477. 2002.
Paralelizao de cdigos de elementos finitos

236

BONO, G. Simulao numrica de escoamentos em diferentes regimes utilizando o mtodo dos elementos finitos. Porto Alegre, RS. 2008, 186p. Tese (Doutorado). Programa de Ps-Graduao em Engenharia Mecnica. Universidade Federal do Rio Grande do Sul. BRAUN, A. L. B. Simulao numrica na engenharia do vento incluindo efeitos de interao fludo-estrutura. Porto Alegre, RS. 2007, 283p. Tese (Doutorado). Programa de Ps-Graduao em Engenharia Civil. Universidade Federal do Rio Grande do Sul. . A Partitioned model for fluid-structure interaction problems using hexahedral finite elements with one-point quadrature. International Journal for Numerical Methods in Engineering, 2009 (accepted for publication). BRAUN, A.L. Um modelo para simulao numrica da ao do vento sobre sees de pontes. Porto Alegre, RS. 2002.. Dissertao (Mestrado). Programa de Ps-Graduao em Engenharia Civil. Universidade Federal do Rio Grande do Sul. BURBRIDGE, H. P. A finite element Taylor-Galerkin scheme for three-dimensional numerical simulation of high compressible flows with analytical evaluation of element matrices. Hybrid methods in engineering, [S.l.] v. 2, n. 4, p. 485-506, 2000. BURBRIDGE, H. P. O esquema explcito de Taylor-Galerkin na simulao numrica de escoamentos compressveis tridimensionais utilizando elementos finitos hexadricos de oito ns. Porto Alegre, RS. 1999, 140p. Dissertao (Mestrado). Programa de Ps-Graduao em Engenharia Civil. Universidade Federal do Rio Grande do Sul. CATALYUREK, U., BOMAN, E., DEVINE, K., BOZDAG, D., HEALPHY, R., RIESEN, L.A. Hypergraph-based Dynamic Load Balancing for Adaptive Scientific Computations. Proceedings of IPDPS'07, Best Algorithms Paper Award, March 2007. CHANG, H. J.; BASS, J. M.; TWORZYDLO, W.; ODEN, J. T. H-P Adaptive Methods for Finite Element Analysis of Aerothermal Loads in High-speed Flows. CR-189739, NASA, 1993. CHORIN, A.J. A numeical method for solving incompressible viscous flow problems. Journal of Computational physics, v. 105, p.207-223. 1967 COURANT, R., FRIEDRICHS, K. e LEWY, H. ber die partiellen Differenzengleichungen der mathematischen Physik, Mathematische Annalen, vol. 100, no.1, pages3274, 1928. Traduo para o ingls em COURANT, R., FRIEDRICHS, K. e LEWY, H. "On the partial difference equations of mathematical physics", IBM Journal, March 1967, pp. 215-234. Disponvel em < http://www.stanford.edu/class/cme324/classics/courant-friedrichs-lewy.pdf > Acesso em maro de 2007. CUMINATO, J.A., CASTELO FILHO, A., BOAVENTURA, M. TOM, M.F. Simulation.of free surface floews in a distributed memory environment. Journal of Computational and Applied Mathematics, 1999; 103:77-92. Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

237

DEMKOWICZ, L., KURTZ, J., PARDO, D., PASZYNSKI, M., RACHOWICZ, W. E ZDUNEK A. Computing with hp-Adaptative Finite Elements Vol.2 Frontiers: three dimensional elliptc and Maxwell problems with Applications. Chapman & Hall / CRC, 2007. 417p. DEMMEL, J. CS267 Applications off Parallel Computers. Lecture 23: Load Balancing and Scheduling. Disponvel em < http://www.cs.berkeley.edu/~demmel/cs267_Spr99/ Lectures/Lect_23_1999.pdf > Acesso em maro de 2007. DONEA, J. A. Taylor-Galerkin for convective transport problems. International Journal for Numerical Methods in Engineering. v.20, p. 101119. 1984. DONEA, J., HUERTA, , PONTHOT, J. Ph., RODRGUEZ-FERRAN, A. Arbitrary LagrangianEulerian Methods. In: Encyclopedia of Computational Mechanics, Edited by Erwin Stein, Rene de Borst and Thomas J.R. Hughes. Volume 1: Fundamentals. 2004 John Wiley & Sons, Ltd. ISBN: 0-470-84699-2. Chapter 14. Disponvel em < http://www.wiley.co.uk/ecm/pdfs/Volume_1_Chapter_14.pdf > Acessado em maro de 2008. DORNELES, R. V. Particionamento de Domnio e Balanceamento de Cargo no modelo HIDRA. Porto Alegre, RS. 2003, 136p. Tese (Doutorado). Programa de Ps-Graduao em Computao. Universidade Federal do Rio Grande do Sul. DUARTE FILHO, L. A. Anlise Esttica e dinmica, linear e no-linear geomtrica, atravs de elementos hexadricos de oito ns com um ponto de integrao. Porto Alegre, RS. 2002, 111p. Dissertao (Mestrado). Programa de Ps-Graduao em Engenharia Civil. Universidade Federal do Rio Grande do Sul. ELGELMAM, M.; SANI, R. L.; GRESHO, P. M.; BERCOVIER, M. Consistent vs. Reduced Integration Penalty Methods for Imcompressible media using general old ans new elements. J. Numer. Methods in Fluids, v. 2, p. 25-42. 1982. ELIAS, R.; MARTINS, M. E.; COUTINHO, A. Paralelismo de Programas com Malhas no estruturadas. Ncleo de Atendimento em Computao de Alto Desempenho (NACAD), UFRJ. Disponvel em < http://arquivosevt.lncc.br/pdfs/M15.pdf> Acesso em julho de 2008. FRSTER, C.; WALL, W. A.; RAMM, E. Artificial added mass instabilities in sequential staggered coupling of nonlinear structures and incompressible viscous flows. Computer Methods in Applied Mechanics and Engineering. v. 196, p. 1278-1293. 2007. FOX, G. C., WILLIAMS, R. D.; MESSINA, P.C. Parallel Computing Works [S.I.], Morgan Kaufmann Publishers, San Francisco, USA, 1994. ISBN 1-55860-253-4. 977p. GONZLEZ, L.A.S. Anlise de escoamentos de fludos quase incompressveis e das vibraes induzidas em objetos imersos. Porto Alegre, RS. 1993.. Dissertao (Mestrado). Programa de Ps-Graduao em Engenharia Civil. Universidade Federal do Rio Grande do Sul.
Paralelizao de cdigos de elementos finitos

238

GRECHO, P. M.; CHAN, S. T.; LEE, R. L.; UPSON, G. D. A modfied finite element method for solving the time dependent, imcompressible..Navier-Stokes Equations. PartI: Theory. International Journal for Numerical Methods in Fluides. v.4, p. 557598. 1984 GRECHO, P.M. e SANI, R.L. Incompressible flow and the finite element method. Sussex, UK: John Wuiley & Sons Ltd., 1999 GUSTAFSON, J. Reevaluating Amdahls Law. Communications of the ACM. v.31, issue 5, p. 532-533. May, 1988. HENDRICKSON, B. DEVINE, K. Dynamic load balancing in computational mechanics, Comp. Meth. Applied Mechanics & Engineering , v.184(2-4), p. 485-500. 2000. HENDRIKSON, B.; LELAND, R. An improved spectral graph partitionaing algorithm for mapping parallel computations. SIAM Journal Scientific Computing. v. 16, n. 2, p. 452469. 1995. HENDRIKSON, B.; LELAND, R. Chaco: software for partitioning graphs. Disponvel em < http://www.cs.sandia.gov/~bahendr/chaco.html > Acesso em junho de 2008. HINTON, E.E.; OWEN, D.R.J. Finite Element Programming. Academic Press, London, 1977. 305p. HOIT, M., WILSON, F. L. An equation numbering algorithm based on a minimum FRONT criteria. International Journal for Numerical Methods in Engineering. v.16, p. 225-239. 1983. HOOKER, J. R.; BATINA; J. T.; WILLIAMS, M. H. Spatial and temporal adaptive procedures for the unsteady aerodynamic analysis of airfoils using unstructured meshes. Technical Memorandum TM-107635, NASA, 1992. HUGHES, J. R.; FERENCZ, R. M. Large-scale vectorized implicit calculation in solid mechanics on a CRAY X-MP/48 utilizing EBE preconditioned conjugate gradients. Computer Methods in Applied Mecghanics and Engineering. v. 61, p. 215-248. 1987. HUGHES, T. J. R.; LIU, W. K. Implicit-explicit Finite Element in Transient Analysis: Stability Theory. Journal of Applied. Mechanics. v. 45, p. 371-374. 1978. HUGHES, T. J. R.; TEZDUYAR, T. E. Finite element methods for first-order hyperbolic systems with particular emphasis on the compressible Euler equations. Computer Methods in Applied Mechanics and Engineering. v. 45, p. 217284. 1984. INTEL Processadores para servidor Intel. Disponvel em < http://www.intel.com/portugues/products/server/processors/index.htm > Acesso em dezembro de 2008. Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

239

IRONS, B.M. A frontal solution scheme for finite element analysis. International Journal for Numerical Methods in Engineering. v. 2, n.1, p. 5-32. 1970. JERNELL, L. S. Comparisons of theoretical and experimental pressure distributions over a wing-body model at high supersonic speeds. TN D-6480, NASA, 1971. KALLINDERIS, Y.; VIJAYAN, P. Adaptive refinement-coarsening scheme for threedimensional unstructured meshes. AIAA Journal. v. 38, p. 1440-1447. 1993. KARP, A. H.; FLATT, H. P. Measuring Parallel Processor Performance, Communications of the ACM. v. 33, n. 5, p. 539-543. May 1990. KARYPIS LAB. Metis Serial graph partitioning and fill-reducing matrix ordering. Disponvel em < http://glaros.dtc.umn.edu/gkhome/metis/metis/overview >. Acesso em novembro de 2008. KARYPIS, G., KUMAR, V. METIS Family of multilevel partitioning algorithms. Disponvel em < http://glaros.dtc.umn.edu/gkhome/views/metis > Acesso em junho de 2008. KAWAHARA, M.; HIRANO, H. A Finite Element Method for High Reynolds Number Viscous Fluid Flow Using Two Step Explicit Scheme. International Journal of Numerical Methods in Fluids. v.3, p.137-163. 1983 KESSLER, M.P. Simulao numrica de escoamentos hipersnicos em no-equilbrio termo-qumico atravs do mtodo dos elementos finitos. Porto Alegre, RS. 2002, 122p. Tese (Doutorado). Programa de Ps-Graduao em Engenharia Mecnica. Universidade Federal do Rio Grande do Sul. KWAK, D., KIRIS, C., KIM, C.S. Computational challenges of viscous imcompressible flows, Computer & Fluids, v. 34, p.283-299. 2005. KWOK, K.; LAM, F.; HAMDI, M.; PAN, Y.; HUI, C. Application-Specific Load Balancing on Heterogeneous Systems. In: Buyya, R. (Ed.). High performance Cluster Computing. Vol. 2 Programming and Applications. New Jersey, USA: Prentice Hall, p.350-374. 1999. LHNER, R. Applied computational fluid dynamics techniques. an introduction based on finite element methods. John Wiley & Sons Ltd., England, 2001. 366p. LHNER, R.; MORGAN, K.; ZIENKIEWICZ, O. C. The Solution of Non-linear Hyperbolic Equation Systems by the Finite Element Method. International Journal for Numerical Methods in Fluids. v. 4, p. 1043-1063. 1984. MAURITS, N. M.; VAN DER VEM, H.; VELDMAN, A. E. P. Explicit multi-time stepping for convection-dominated flow problems. Computational Methods in Applied Mechanics and Engineering. v. 157, p. 133-150. 1998.
Paralelizao de cdigos de elementos finitos

240

MURARO JR., A.; PRETO, A. J.; STEPHANY, S.; PASSARO, A.; LIMA, O.F.; ABE, N.M.; TANAKA, R.Y. Implementao Paralela do Mtodo dos Gradientes Conjugados para Soluo de Sistemas Esparsos de Equaes Lineares. Disponvel em< http://hermes2.dpi.inpe.br:1905/archive.cgi/lac.inpe.br/worcap/2004/10.05.16.08> Acesso em: setembro de 2008. OLIVEIRA JR., J. A. A. Desenvolvimento de um sistema de dinmica dos fludos computacional empregando o mtodo de elementos finitos e tcnicas de ato desempenho. Porto Alegre, RS. 2006, 99p. Dissertao (Mestrado). Programa de Ps-Graduao em Engenharia Mecnica. Universidade Federal do Rio Grande do Sul. OPENMP Arquitechture Review Board.. The OpenMP API specification for parallel programming. Disponvel em < http://openmp.org/wp/ > . Acesso em maro de 2008. PELLEGRINI, F. A parallelisable multi-level banded diffusion scheme for computing balanced partitions with smooth boundaries. EuroPar, Rennes. Spring Verlag, publicado em LNCS series, LNCS 4641, pp 191-200. Ago 2007. PELLEGRINI, F. Scotch & PT-Scotch: Software package and libraries for sequential and parallel graph partitioning, static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning. Disponvel em < http://www.labri.ubordeaux.fr/perso/pelegrin/scotch/ > Acessado em junho de 2008. PETRY, A. P. Anlise numrica de escoamentos turbulentos tridimensionais empregando o mtodo dos elementos finitos e simulao de grandes escalas. Porto Alegre, RS. 2002, 135p. Tese (Doutorado). Programa de Ps-Graduao em Engenharia Mecnica. Universidade Federal do Rio Grande do Sul. PETRY, A.P. Anlise numrica de interao fludo-estrutura atravs do mtodo dos elementos finitos. Porto Alegre, RS. 1993.. Dissertao (Mestrado). Programa de PsGraduao em Engenharia Civil. Universidade Federal do Rio Grande do Sul. PEZZI, G.P. Escalonamento Work-Stealing de programas Diviso-e-Conquista com MPI2. Porto Alegre, RS. 2006, 69p. Dissertao (Mestrado). Programa de Ps-Graduao em Computao. Universidade Federal do Rio Grande do Sul. PHON, K.K., TOH, K.C., CHAN, S.H. e LEE, F.H. An efficient diagonal preconditioner for finite element solution of Biots consolidation equations. International Journal for Numerical Methods in Engineering, v. 55, p. 377-400. 2002 POPIOLEK; T.L.; AWRUCH, A.M. Numerical Simulation of Incompressible Flows using Adaptive Unstructured Meshes and the Pseudo-compressibility Hypothesis. Advances in Engineering Software. v. 37, p. 260-274. 2006.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

241

PREISS, R., DIEKMANN, R. PARTY partitioning library. Disponvel em < http://wwwcs.uni-paderborn.de/fachbereich/AG/monien/RESEARCH/PART/party.html > Acesso em junho de 2008. REDDY, J.N. e GARTLING, D.K. The finite element method in the heat transfer and fluid dynamics. Boca Raton: CRC Press, 1994. SAAD, Y. Iterative methods for sparse linear systems, PWS Publishing Company, 20 Park Plaza Boston, MA 02116. 1996 SAAD, Y.; VANDERVORST, H. A. Iterative solution of linear systems in the 20th century, J. Computational and Applied Mathematics v.122: p.133. 2000 SGI. SGI NUMAlink interconnect fabric.. Disponvel em < http://openmp.org/wp/ > . Acesso em abril de 2008. SHEWCHUK, J.R. An introdution to the conjugate gradient method without the agonizing pain. Disponvel em < http://reference.kfupm.edu.sa/content/i/n/ an_introduction_to_the_ conjugate_gradien_55475.pdf >. Acessado em maio de 2004. SHULTZ, S.L. 1997. Elementos Finitos Tri-Lineares com Integrao reduzida e controle de modos esprios na Anlise Linear de Placas e Cascas. Porto Alegre, RS. 1997. Dissertao (Mestrado). Programa de Ps-Graduao em Engenharia Mecnica. Universidade Federal do Rio Grande do Sul. SILVESTER, P. P.; AUDA, H.A. A memory economic frontwidth reduction algorithm. International Journal for Numerical Methods in Engineering. v. 20, p. 733-743. 1984. TEIXEIRA, F. G. Sistema de Reordenao Nodal para Solues Tipo Banda. Porto Alegre, RS. 1991, 98p. Dissertao (Mestrado). Programa de Ps-Graduao em Engenharia Civil. Universidade Federal do Rio Grande do Sul. TEIXEIRA, P. R. F.; AWRUCH, A. M. Three-dimensional Simulation of High Compressible Flows using a Multi-time-step Integration Technique with Sub-cycles. Applied Mathematical Modeling. v. 25, p. 613-627. 2001. TEIXEIRA, P.R.F. Simulao numrica de escoamentos tridimensionais de fludos compressveis e incompressveis e estruturas deformveis usando o mtodo dos elementos finitos. Porto Alegre, RS. 2001, 237p. Tese (Doutorado). Programa de PsGraduao em Engenharia Civil. Universidade Federal do Rio Grande do Sul. TOP500. Lists November 2008. Disponvel em < http://www.top500.org/lists/2008/11 > Acesso em: dezembro de 2008. TURKEL, E., RADESPIEL, R., KROLL, N. Assement of preconditioning methods for multidimensional aerodynamics, Computer & Fluids, v. 26(6), p. 613-634. 1997.
Paralelizao de cdigos de elementos finitos

242

VAN DER VEM, H.; NIEMANN-TUITMAN, B. E.; VELDMAN, A. E. P. An explicit multitime-stepping algorithm for aerodynamic flows. Journal of Computational and Applied Mathematics. v. 82, p. 423-431. 1997. VANDERVORST, H. A. (2000). Krylov subspace iteration, Computing in Science and Engineering. v. 2, p. 3237. 2000. WACKERS, J.; KOREN, B. A simple and efficient space-time adaptive grid technique for unsteady compressible flows. In: 16th AIAA COMPUTATIONAL FLUID DYNAMICS CONFERENCE. 2003. Proceedings.. AIAA-paper 2003-3825, USA. WALSHAW,C., CROSS, M. JOSTLE graph partitioning software. Disponvel em < http://staffweb.cms.gre.ac.uk/~c.walshaw/jostle/ > Acesso em junho de 2008. WILKINSON, B.; ALLEN, M. Parallel Programing: Techniques and Applications Using Networked Workstations and Parallel Computers. ISBN 0136717101, 1st Ed., Prentice Hall, Upper Saddle River, N.J. 1999. 467p. WU, X., GOLUB, G.H., CUMINATO, J.A., YUAN, J.Y. Symmetric-triangular decomposition and its applications Part II: preconditioners for indefinite systems. BIT Numerical Mathematics, 2008, 48: 139-162. XAVIER, C. M. Anlise de Modelos Submalha em Elementos Finitos. Porto Alegre, RS. 2008, 92p. Dissertao (Mestrado). Programa de Ps-Graduao em Engenharia Mecnica. Universidade Federal do Rio Grande do Sul. ZIENCKIEWICZ, O.C., TAYLOR, R.L. e NITHIARASU, P., The finite element method for fluid dynamics. Oxford: Elsevier Butterworth-Heinemann, 6 ed., 2005.

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

243

A1 OTIMIZAO DE CDIGOS FORTRAN VISANDO MAIOR VELOCIDADE DE EXECUO


Uma srie de cuidados na implementao de um algoritmo podem ser tomados de modo a se obter maiores velocidades de processamento em cdigos seqenciais (executados por um nico processador), e que vantajoso tambm para implementaes paralelas, uma vez que cada processador lgico envolvido pode executar mais rapidamente a tarefa a ele alocada. Alguns desses cuidados esto descritos a seguir, e, apesar de estarem voltados especificamente para implementao de cdigos em FORTRAN, podem ser aproveitados para implementaes em outras linguagens com algumas adaptaes.

A1.1 ESCOLHA DO COMPILADOR


A grande maioria dos processadores disponveis para microcomputadores pessoais, freqentemente utilizados para processamento cientfico em instituies de ensino e pesquisa, so capazes de processar o conjunto de instrues x86 da arquitetura IA-32 de 32 bits, estabelecido pela Intel a partir do processador 80386. Isso permite que um mesmo cdigo possa ser executado em qualquer processador posterior ao 80386, seja ele da Intel ou de outro fabricante, como AMD e VIA. Dessa forma, no so necessrias verses especficas de programas comerciais ou sistemas operacionais para cada gerao de processador de cada fabricante. Contudo, a evoluo dos processadores desde o 80386 tm se caracterizado por no se limitar a um simples aumento de freqncia de operao em cada famlia de processadores, modificando tambm a tecnologia empregada, sempre visando um maior desempenho. Assim, a quantidade de memria cache, o nmero de unidades de processamento de ponto flutuante (FPU) e unidades aritmticas e lgicas (ALU) tem aumentado, arquitetura interna tem se modificado, e instrues novas tem sido adicionadas ao conjunto x86 para acelerar o processamento de aplicaes multimdia (MMX da Intel, 3DNow!, 3DNow!+ da AMD), para
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

244

permitir o processamento de mltiplos dados com uma nica instruo (SIMD como as instrues SSE, SSE2,SSE3 da Intel) e para o processamento tambm em ambiente de 64 bits (EMT64 da Intel, x86-64 ou AMD64 da AMD). Essas extenses visam otimizar o desempenho do processador para as aplicaes mais comuns, que vo se alterando com o passar do tempo. Alguns processadores so otimizados inteiramente para essas instrues adicionais, como por exemplo o Intel Pentium IV, otimizado para a execuo de instrues SSE2 ao invs de x86. Em operaes de ponto flutuante, um Pentium IV conseguia, usando apenas instrues x86, metade do desempenho obtido com uso de SSE2. Para que o cdigo gerado por um compilador seja rpido, preciso que o compilador esteja otimizado para a arquitetura de cada processador, e das extenses (MMX, SSE, 3DNow!, etc) por eles suportadas. H perda de generalidade do cdigo, uma vez que um dado processador pode no ser capaz de executar um cdigo otimizado para uma arquitetura diferente da sua ao no suportar as extenses dessa arquitetura, mas por outro lado h ganhos significativos no desempenho quando se sabe em qual arquitetura de processadores ser utilizado o cdigo. Pata exemplificar a importncia do compilador, o cdigo de anlise esttica elstica linear com solver utilizando o Mtodo dos Gradientes Conjugados foi utilizado para fazer uma anlise de Elementos Finitos de um problema de flexo de placa grossa. A mesma geometria foi discretizada atravs de malhas com elementos cada vez menores, resultando em um nmero crescente de elementos e equaes no sistema. O cdigo foi compilado com o compilador Compaq Visual Fortran verso 6.0, que contava com otimizaes apenas at a extenses SSE para arquitetura Intel Pentium III, e com a verso 6.6a, que disponibilizava otimizaes para os processadores AMD Athlon e Intel Pentium IV. A evoluo do tempo de processamento com o tamanho do problema (nmero de equaes resultantes do tamanho da malha utilizado) est mostrada nas figuras A1.1 para (a) um Intel Pentium III de 1GHz com memria SDR, (b) um Intel Pentium IV Willamettede 1,4 GHz com memria RAMBUS, (c) um AMD Athlon Thunderbird de 1,33 GHz com memria SDR e (d) um AMD Athlon Pluto de 0,9 GHz com memria SDR. Como esperado, os maiores ganhos de velocidade de processamento foram obtidos nos processadores para cuja arquitetura a verso 6.0 no estava otimizada. Contudo, mesmo o Intel Pentium III, cuja arquitetura j era contemplada pela verso 6.0, teve ganho de

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

245

desempenho com a verso 6.6a, indicando que o compilador como um todo foi melhorado entre essas verses.

(a)

(b)

(c)

(d)

Figura A1.1: Diferenas nos tempos de processamento para um mesmo cdigo compilado pelas verses 6.0 e 6.6a do compilador Compaq Visual Fortran para (a) Pentium III 1GHz, (b) Pentium IV 1,4 GHz, (c) Athlon 1,33 GHz e (d) Athlon 0,9 GHz.

Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

246

Como uma regra geral, as verses mais recentes dos compiladores so as que oferecem o melhor desempenho para as arquiteturas de processadores mais recentes. Contudo, nem todos os compiladores so otimizados para todas as arquiteturas, e nem todas as implementaes podem fazer uso das extenses das instrues x86, exigindo modificaes na filosofia de programao empregada. Somente o teste permite determinar com certeza o melhor compilador / verso para cada aplicao.

A1.2 DIMENSIONAMENTO DE MATRIZES E USO DO CACHE


Em vetores multi-dimensionais (matrizes) com acesso no-seqencial na memria, deve-se evitar dimenses que sejam mltiplos de potncias de 2, tais como 16, 32, 64, 128, 256, 512, em especial na dimenso mais esquerda. Essa situao tende a forar um evento conhecido como erro do cache (cache miss), e deriva do fato do tamanho do cache do processador ser uma potncia de 2, fazendo com que elementos de vetores cujas dimenses so tambm potncias de 2 (ou mltiplos de potncias de 2), acessados de forma no contgua (acesso seqencial de elementos que no estejam em reas contguas da memria) tornam o uso do cache ineficiente. Considere-se um processador imaginrio que disponha de uma memria cache de 8 posies (0 a 7) com mapeamento direto, ou seja, uma dada posio da memria principal vai ocupar a posio no cache dada pelo resto da diviso inteira por 8 (o tamanho do cache). Se forem feitas operaes com acesso seqencial memria, as primeiras 8 posies da memria (0 a 7) ocuparo as 8 posies do cache, e, a partir das 8 seguintes, (8 a 15) as posies do cache devero ser desocupadas para que os novos dados ocupem seu lugar. Se as operaes envolverem os dados das posies 0 a 7 da memria principal, esses dados sero trazidos da memria principal (mais lenta) para o cache (mais rpido) e sero processadas com grande velocidade. Se as operaes envolverem somente os dados que ocupam as posies (8 a 15) ou (16 a 23), etc, o mesmo acontece. Se as operaes envolverem os dados que ocupam as posies (0; 9; 66; 35; 20;53,38,95) da memria principal, tambm sero realizadas com grande velocidade, pois essas posies so mapeadas para posies diferentes no cache, sendo acessadas apenas a primeira vez na memria principal, e seguintes no cache. Contudo, se os dados a serem processados ocupam na memria principal as posies (0; 8; 16; 24; 32; 40; 48; 56) ou ento (3; 19; 11; 59; 43; 27; 35; 51), o processamento ser lento, pois as posies da
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

247

memria principal de cada conjunto so mapeadas pela mesma posio do cache (0 no primeiro conjunto, 3 no segundo). Dessa forma,para o primeiro conjunto, ao ser necessrio o dado que est na posio 0 da memria principal, o mesmo trazido para a posio 0 do cache. Ao ser necessrio o segundo dado, na posio 8, ele ser colocada na mesma posio 0 do cache. Se o primeiro dado for novamente necessrio, ele dever ser buscado na memria principal mais uma vez, pois no se encontra mais no cache, tornando o processo bastante mais lento. Matrizes com a primeira dimenso mltipla de uma potncia de 2, com armazenamento por coluna (como o padro do FORTRAN) fazem com que dados sendo acessados seqencialmente na segunda dimenso estejam separados entre si na memria principal de tal forma que h grande probabilidade dos mesmos serem mapeados nas mesmas posies do cache, forando o acesso repetido memria principal e causando perda na velocidade de processamento. Apesar da maioria dos processadores modernos usarem um cache associativo por grupos ao invs de um cache de mapeamento direto para minimizar o problema, quando so empregadas matrizes com um nmero muito grande de elementos o problema persiste. A degradao da performance tanto maior quanto maior a potncia de 2 da qual a dimenso do vetor mltipla. Isso vale tanto para alocao dinmica de vetores quanto alocao esttica (dimensionamento fixo). Arranjos bidimensionais que so implementados como vetores unidimensionais podem apresentar o mesmo problema se o passo de acesso s posies empregado for tambm mltiplo de potncia de 2. Uma forma simples e prtica de contornar o problema aumentar as dimenses das matrizes em alguns elementos, tornando-as no mltiplas de potncias de 2. Para alocao dinmica de vetores, uma abordagem eficiente sempre dimensionar os vetores com nmero impar de posies. Para exemplificar essa problema, a Figura A1.2 mostra resultados de tempo de soluo do cdigo empregado anteriormente. Vrios vetores eram dependentes do nmero de elementos da malha, e as malhas utilizadas eram prismticas tridimensionais com dimenses (20 x 20 x 4), (40 x 40 x 8), em elementos, gerando matrizes com dimenses mltiplas de potncias de 2. O sufixo"L" indica dimensionamento livre do vetores e matrizes, ou seja, aquele exigido pelos dados do problema, e portanto passvel de ser mltiplo de 2n, e o "i" indica uso somente de vetores com dimenses de tamanho mpar. Dois processadores foram utilizados: um Intel Pentium III de 1GHz com 32 Kbytes de cache L1256 Kbytes de cache L2 (i1000S) e um
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

248

AMD Duron de 1,2 GHz com 128 Kbytes de cache L1 e 64 Kbytes de cache L2 (D1200S), ambos com memria SDR. Para cada tamanho de problema (nmero de equaes) os vetores e matrizes dependentes do nmero de elementos tinham dimenses com um nmero de posies que era mltiplo da potncia de 2 indicada sobre as curvas.

Figura A1.2: Diferenas nos tempos de processamento para um mesmo cdigo com matrizes e vetores com dimenses com um nmero de posies mltiplas de potncias de 2 (L) e com um nmero mpar de posies (i). Percebe-se que para os dois computadores utilizados (D1200S e i1000S), problemas com nmero de elementos (e, conseqentemente, a dimenso da maior parte das matrizes e vetores) mltiplo de potncias de 2 de alta ordem (64 ou 256) fazem com que o tempo de processamento seja muito grande, chegando a superar o tempo de processamento de problemas maiores mas com dimenses dos vetores mltiplos de potncias de 2 de baixa ordem (O processador D1200S levou 477 segundos para resolver 45000 equaes, e 260 segundos para 64000 equaes). O uso de vetores cujas dimenses tem um nmero impar de posies resolveu completamente o problema. Percebe-se que o tipo e tamanho do cache do processador tm influncia sofre o efeito adverso dos tamanhos das dimenses dos vetores. O D1200S, que tem 192 Kbytes de cache total e cache L2 de apenas 64 Kbytes, apresentou maior perda de desempenho (3 vezes) que o Pentium III, que possui cache L1 de 32 Kbytes e L2 de 256 Kbytes (2 vezes).

Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

249

A1.3 ACESSANDO MATRIZES DE FORMA EFICIENTE


O FORTRAN armazena os elementos de vetores muti-dimensionais (matrizes) em espaos contguos da memria por colunas (ao contrrio do C e da intuio geral de utilizar armazenamento por linha). Isso significa que em um matriz A(10,10), os elementos so armazenados da seguinte forma: A(1,1)...A(10,1), A(1,2)...A(10,2), ...A(1,i)...A(10,i), ...A(1,10)...A(10,10) Assim, a forma de acesso aos elementos ao se usar estruturas de laos deve respeitar essa ordem de armazenamento, uma vez que o acesso a dados armazenados em regies prximas da memria feito com velocidade consideravelmente maior que a dados armazenados em posies muito distantes. O cdigo abaixo
INTEGER X(3,5), Y(3,5), I, J Y = 0 DO I=1,3 ! lao externo I varia lentamente DO J=1,5 ! lao interno J varia rapidamente X (I,J) = Y(I,J) + 1 ! Elemento das matrizes sendo acessados END DO ! seqencialmente em linha END DO . END PROGRAM

altamente ineficiente, pois acessa os elementos das matrizes por linha e no por coluna. O lao mais interno corresponde dimenso mais direita, quando, para obter o maior desempenho, os laos mais internos devem corresponder dimenso mais esquerda, a assim sucessivamente em um vetor multi-dimensional. O mesmo cdigo, alterado para mximo desempenho, ficaria
INTEGER X(3,5), Y(3,5), I, J Y = 0 DO J=1,5 ! lao externo J varia lentamente DO I=1,3 ! lao interno I varia rapidamente X (I,J) = Y(I,J) + 1 ! Elemento das matrizes sendo acessados END DO ! seqencialmente em coluna END DO . END PROGRAM

O cuidado na forma como os elementos de vetores multi-dimensionais devem ser acessados aplicado no cdigo dos exemplos anteriores (o qual acessava as matrizes por linha) levou aos ganhos de desempenho mostrados na Figura A1.3, onde o sufixo 6.6A refere-se verso do
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

250

compilador (Compaq Visual Fortran 6.6A ) e "Loop" indica a verso do cdigo no qual a ordem dos laos foi alterada para que os acessos s matrizes ocorressem por coluna. O Ganho no desempenho de todas mquinas foi, em mdia, de 170%. Os processadores empregados foram: T1400S: AMD Athlon Thunderbird 1.4 GHz memria SDR T1470D: AMD Athlon Thunderbird 1.47 GHz memria DDR T1333S: AMD Athlon Thunderbird 1.33 GHz memria SDR T1333D: AMD Athlon Thunderbird 1.33 GHz memria DDR i1000S: intel Pentium III 1.0 GHz memria SDR

Figura A1.3: Diferenas nos tempos de processamento para um mesmo cdigo com matrizes sendo acessadas de forma otimizada e no otimizada.

A1.4 USO CONJUNTO DAS TCNICAS DE OTIMIZAO


O uso conjunto das tcnicas de otimizao descritas anteriormente levam a um ganho significativo na velocidade de processamento de um mesmo cdigo. O algoritmo de soluo empregado no alterado, apenas a forma de implementao. As figuras A1.3 e A1.4 mostram, para os processadores AMD Athlon Thunderbird 1,33GHz e Intel Pentium III 1,0 GHz, respectivamente, os tempos de soluo para o programa original
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

251

compilado com a verso 6.0 do compilador Compaq Visual Fortran (indicado por 6.0), com o uso de matrizes com dimenses de tamanho mpar (6.0 mpar), com o uso de um compilador otimizado para a arquitetura do processador, no caso a verso 6.6a do mesmo compilador (6.6a) e com o acesso s matrizes sendo feito com ordem dos laos respeitando a forma de armazenamento (6.6a Loop).

Figura A1.4: Diferenas nos tempos de processamento para um mesmo cdigo com diferentes graus de otimizao, processador AMD Athlon 1,33 GHz.

Figura A1.5: Diferenas nos tempos de processamento para um mesmo cdigo com diferentes graus de otimizao, processador Intel Pentium III 1,0 GHz.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

252

Cada etapa de otimizao inclui as anteriores, de modo que nas curvas designadas por (6.6a Loop) todas as otimizaes foram empregadas. Os ganhos obtidos em velocidade de processamento foram significativos. Para o melhor dos casos, o problema com 145000 equaes, o cdigo final otimizado foi executado 22 vezes mais rpido que o cdigo original no AMD Athlon, e 6 vezes no Intel Pentium III.

A1.5 ALOCAO DE VETORES E MATRIZES


Considerando unicamente o desempenho, a forma mais eficiente de se trabalhar em Fortran com vetores e matrizes utilizando o dimensionamento esttico, no qual o cdigo do programa contm a informao do tamanho a ser utilizado em cada vetor. A desvantagem dessa abordagem a necessidade da compilao de uma verso do cdigo para cada conjunto de dados a ser processado. Em uma implementao paralela, na qual a quantidade de dados alocada a cada processador depende do nmero de processadores utilizado, o dimensionamento esttico pode exigir um nmero muito grande de verses executveis do mesmo cdigo. Uma forma de contornar esse problema dimensionar os vetores com um nmero bastante grande de posies (Esttico Maj), de forma a ser compatvel com um maior nmero de conjuntos de dados. Essa abordagem deve ser utilizada com cuidado para no esgotar os recursos de memria (real e virtual) e, em problemas pequenos, pode ser altamente ineficiente quando comparado a um dimensionamento com o tamanho necessrio e suficiente dos vetores. O uso dos comandos ALLOCATE para dimensionamentos dinmicos em Fortran gera cdigos executveis mais lentos para problemas grandes quando comparado ao dimensionamento esttico. O uso da funo DEALLOCATE para liberar memria de vetores que no mais so utilizados melhora o desempenho, mas no aos nveis do dimensionamento esttico. Uma soluo de compromisso o dimensionamento esttico de um nico vetor inteiro e um real no limite da memria real do computador e o uso de ponteiros para mapear a posio dos diversos vetores necessrios dentro desses vetores estticos (Ponteiros). Isso pode ser programado, criando-se variveis inteiras que so os ponteiros para a posio de cada vetor
Joo Ricardo Masuero joao.masuero@ufrgs.br Tese de Doutorado PPGEC / UFRGS 2009

253

(com srios prejuzos inteligibilidade do cdigo), ou utilizando-se o comando POINTER, que permite mapear um vetor (de nome qualquer) em outro, o que torna mais claro o cdigo uma vez que se pode utilizar um nome diferente para cada vetor do programa, de tamanho dinmico, utilizando os dados contidos no vetor de dimensionamento esttico mapeado. Contudo, essa tcnica impe a limitao de que todos os dados devam ser organizados em arranjos unidimensionais (vetores), uma vez que os mesmos so ponteiros de vetores unidimensionais. A figura A1.6 mostra os tempos de processamento por iterao para o programa de anlise de fludos compressveis utilizando elementos finitos tridimensionais hexadricos com um ponto de integrao empregados nos exemplos desta tese. Percebe-se que, a medida que o tamanho do problema se torna maior, o dimensionamento esttico (Esttico e Esttico Maj) se torna a opo mais vantajosa em desempenho, o dimensionamento dinmico (ALLOCATE e ALLOC+DEALLOC) a mais desvantajosa, e o uso de ponteiros (Ponteiros e POINTER) um meio termo.

Figura A1.6: Diferenas nos tempos de processamento para um mesmo cdigo com diferentes formas de dimensionamento de vetores e matrizes.
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos

Livros Grtis
( http://www.livrosgratis.com.br ) Milhares de Livros para Download: Baixar livros de Administrao Baixar livros de Agronomia Baixar livros de Arquitetura Baixar livros de Artes Baixar livros de Astronomia Baixar livros de Biologia Geral Baixar livros de Cincia da Computao Baixar livros de Cincia da Informao Baixar livros de Cincia Poltica Baixar livros de Cincias da Sade Baixar livros de Comunicao Baixar livros do Conselho Nacional de Educao - CNE Baixar livros de Defesa civil Baixar livros de Direito Baixar livros de Direitos humanos Baixar livros de Economia Baixar livros de Economia Domstica Baixar livros de Educao Baixar livros de Educao - Trnsito Baixar livros de Educao Fsica Baixar livros de Engenharia Aeroespacial Baixar livros de Farmcia Baixar livros de Filosofia Baixar livros de Fsica Baixar livros de Geocincias Baixar livros de Geografia Baixar livros de Histria Baixar livros de Lnguas

Baixar livros de Literatura Baixar livros de Literatura de Cordel Baixar livros de Literatura Infantil Baixar livros de Matemtica Baixar livros de Medicina Baixar livros de Medicina Veterinria Baixar livros de Meio Ambiente Baixar livros de Meteorologia Baixar Monografias e TCC Baixar livros Multidisciplinar Baixar livros de Msica Baixar livros de Psicologia Baixar livros de Qumica Baixar livros de Sade Coletiva Baixar livros de Servio Social Baixar livros de Sociologia Baixar livros de Teologia Baixar livros de Trabalho Baixar livros de Turismo

Você também pode gostar