• Nenhum resultado encontrado

Ao longo deste texto foram mostradas características computacionais e resultados numéricos de quatro métodos de resolução iterativa de sistemas de equações lineares. O método iterativo fundamental Gradiente Conjugado, a versão para matrizes não simétricas Gradiente BiConjugado, e as versões para matrizes não simétricas, que não utilizam a transposta da matriz, Gradiente Conjugado Quadrado e Gradiente BiConjugado Estabilizado. Podemos observar o desempenho destes métodos sob dois pontos de vista: o primeiro no que diz respeito a sua capacidade de convergência em número de iterações e o segundo que diz respeito ao tempo de processamento, caso haja convergência.

Estes dois aspectos estão interligados, pois um menor número de iterações num método está relacionado a alguma técnica numérica auxiliar que consome processamento e, conseqüentemente, aumenta o tempo de cálculo. Desta forma, o algoritmo mais simples, mas talvez com maior número de iterações, pode apresentar o menor tempo. Isto acontece freqüentemente com o CG. Mas comparando-o com o BiCGStab, embora este último possua núcleos de processamento mais pesados computacionalmente, apresentou em diversas oportunidades tempos de processamento inferiores ao CG. Isto pode ser observado nas tabelas 6.37, 6.38 e 6.40.

Dentre os métodos que tratam matrizes não simétricas, as tabelas mostram a clara dificuldade de convergência do método Gradiente Conjugado Quadrado, tanto para matrizes pequenas como para matrizes maiores. Experimentalmente também se observou que os erros de arredondamento provocados pelas funções da biblioteca de comunicação

potencializaram os efeitos do operador de contração deste método, aumentando ainda mais a dificuldade de convergência deste método.

O Gradiente BiConjugado mostrou a eficiência já conhecida. Comparando os números de iterações entre o CG e o BiCG encontramos que o último tende a apresentar a metade do número de iterações encontrado pelo CG. Entretanto, por realizar pelo menos um produto matriz por vetor a mais, seu tempo de processamento é idêntico ou maior que para o CG. Isto pode ser visto nas tabelas 6.36 a 6.40.

Por último, o Gradiente BiConjugado Estabilizado se mostrou tão eficiente quanto o BiCG e, para as matrizes originárias do método de elementos finitos nos casos testados neste trabalho, menor número de iterações e menor tempo de processamento. Comparando os métodos CGS, BiCG e BICGStab, pode-se afirmar a partir do desempenho registrado nas tabelas 6.35, 6.37 e 6.38 para matrizes originárias de elementos finitos, que o BiCGStab obteve o melhor desempenho.

Os resultados colhidos para os métodos de compactação mostraram que, em se tratando de clusters de computadores, a forma de armazenamento de matrizes esparsas também deve concordar com métodos que facilitem a distribuição dos dados numa filosofia que não entre em conflito com a arquitetura de memória distribuída. Isto se estende também às rotinas de comunicação utilizadas pelos métodos de armazenamento.

Os métodos de compactação ICRS e CRS mostraram pouca diferença de desempenho entre si. Para matrizes com grandes números de elementos o desempenho foi idêntico. Assim, com base nos números de iterações e tempos registrados nas tabelas 6.26 a 6.30, o armazenamento CCS e o armazenamento RCS se mostraram pouco adequados à arquitetura de computação paralela em clusters.

Este trabalho propôs uma versão do pré-condicionador LU por blocos com o acréscimo de um parâmetro de interseção para reduzir o enfraquecimento causado pelo desacoplamento do matriz de pré-condicionamento. Este pré-condicionador foi testado nos quatro métodos iterativos de resolução de sistemas de equação já descritos e seu desempenho comparado ao caso sem interseção e também aos pré-condicionadores LU incompleto não paralelizado e de Jacobi.

Observando as tabelas 6.31 a 6.37, notou-se em muitos casos a diminuição do número de iterações e também do tempo de processamento, especialmente no método BiCGStab, comparados aos casos sem interseção. Nos exemplos que tratam de matrizes de

elementos finitos a variação da porcentagem do bloco mostrou que os números de iterações variam até algo em torno de 15% da variação do número de linhas. Depois destes valores os números de iteração passam a variar muito pouco. Com isso e através dos valores colhidos, pode-se dizer que os clusters de computadores podem ser usados com sucesso na paralelização da resolução de sistemas de equações lineares com valores de interseção de até 10%.

Comparando com os pré-condicionadores LU incompleto e Jacobi encontramos novamente que a paralelização só é bem sucedida em relação ao tempo de processamento quando as matrizes são um pouco mais densas (Matriz 347832). Observando especificamente o número de iterações resultantes para o LU incompleto e o LU por blocos (sem interseção), percebe-se que este é rigorosamente o mesmo.

Por último foram utilizadas duas plataformas de alto desempenho para os testes nesta etapa final do trabalho: o cluster do GRUCAD e o cluster do L2EP. Embora ambos sejam clusters, máquinas com arquitetura de memória distribuída executando o sistema operacional Linux/GNU e biblioteca de comunicação MPI, estas máquinas são conectadas por hardware de rede com tecnologias muito diferentes.

A diferença pode ser observada através da figura 5.2 que ilustra a largura de banda e a latência destas máquinas. O cluster do L2EP tem uma latência inferior a duas vezes a latência do cluster do GRUCAD, o que permite a obtenção de ganhos em alguns exemplos como os casos mostrados na figuras 6.8 e 6.9.

Esta diferença de desempenho de hardware fica mais acentuada quando são comparados os resultados levando-se em conta a esparsidade das matrizes estudadas.

A figura 7.1 ilustra de forma simplificada a síntese dos resultados aqui apresentados.

BiCGStab

BiCGStab FLUIFLUI

ICRS

ICRS

Myrinet

Myrinet

BiCGStab

BiCGStab FLUIFLUI

ICRS ICRS Myrinet Myrinet CG BiCG CGS LU por Blocos Diagonal LU incompleta CRS CCS RCS Gigabit Ethernet CG BiCG CGS LU por Blocos Diagonal LU incompleta CRS CCS RCS Gigabit Ethernet

Algoritmo Pré-condicionador Método de Armazenamento

Tecnologia de Rede

Fig. 7.1 – Síntese dos resultados obtidos: BiCGStab, FLUI, ICRS e Myrinet numa única plataforma de cálculo.

Entre os métodos iterativos, o BiCGStab apresentou o melhor desempenho, tanto na forma seqüencial como paralelizado, podendo substituir com vantagens o método BiCG. O pré-condicionamento LU incompleto por blocos com interseção mostrou-se adaptado às necessidades da computação paralela com memória distribuída. O método de armazenamento ICRS apresentou vantagens sobre os outros três métodos testados e, o método atualmente utilizado nos programas 3D (RCS) se mostrou pouco adaptado às necessidades da arquitetura de memória distribuída. A tecnologia de rede Gigabit Ethernet, embora seja mais facilmente encontrada no mercado, apresentou altos valores de latência e baixa largura de banda nos testes realizados, prejudicando o desempenho dos programas, que fazem uso de muito tráfego de mensagens.

Documentos relacionados