ISSN 1809-5860 DESENVOLVIMENTO E IMPLEMENTAÇÃO DE UM MÉTODO DE ELEMENTOS FINITOS PARALELO PARA ANÁLISE NÃO LINEAR DE ESTRUTURAS Célia Leiko Ogawa Kawabata 1, Wilson Sergio Venturini 2 & Humberto Breves Coda 3 Resumo Este projeto de pesquisa se insere no contexto de desenvolvimento de formulações numéricas para problemas de engenharia de estruturas que os pesquisadores Wilson S. Venturini e Humberto B. Coda vêm desenvolvendo no Departamento de Engenharia de Estruturas da EESC. Nesse projeto foi paralelizado um algoritmo que utiliza o método de elementos finitos. Utilizou-se MPI e os testes foram feitos em um cluster com 12 nós de processamento. Obteve-se bom desempenho nesse algoritmo e agora se pretende paralelizar o método de elementos de contorno e disseminar aos demais membros do grupo a utilização de computação paralela. Palavras-chave: Sistemas distribuídos. Programação paralela. Método dos Elementos Finitos. Ambiente de passagem de mensagem. DEVELOPMENT OF A PARALLEL SOFTWARE FOR A DYNAMICAL NON- LINEAR GEOMETRICAL ANALYSIS OF STRUCTURES Abstract This research project deals with the development and implementation of numerical formulations for structural engineering problems that the researches Wilson S. Venturini and Humberto B. Coda have been developing in the Structural Engineering Department of EESC. The parallelized algorithm uses the finite element method. The message passing interface adopted is MPI and tests were carried out in a 12 nodes cluster. We achieved good performance and then we intend to parallelize the boundary element method and spread the parallel computing to the others members of the group. Keywords: Distributed systems. Parallel programming. Finite Elements Method. Message passing environment. Linha de Pesquisa: Métodos Numéricos 1 INTRODUÇÃO A utilização de programas paralelos é um caminho natural para aproveitar melhor o potencial dos computadores modernos que possuem múltiplos processadores. A adaptação de programas seqüenciais à metodologia paralela necessita de diversas etapas e sua dificuldade é afetada por diversos fatores. A versatilidade na geração de dados e a facilidade da análise dos resultados, que permite o contínuo aprimoramento dos modelos mecânicos inseridos no sistema aliada ao esgotamento do ambiente seqüencial demonstra a necessidade de recorrer a técnicas computacionais mais eficientes. 1 Pós-doutoranda em Engenharia de Estruturas - EESC-USP, celiak@gmail.com 2 Professor do Departamento de Engenharia de Estruturas da EESC-USP, venturin@sc.usp.br 3 Professor do Departamento de Engenharia de Estruturas da EESC-USP, hbcoda@sc.usp.br
152 Célia Leiko Ogawa Kawabata, Wilson Sergio Venturini & Humberto Breves Coda O objetivo desse trabalho é a criação de um programa computacional em arquitetura paralela (ACADSOFT-P), para ser utilizado como plataforma para futuras pesquisas em métodos numéricos e mecânica estrutural. Pretende-se dar continuidade a elaboração de um sistema computacional decorrente do projeto de pesquisa de Rodrigo Ribeiro Paccola. Com o sistema em implementação criou-se no Departamento de Engenharia de Estruturas da EESC uma estratégia simples e eficiente da transformação de códigos científicos, desenvolvidos no grupo, usando modelos seqüenciais (ACADSOFT-S) utilizáveis em pesquisas aplicadas e numéricas. Esta estratégia permite a utilização, em uma mesma plataforma, de um pré-processador de um software comercial, ANSYS por exemplo, e um pós-processador. Os resultados alcançados com o projeto mencionado foram excelentes como verificados em diversos trabalhos que se utilizam dessa estratégia, Paccola (2004). Além desses trabalhos, deve-se ainda destacar os seguintes artigos sobre o assunto publicados em periódicos de grande circulação: Greco & Coda (2004); Greco et al. (2004), Coda & Greco (2006). A opção pelo processamento paralelo está permitindo a evolução, em termos de aplicações mais complexas, da análise estrutural com a redução significativa dos tempos de processamento em comparação com os hoje observados quando se emprega o processamento seqüencial. Com o aumento de desempenho do sistema computacional está sendo possível abordar problemas diversos de engenharia estrutural tais como: impacto de veículos (automóveis, aeronaves, trens), impacto de projéteis em blindados, análise não-linear geométrica exata de edifícios altos, torres de transmissão, pontes pênseis e estaiadas etc. Deve-se mencionar que estas aplicações já estavam sendo feitas em modelos bidimensionais com bastante sucesso e tempo de processamento aceitáveis utilizando-se a plataforma do ACADSOFT seqüencial, Paccola (2004). A paralelização do método de elementos finitos em desenvolvimento está permitindo o aumento tanto do tamanho quanto do nível de detalhamento do modelo. 2 METODOLOGIA O processamento paralelo de ser realizado tanto em clusters quanto em computadores de múltiplos núcleos. Há dois computadores com processadores Xeon de 8 núcleos de processamento e 16 GB de RAM. O cluster é composto por 14 computadores, onde existe um computador mestre, 12 computadores que fazem o papel de escravos e uma máquina que possui a mesma configuração dos computadores escravos para fazer a tomada de tempo do programa sendo executado na sua forma seqüencial para cálculo do speedup e da eficiência do programa paralelo. O computador mestre possui um processador Xeon X5160 de dois núcleos de 3 GHz cada e tem 64 GB de memória RAM. Os computadores escravos possuem processador Xeon X5460 de 4 núcleos de 2,67 GHz cada e 12 GB de memória RAM. São 12 escravos com essa configuração. Os computadores que formam o cluster estão interligados com rede Gigabit Ethernet. O sistema operacional utilizado é o Linux Ubuntu versão 8.04. Nos escravos utilizou-se a versão Ubuntu Server 8.04, e no computador mestre utilizou-se a versão workstation com interface gráfica que facilita o uso do cluster. Em todos os nós foi instalado o ambiente de passagem de mensagem LAM versão 7.1.2 e o compilador Fortran Intel versão 10. As etapas que estão sendo seguidas para a execução do projeto compreendem os itens: Estudos específicos sobre programação em paralelo utilizando linguagem FORTRAN e o ambiente de passagem de mensagem MPI. Identificação dos pontos críticos de processamento. Nessa fase, além do estudo pormenorizado do código seqüencial e da identificação dos laços mais importantes, foram processados exemplos com grande número de graus de liberdade (com processador seqüencial) identificando pontos de consumo excessivo de tempo e de memória.
Desenvolvimento e implementação de um Método de Elementos Finitos paralelo para análise não linear de... 153 Paralelização do programa. A paralelização do programa foi desenvolvida em uma máquina do tipo PC utilizando o sistema operacional Linux. Primeiro paralelizou-se a integração de elementos, depois a montagem da matriz Hessiana e por último a solução do sistema. Processamento de modelos com grande número de graus de liberdade. Estão sendo processados exemplos reais que antes não eram passíveis de serem processados devido ao consumo de memória excessivo e ao tempo de processamento. Os mesmos passos serão seguidos para a paralelização do algoritmo de elementos de contorno. 3 DESENVOLVIMENTO A paralelização do código do método de elementos finitos está finalizada. Inicialmente paralelizou-se a integração dos elementos, depois a montagem da matriz e por fim a solução do sistema. A comunicação entre os nós foi implementada com o envio apenas dos dados necessários para a execução dos escravos. Foi implementada uma fase de pré-processamento da montagem da matriz, definindo-se rotulação direta das posições relativas dos graus de liberdade para balancear o processamento da montagem da matriz. Assim, tanto a integração dos elementos quanto o tempo de montagem da matriz se tornaram balanceados. Essa modificação não apenas balanceou a carga entre os processadores escravos como também proporcionou um ganho de desempenho tanto no programa seqüencial quanto no paralelo. Outra modificação efetuada no código foi a otimização do uso da memória nos escravos. Os escravos passaram a alocar apenas a memória necessária para o cálculo da parte que lhes cabe. Dessa forma, apenas o processador mestre precisa de mais memória para a montagem da matriz completa e da solução do sistema. A solução do sistema foi paralelizada utilizando o software aberto MUMPS (Multifrontal Massively Parallel Solver) (Amestoy et al., 2006) versão 4.8.4. Ele foi escolhido por suportar tanto arquitetura seqüencial quanto paralela, estar totalmente adaptado para o formato da matriz comprimida utilizada pelo MA27 e utilizar o ambiente de passagem de mensagem MPI. Há um ganho de desempenho com a adoção do software MUMPS, tanto no caso seqüencial quanto no caso paralelo. Dependendo do modelo que está sendo utilizado alcança-se um desempenho (caso seqüencial) de até 5 vezes mais rápido que o MA27. No atual estágio, a integração dos elementos e montagem da matriz são feitos nos escravos, que enviam os resultados para o mestre que então redistribui a matriz para que o sistema seja resolvido. Atualmente está em fase de implementação o cálculo da solução da matriz distribuída, sem a necessidade de comunicação com o mestre, diminuindo o tráfego e a necessidade de memória no mestre para o armazenamento da matriz completa. O algoritmo do método de elementos de contorno está em fase de análise e preparação para a paralelização. Como os passos de tempo nesse tipo de método são calculados independentemente, a paralelização será feita dividindo-se o total de passos de tempo entre os processadores escravos. 4 RESULTADOS OBTIDOS Para uma análise global do programa paralelizado, utilizou-se um toróide com 201.600 graus de liberdade. A Figura 1 mostra os resultados, considerando-se o comportamento do speedup de acordo com o número de escravos e cada parte do programa.
154 Célia Leiko Ogawa Kawabata, Wilson Sergio Venturini & Humberto Breves Coda Speedups obtidos com o modelo de toróide speedup 12 11 10 9 8 7 6 5 4 3 2 Speedup Integração Montagem Solução Teórico 3 6 9 12 número de escravos Figura 1 Speedups obtidos com a simulação de um toróide. Na Figura 1 é possível observar que a parte que obteve o melhor desempenho é a montagem da matriz seguida da integração dos elementos e por último a solução do sistema. A integração de elementos possui uma sobrecarga de processamento, pois os elementos de interface da divisão do modelo para o processamento paralelo ocasionam a necessidade do cálculo desses elementos em 2 processadores. A montagem da matriz não tem essa sobrecarga e por isso possui desempenho melhor. Observa-se que o speedup global também alcança bom desempenho. 5 CONCLUSÕES PARCIAIS O objetivo de estudo e identificação dos gargalos de tempo iniciais para paralelização do AcadSoft foi plenamente atingido. Dessa forma, o objetivo de estudo teórico, proposta e implementação da paralelização da integração de elementos e montagem do sistema do programa cascatridin.for foi atingido, atingindo bons níveis de speedup e eficiência para o período que a pesquisa se desenvolveu. A disseminação dos conhecimentos, criação de cultura de programação em paralelo, bem como a ajuda direta na paralelização de outros códigos já está sendo realizada. Como continuidade do trabalho, um algoritmo do método de elementos de contorno está em fase de paralelização. 6 AGRADECIMENTOS A autora agradece à FAPESP pelo apoio financeiro. 7 REFERÊNCIAS AMESTOY, P. R. et al. Hybrid scheduling for the parallel solution of linear systems. Parallel Computing, Elsevier Science Publishers, v. 32, n. 2, p.136-156, 2006.
Desenvolvimento e implementação de um Método de Elementos Finitos paralelo para análise não linear de... 155 CODA, H. B.; GRECO, M. Positional FEM formulation for flexible multi-body dynamic analysis. Journal of Sound and Vibration, v. 290, n. 3/5, p. 1141-1174, 2006. GRECO, M.; CODA, H. B. A simple and precise FEM formulation for large deflection 2D frame analysis based on position description. Computer Methods in Applied Mechanics and Engineering, n. 193, p. 3541-3557, 2004. GRECO, M.; CODA, H. B.; VENTURINI, W.S. An alternative contact/impact identification algorithm for 2D structural problems. Computational Mechanics, v. 34, n. 5, p. 410-422, 2004. PACCOLA, R. R. Análise não linear física de placas e cascas anisotrópicas acopladas ou não com meio contínuo tridimensional viscoelástico através da combinação entre o MEC e o MEF. Tese (Doutorado em Engenharia de Estruturas) Escola de Engenharia de São Carlos, Universidade de São Paulo, 2004.