TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Trabalhando com OpenMp

Por:   •  2/9/2015  •  Trabalho acadêmico  •  3.187 Palavras (13 Páginas)  •  273 Visualizações

Página 1 de 13

[pic 1]

CAMPUS ALEGRETE

CIÊNCIA DA COMPUTAÇÃO

Relatório Técnico Científico

Análise de desempenho com OpenMP

Dirceu Maraschin

Jairo Dias Pimentel

dirceu_maraschin@hotmail.com

jairodp013@gmail.com

Alegrete, Agosto, 2014

RESUMO

        Este trabalho tem como objetivo a análise e comparação dos resultados obtidos a cerca do desempenho de diferentes versões, sequencial e paralela, a partir da execução de uma aplicação que realiza multiplicação de matrizes. Essa aplicação foi testada sob a interface de programação OpenMP (Open Multi-Processing), fazendo-se a paralelização dos laços for aninhados, os quais são responsáveis pela multiplicação das matrizes propriamente dita. Duas máquinas com organizações diferentes foram utilizadas nos testes de duas abordagens quanto ao laço a ser paralelizado, além disso, três políticas de distribuição de iterações: static, dynamic e guided do OpenMP. Variou-se o número de threads a serem processadas, de 2 até o dobro do número de cores do processador de cada máquina.

Palavras-chave: Desempenho, paralelização, OpenMP.


Sumário

RESUMO        

1 Introdução        

1.1 Objetivos        

2 Desenvolvimento do Trabalho        

2.1 Métodos de paralelização        

2.2 Ambientes de testes        

3 Resultados        

3.1 Tempos de execução do computador 1        

3.2 Tempos de execução do computador 2        

3.3 Speedup        

3.4 Eficiência        

3.5 Comparações das políticas de iteração por laço paralelizado        

4 Conclusão        

5 Referências        

  1. 1 Introdução

        O uso da paralelização em computadores não é mais exceção. Internamente em um processador, há diversas unidades executando tarefas em paralelo no conjunto de instruções da arquitetura da CPU de forma transparente para o usuário [1]. Neste trabalho, para a paralelização da aplicação de multiplicação de matrizes, foi-se implementada utilizando a interface de programação OpenMP. Essa é uma interface portável baseada no modelo de programação paralela de memória compartilhada para arquiteturas de múltiplos processadores. O OpenMP pode ser executado tanto em ambientes Windows quanto Linux, pois se tratam de sistemas Multithreads.

        Para a elaboração deste trabalho, utilizamos técnicas de paralelização para arquiteturas de processadores Multicores (CPUs com mais de um núcleo), característica presente em quase todos os computadores da atualidade. Como técnicas, foram utilizadas três políticas de distribuição de iterações de laços for da interface OpenMP: static, dynamic e guided. Para isso, fez-se necessário também a variação no número de threads a fim de testar o desempenho em cada uma das versões da aplicação de multiplicação de matrizes (de 2 até o dobro do número de cores do processador de cada máquina utilizada).

        Conforme visto nas aulas ministradas pela Prof.ª Márcia Cera [2], adquirimos conhecimento a cerca das técnicas de paralelização, o que provê ganho de desempenho e um melhor uso das arquiteturas multicores. Dessa forma, obtendo uma execução mais rápida das aplicações. Por tais razões, foi-nos proposto desempenhar testes a fim de comprovar tais afirmações por meio de testes para demonstrar as políticas de iteração e analisar os resultados, fazendo comparativos observando qual delas seria a melhor para a paralelização da aplicação.

        Com base nos conhecimentos adquiridos e demonstrações feitas em aula, podemos perceber vantagens ao fazer uso de técnicas de paralelização. Dentre as vantagens, o ganho de desempenho e o melhor uso dos recursos oferecidos pelas arquiteturas Multicores são as de maior destaque. No decorrer deste trabalho, serão apresentados os testes bem como os resultados obtidos pela execução da aplicação de multiplicação de matrizes variando as políticas de iteração citadas anteriormente.

  1. 1.1 Objetivos

        Este trabalho tem como objetivo mostrar os resultados obtidos a partir dos testes feitos com a execução de diferentes versões, paralela e sequencial, da aplicação de multiplicação de matrizes a nós fornecida pela Prof.ª Márcia Cera. Comparar estes resultados e observar qual das políticas de paralelização apresenta melhor desempenho, static, dynamic ou guided em termos de menor tempo de execução, sob as arquiteturas Multicores utilizadas. Também é nosso objetivo adquirir maior conhecimento e prática no uso de técnicas de paralelização a fim de fazer um melhor uso do poder de processamento dos computadores.


  1. 2 Desenvolvimento do Trabalho

        Para realizar este trabalho foi realizada uma adaptação quanto ao código utilizado no trabalho anterior (Atividade 7), adaptação essa sendo a definição de qual tipo de iteração iria ser usada e o número de threads que serão processadas.

        Na análise, percebeu-se que a paralelização da parte do código contendo três laços for aninhados, os quais são responsáveis pela multiplicação das matrizes, é a forma de se obter melhor desempenho. Isso se dá devido ao maior tempo de execução estar concentrado justamente no processo de multiplicação desempenhado pela aplicação.

...

Baixar como (para membros premium)  txt (19 Kb)   pdf (521 Kb)   docx (262.3 Kb)  
Continuar por mais 12 páginas »
Disponível apenas no TrabalhosGratuitos.com