download completo - SET - USP
download completo - SET - USP
download completo - SET - USP
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Desenvolvimento e implementação de um Método de Elementos Finitos paralelo para análise não linear de...<br />
153<br />
• Paralelização do programa. A paralelização do programa foi desenvolvida em uma máquina do<br />
tipo PC utilizando o sistema operacional Linux. Primeiro paralelizou-se a integração de<br />
elementos, depois a montagem da matriz Hessiana e por último a solução do sistema.<br />
• Processamento de modelos com grande número de graus de liberdade. Estão sendo<br />
processados exemplos reais que antes não eram passíveis de serem processados devido ao<br />
consumo de memória excessivo e ao tempo de processamento.<br />
Os mesmos passos serão seguidos para a paralelização do algoritmo de elementos de<br />
contorno.<br />
3 DESENVOLVIMENTO<br />
A paralelização do código do método de elementos finitos está finalizada. Inicialmente<br />
paralelizou-se a integração dos elementos, depois a montagem da matriz e por fim a solução do<br />
sistema. A comunicação entre os nós foi implementada com o envio apenas dos dados necessários<br />
para a execução dos escravos.<br />
Foi implementada uma fase de pré-processamento da montagem da matriz, definindo-se<br />
rotulação direta das posições relativas dos graus de liberdade para balancear o processamento da<br />
montagem da matriz. Assim, tanto a integração dos elementos quanto o tempo de montagem da<br />
matriz se tornaram balanceados. Essa modificação não apenas balanceou a carga entre os<br />
processadores escravos como também proporcionou um ganho de desempenho tanto no programa<br />
seqüencial quanto no paralelo.<br />
Outra modificação efetuada no código foi a otimização do uso da memória nos escravos. Os<br />
escravos passaram a alocar apenas a memória necessária para o cálculo da parte que lhes cabe.<br />
Dessa forma, apenas o processador mestre precisa de mais memória para a montagem da matriz<br />
completa e da solução do sistema.<br />
A solução do sistema foi paralelizada utilizando o software aberto MUMPS (Multifrontal<br />
Massively Parallel Solver) (Amestoy et al., 2006) versão 4.8.4. Ele foi escolhido por suportar tanto<br />
arquitetura seqüencial quanto paralela, estar totalmente adaptado para o formato da matriz<br />
comprimida utilizada pelo MA27 e utilizar o ambiente de passagem de mensagem MPI. Há um ganho<br />
de desempenho com a adoção do software MUMPS, tanto no caso seqüencial quanto no caso<br />
paralelo. Dependendo do modelo que está sendo utilizado alcança-se um desempenho (caso<br />
seqüencial) de até 5 vezes mais rápido que o MA27.<br />
No atual estágio, a integração dos elementos e montagem da matriz são feitos nos escravos,<br />
que enviam os resultados para o mestre que então redistribui a matriz para que o sistema seja<br />
resolvido. Atualmente está em fase de implementação o cálculo da solução da matriz distribuída, sem<br />
a necessidade de comunicação com o mestre, diminuindo o tráfego e a necessidade de memória no<br />
mestre para o armazenamento da matriz completa.<br />
O algoritmo do método de elementos de contorno está em fase de análise e preparação para<br />
a paralelização. Como os passos de tempo nesse tipo de método são calculados independentemente,<br />
a paralelização será feita dividindo-se o total de passos de tempo entre os processadores escravos.<br />
4 RESULTADOS OBTIDOS<br />
Para uma análise global do programa paralelizado, utilizou-se um toróide com 201.600 graus<br />
de liberdade. A Figura 1 mostra os resultados, considerando-se o comportamento do speedup de<br />
acordo com o número de escravos e cada parte do programa.<br />
Cadernos de Engenharia de Estruturas, São Carlos, v. 11, n. 53, p. 151-155, 2009