Вы находитесь на странице: 1из 3

Ep1 - MAC-0300 2011 Exerc Programa 1: Resoluo de sistemas de cio ca equaoes lineares c

Mikail Campos Freitas - no USP: 6431072 Bruno Milan Perfetto - no . USP : 6552421 18 de setembro de 2011

Introduo ca

Este documento descreve diferenas na implementaao do algoritmo LU para fatoraao c c c e resoluao de sistemas lineares. O mesmo algoritmo foi implementado em C e em Fortran, c duas linguagens que representam espaos na memria de forma diferente. Em C, uma c o matriz alocada de forma que suas linhas sejam indexadas lado a lado, enquanto que em e Fortran, suas colunas so indexadas lado a lado. Desse modo, h diferena em percorrer a a c a matriz por linhas ou colunas nas duas linguagens. Na seao 2, so descritas as condioes dos testes.Na seao 3 uma tabela de comparao c a c c ca entre os tempos de execuo do algoritmo LU para fatorao e resoluo orientado a linha ca ca ca ` e ` coluna inserida, a linguagem utilizada foi C.Na seao 4 uma tabela de comparaao a e c c entre os tempos de execuo do algoritmo LU para fatorao e resoluo orientado a linha ca ca ca ` e ` coluna inserida, a linguagem utilizada foi Fortran.Na seao 5 h uma explicao da a e c a ca impossibilidade de se fazer e o teste usando f2c.Por m, seo 6, h uma breve explicao ca a ca dos resultados obtidos.

Condies dos Testes co

Todos os testes foram feitos com a funo timedo ambiente unix e sob as mesmas ca condioes. Para cada arquivo de entrada foram feitos 100 testes e tirou-se uma mdia c e aritmtica, a qual est na tabela de cada teste. A unidade de tempo da tabela segundos. e a e

Testes da Parte em C

Tabela Comparativa de Tempo de Execuo ca Arquivo de entrada Tempo execuo linhas (s) Tempo execuao colunas (s) ca c m1.dat 0.031780 0.032320 m2.dat 0.116440 0.109920 m3.dat 0.269320 0.300000 m4.dat 0.520380 0.683960 m5.dat 0.895580 1.288500 m6.dat 1.996200 2.239800 m7.dat 2.256320 3.486300

Empiricamente, aprensentou-se uma melhor performance o algoritmo implementado pela orientao a linha, uma vez que em C uma matriz alocada de forma que suas ca ` e linhas estejam lado a lado. O algoritmo implementado pela orientaao ` coluna exige um c a maior esforo computacional, j que suas colunas no esto lado a lado, e deve haver um c a a a desclocamento maior para se poder ler o prximo o ndice da coluna.

Testes da Parte em Fortran

Tabela Comparativa de Tempo de Execuo ca Arquivo de entrada Tempo execuo linhas (s) Tempo execuao colunas (s) ca c m1.dat 0.054200 0.050500 m2.dat 0.184600 0.173300 m3.dat 0.449200 0.409000 m4.dat 0.912800 0.791700 m5.dat 1.671200 1.319100 m6.dat 2.869000 2.101400 m7.dat 3.678340 3.081200

Empiricamente, aprensentou-se uma melhor performance o algoritmo implementado pela orientao a coluna, uma vez que em Fortran uma matriz alocada de forma que ca ` e suas colunas estejam lado a lado. O algoritmo implementado pela orientao a linha exige ca ` um maior esforo computacional, j que suas linhas no esto lado a lado, e deve haver c a a a um desclocamento maior para se poder ler o prximo o ndice da linha.

Testes da Parte em C traduzido de Fortran

No foi poss testar o cdigo traduzido pelo f2c, uma vez que no erros de compilao a vel o a ca no arquivo em Fortran e a sa do comando f2c algo.f : da e algo.f: MAIN min: lucol: sscol: Warning on line 97 of algo.f: sscol: inconsistent declarations: here integer function, previously real function. Error on line 106 of algo.f: syntax error lurow: ssrow: Warning on line 188 of algo.f: ssrow: inconsistent declarations: here integer function, previously real function. Error on line 197 of algo.f: syntax error

No entanto, era esperada uma sa semelhante a da seao 3 (Testes da Parte em C). da ` c Uma vez que a diferena em tempo de execuao se d na implementaao por linha ou c c a c coluna da fatorao LU e da soluao do sistema. ca c

Concluso a

Com os resultados das tabelas, pode-se entender que percorrer matrizes por linha ou coluna faz diferena dependendo da linguagem utilizada. Portanto, deve-se tomar c conhecimento de como a alocaao de memria feita pelo compilador da linguagem. c o e

Вам также может понравиться