Upload
bshecht
View
77
Download
5
Embed Size (px)
Citation preview
Utilização da Biblioteca OpenMP para aParalelização de Aplicações Matemáticas
Universidade Estadual de Campinas, Julho de 2009
Faculdade de Tecnologia
Trabalho de Graduação Interdisciplinar
Universidade Estadual de Campinas, Julho de 2009
Alunos:Adriano da Silva FerreiraBruno dos Santos Hecht
Orientadora:Profª. Dra. Marli de Freitas Gomes Hernandez
Co-orientador:M.Sc. Igor José Ferreira de Freitas
Roteiro
Motivação
Objetivo
OpenMP
Contexto OpenMP
Ambiente de testes
Resultados
Apresentação prática
Conclusões
Adriano da Silva Ferreira
Motivação
Investigar ganhos em desempenho computacional através da paralelização de aplicações e utilização eficiente dos recursos de multi-
processamento.
Adriano da Silva Ferreira
Objetivo
Utilizar-se da API OpenMP e ferramentas associadas visando a otimização de
rendimento em códigos paralelizados.
Adriano da Silva Ferreira
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
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
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
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 instrução;
Sistema Multithreading remete à muitas threads;
Adriano da Silva Ferreira
Contexto OpenMP
Mecanismo multithreading implementado pelo OpenMP:
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
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
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ênticos na arquitetura;
Cache privada (dados privados);
TLB em sistemas de memória virtual;
Adriano da Silva Ferreira
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
...#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];}
...
Ambiente de testes
Bruno dos Santos Hecht
...#pragma omp parallel for shared(MATRIX_DIM, a, x, /
last_iteration, b) private(i, j) reduction(+:sigma1)
for (i = 0; i < MATRIX_DIM; i++){
...
Ambiente de testes
Bruno dos Santos Hecht
...
#pragma omp atomic
iteration++;
...
Ambiente de testes
Bruno dos Santos Hecht
Resultados
Bruno dos Santos Hecht
6.43
175.4
155.94
3.66
116.54
146.9
0
20
40
60
80
100
120
140
160
180
200
Transformação Linear Matriz Jacobi e Gauss-Seidel
Comparativo de desempenho(arquitetura 1)
Sequencial
Paralelotem
po
(s)
Resultados
5.73
158.6
140.04
3.55
124.5131.44
0
20
40
60
80
100
120
140
160
180
Transformação Linear Matriz Jacobi e Gauss-Seidel
Comparativo de desempenho(arquitetura 2)
Sequencial
Paralelo
Bruno dos Santos Hecht
tem
po
(s)
Apresentação prática
Bruno dos Santos Hecht
Conclusões
• Resultados satisfatórios;
• Aplicação abrangente;
• Abertura para trabalhos futuros.