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

Post on 21-Jul-2015

77 views 5 download

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

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.