Escolar Documentos
Profissional Documentos
Cultura Documentos
COMPUTAO PARALELA NA ANLISE DE PROBLEMAS DE ENGENHARIA UTILIZANDO O MTODO DOS ELEMENTOS FINITOS
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
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)
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)
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
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
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
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
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
: massa especfica ............................................................................................................... 113 ij : componentes do tensor de tenses viscosas ..................................................................... 113 ij : funo delta de Kronecker ............................................................................................... 113
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.
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).
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.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
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)
Ep =
vrp
v
i =1
(1.5)
i r
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
(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)
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
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.
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.
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.
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..
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
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.
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
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).
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).
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
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
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)
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.
55
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
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.
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:
(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.
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
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
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).
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
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
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
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
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
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
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
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).
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
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
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.
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).
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:
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:
81
Redundncia =
(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:
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.
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ns Elementos
10
11
12
13
14
15
16
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:
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.
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.
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
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)
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:
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:
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ns Elementos
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
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,6 0,3
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:
Computao paralela na anlise de problemas de engenharia utilizando o Mtodo dos Elementos Finitos
96
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.
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
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.
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 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.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
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;
111
Ei
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 Ni
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
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
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
(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.
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
(4.2)
onde o smbolo
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.
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: