Faculdade de Tecnologia
Trabalho de Graduação Interdisciplinar

Utilização da Biblioteca OpenMP para a
Paralelização de Ap...
Alunos:
Adriano da Silva Ferreira
Bruno dos Santos Hecht

Orientadora:
Profª. Dra. Marli de Freitas Gomes Hernandez
Co-ori...
Roteiro









Motivação
Objetivo
OpenMP
Contexto OpenMP
Ambiente de testes
Resultados
Apresentação prática
Conc...
Motivação

Investigar ganhos em desempenho computacional
através da paralelização de aplicações e
utilização eficiente dos...
Objetivo

Utilizar-se da API OpenMP e ferramentas
associadas visando a otimização de
rendimento em códigos paralelizados.
...
OpenMP


O que é a API OpenMP
 Interface para desenvolvimento de aplicaçãoes
paralelizadas em ambientes multithreading e...
OpenMP


Funcionamento da interface :
 Aplicabilidade para as Linguagens C/C++ e Fortran;

 Baseado em diretivas de com...
OpenMP
 Extensão à linguagem de programação;
 Delimita uma região paralelizável:

#pragma omp parallel for default(none)...
OpenMP
• Abrangência do OpenMP:

Adriano da Silva Ferreira
Contexto OpenMP
• Sistema MultiThreading;
 Threads:
entidade capaz de executar independentemente um fluxo de
dados de uma...
Contexto OpenMP
 Mecanismo multithreading implementado pelo OpenMP:
Contexto OpenMP


Mecanismo multithreading implementado pelo OpenMP:

 O trabalho será divido entre as Threads;
 Sincro...
Contexto OpenMP


Contexto de Hardware do OpenMP;
 Taxonomia de Flynn;

 Arquitetura MIMD (Multiple Instrucition, Multi...
Contexto OpenMP


Contexto de Hardware do OpenMP:

Adriano da Silva Ferreira
Contexto OpenMP


Arquitetura SMP – Processadores Simétricos






Processadores com mesma distância à memória;
Idênt...
Contexto OpenMP


Arquitetura SMP – Processadores Simétricos / Dual Core Genérico:

Adriano da Silva Ferreira
Ambiente de testes

• Arquitetura 64bits;
• Vantagens de se utilizar Sistema Operacional
Linux;

Bruno dos Santos Hecht
Ambiente de testes

• Compildor GCC;
• Ajustes e ferramentas de apoio;

Bruno dos Santos Hecht
Ambiente de testes
...
#pragma omp shared for
for (K=1; K<N; K++) {
for (I=K+1; I<=N; I++) {
#pragma omp critical(B)
B[I] ...
Ambiente de testes
...
#pragma omp parallel for shared(MATRIX_DIM, a, x, /
last_iteration, b) private(i, j) reduction(+:si...
Ambiente de testes
...
#pragma omp atomic
iteration++;
...

Bruno dos Santos Hecht
Resultados
Comparativo de desempenho
(arquitetura 1)
200
180

175.4

160

155.94

tempo (s)

140

146.9

120
116.54

Seque...
Resultados
Comparativo de desempenho
(arquitetura 2)
180
160
158.6
140

tempo (s)

140.04
131.44

120

124.5

100
Sequenci...
Apresentação prática

Bruno dos Santos Hecht
Conclusões
• Resultados satisfatórios;

• Aplicação abrangente;
• Abertura para trabalhos futuros.
Próximos SlideShares
Carregando em…5
×

Computação paralela utilizando OpenMP para aplicações matemáticos

266 visualizações

Publicada em

Apresentação final do Trabalho de Conclusão de Curso focado em Computação Paralela por memória compartilhada utilizando a bliblioteca OpenMP para paralelização de aplicações matemáticas

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
266
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Computação paralela utilizando OpenMP para aplicações matemáticos

  1. 1. Faculdade de Tecnologia Trabalho de Graduação Interdisciplinar Utilização da Biblioteca OpenMP para a Paralelização de Aplicações Matemáticas Universidade Estadual de Campinas, Julho de 2009
  2. 2. Alunos: Adriano da Silva Ferreira Bruno dos Santos Hecht Orientadora: Profª. Dra. Marli de Freitas Gomes Hernandez Co-orientador: M.Sc. Igor José Ferreira de Freitas Universidade Estadual de Campinas, Julho de 2009
  3. 3. Roteiro         Motivação Objetivo OpenMP Contexto OpenMP Ambiente de testes Resultados Apresentação prática Conclusões Adriano da Silva Ferreira
  4. 4. Motivação Investigar ganhos em desempenho computacional através da paralelização de aplicações e utilização eficiente dos recursos de multiprocessamento. Adriano da Silva Ferreira
  5. 5. Objetivo Utilizar-se da API OpenMP e ferramentas associadas visando a otimização de rendimento em códigos paralelizados. Adriano da Silva Ferreira
  6. 6. OpenMP  O que é a API OpenMP  Interface para desenvolvimento de aplicaçãoes paralelizadas em ambientes multithreading e de memória compartilhada;  Versão Atual do OpenMP: 3.0;  O OpenMP está contido em uma das abordagens do Paralelismo Computacional; Adriano da Silva Ferreira
  7. 7. OpenMP  Funcionamento da interface :  Aplicabilidade para as Linguagens C/C++ e Fortran;  Baseado em diretivas de compilação (compilador OpenMP);  Sintaxe para o C/C++: #pragma omp nome da diretiva [cláusula[[,] cláusula]...] / nova linha Adriano da Silva Ferreira
  8. 8. OpenMP  Extensão à linguagem de programação;  Delimita uma região paralelizável: #pragma omp parallel for default(none) private(i) for (int i = 0; i <= tamanho_vetor; i++) // início da região { vetor[i] = i + vetor[i * i]; } // fim da região Adriano da Silva Ferreira
  9. 9. OpenMP • Abrangência do OpenMP: Adriano da Silva Ferreira
  10. 10. Contexto OpenMP • Sistema MultiThreading;  Threads: entidade capaz de executar independentemente um fluxo de dados de uma instrução;  Sistema Multithreading remete à muitas threads; Adriano da Silva Ferreira
  11. 11. Contexto OpenMP  Mecanismo multithreading implementado pelo OpenMP:
  12. 12. Contexto OpenMP  Mecanismo multithreading implementado pelo OpenMP:  O trabalho será divido entre as Threads;  Sincronização entre Threads:  Dados compartilhados  Dados privados  Geração do montante de trabalho final; Adriano da Silva Ferreira
  13. 13. Contexto OpenMP  Contexto de Hardware do OpenMP;  Taxonomia de Flynn;  Arquitetura MIMD (Multiple Instrucition, Multiple Data);  Clusters, NUMA, SMP: especificações da arquitetura; Adriano da Silva Ferreira
  14. 14. Contexto OpenMP  Contexto de Hardware do OpenMP: Adriano da Silva Ferreira
  15. 15. Contexto OpenMP  Arquitetura SMP – Processadores Simétricos     Processadores com mesma distância à memória; Idênticos na arquitetura; Cache privada (dados privados); TLB em sistemas de memória virtual; Adriano da Silva Ferreira
  16. 16. Contexto OpenMP  Arquitetura SMP – Processadores Simétricos / Dual Core Genérico: Adriano da Silva Ferreira
  17. 17. Ambiente de testes • Arquitetura 64bits; • Vantagens de se utilizar Sistema Operacional Linux; Bruno dos Santos Hecht
  18. 18. Ambiente de testes • Compildor GCC; • Ajustes e ferramentas de apoio; Bruno dos Santos Hecht
  19. 19. Ambiente de testes ... #pragma omp shared for for (K=1; K<N; K++) { for (I=K+1; I<=N; I++) { #pragma omp critical(B) B[I] -= A[I][K] / A[K][K] * B[K]; for (J=K+1; J<=N; J++) #pragma omp critical(A) A[I][J] -= A[I][K] / A[K][K] * A[K][J]; } ... Bruno dos Santos Hecht
  20. 20. Ambiente de testes ... #pragma omp parallel for shared(MATRIX_DIM, a, x, / last_iteration, b) private(i, j) reduction(+:sigma1) for (i = 0; i < MATRIX_DIM; i++) { ... Bruno dos Santos Hecht
  21. 21. Ambiente de testes ... #pragma omp atomic iteration++; ... Bruno dos Santos Hecht
  22. 22. Resultados Comparativo de desempenho (arquitetura 1) 200 180 175.4 160 155.94 tempo (s) 140 146.9 120 116.54 Sequencial 100 Paralelo 80 60 40 20 6.43 3.66 0 Transformação Linear Matriz Bruno dos Santos Hecht Jacobi e Gauss-Seidel
  23. 23. Resultados Comparativo de desempenho (arquitetura 2) 180 160 158.6 140 tempo (s) 140.04 131.44 120 124.5 100 Sequencial 80 Paralelo 60 40 20 5.73 3.55 0 Transformação Linear Matriz Bruno dos Santos Hecht Jacobi e Gauss-Seidel
  24. 24. Apresentação prática Bruno dos Santos Hecht
  25. 25. Conclusões • Resultados satisfatórios; • Aplicação abrangente; • Abertura para trabalhos futuros.

×