modelos computacionaisjbarbosa/ensino/pdp/2006-2007/acetatos/a3_mc.pdf · modelo logp • aspectos...

30
Modelos Computacionais Jorge Barbosa

Upload: vuxuyen

Post on 13-Dec-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Modelos Computacionais

Jorge Barbosa

Modelos Computacionais

Modelo de Computação: corresponde a uma função de custo da execução de um algoritmo numa determinada máquina.

O modelo deve representar o custo de cada operação no modelo de programação.

Modelo de Programação/Programa + Máquina Modelo de Computação

• Objectivos– Estimação de desempenho.– Permite definir as estratégias de paralelização que resultam melhor na máquina

em causa.– Permite definir as estratégias de distribuição de dados e comunicação entre

processadores.

Modelos Computacionais

Os parâmetros da função de custo são obtidos a partir da arquitecturado computador, nomeadamente:– Hierarquia de memória– Tempo de Latência da rede de comunicações– Largura de banda da rede, medida em Mbit/s– Capacidade de processamento, medida em Mflop/s– Topologia da rede

E também a partir do modelo de programação:– Distribuição balanceada da carga computacional– Contenção da rede: gestão das comunicações para evitar colisões– Dependências funcionais

Modelos Computacionais

• Foram desenvolvidos vários modelos de computação, partindo sempre de um modelo de programação e para um determinado tipo de arquitectura.

1. Modelo PRAM - Parallel Random Access Machine– Extensão ao modelo RAM do computador sequencial

Computador PRAM é constituído por:• P processadores, • 1 unidade de controlo, • memória global, • largura de banda infinita,• custo de acesso à memória nulo.

Modelo PRAM

• Os P processadores operam sincronamente num ciclo de leitura de memória, computação e escrita de memória.

• É um modelo abstracto mas muito utilizado para desenvolver algoritmos para as máquinas paralelas de memória central partilhada (décadas de 70 e 80).

Rede de Interligação

Memória Global

Contolo

P1 P2 Pn

Modelo PRAM

• Foram propostas diversas variações ao modelo básico para tentar torná-lo mais realista, mantendo, no entanto, a sua simplicidade. A distinção consiste na forma como gerem conflitos de leitura/escrita na memória.

Modelos PRAM– EREW – leitura exclusiva e escrita exclusiva– CREW – leitura concorrente e escrita concorrente– ERCW – leitura exclusiva e escrita concorrente– CRCW – leitura concorrente e escrita concorrente

Modelo BSP

Bulk-Synchronous Parallel model

É em simultâneo um Modelo Computacional e um Modelo de Programação.

Objectivo: fazer a interface entre hardware e software de modo a obter simultaneamente portabilidade e expansibilidade. Objectivos normalmente mutuamente exclusivos.

Custo da portabilidade: redução na eficiência do sistema.

Modelo BSP

• O programa é dividido em super-etapas onde apenas são efectuados cálculos e acessos a memória local.

• No fim de cada super-etapa, os processadores sincronizam por uma instrução de barreira, trocam as mensagens geradas durante o processamento e iniciam nova super-etapa.

Tempo de uma super-etapa: – Definido por processador que tem a tarefa mais longa,– pelo maior volume de dados trocados, e– tempo necessário para sincronizar no fim da super-etapa.

Parâmetros do Modelo:– P : número de processadores– g : largura de banda– L : latência, reflecte a latência da rede e tempo de sincronização

Modelo BSP

• Tempo de execução da super-etapa i

wi+ghi+L

onde wi corresponde à maior tarefa e hi é o número de pacotes trocados por um processador durante a etapa i.

Tempo de execução de todo o programa:

W+gH+LS ∑−

=

=1

0

S

iiwW ∑

=

=1

0

S

iihH

Modelo LogP

• Modelo para as arquitecturas de memória distribuída, programados segundo o modelo de programação Passagem de Mensagens.

O modelo considera a latência, overhead e largura de banda da rede, mas não restringe a uma topologia.

Parâmetros do modelo LogP:– P : número de processadores– g : mínimo intervalo de tempo entre mensagens consecutivas– L : majorante para o tempo de latência– o : overhead, tempo gasto pelo processador para transmitir a mensagem

1 / g : largura de banda por processador

Exemplo: custo da leitura de uma posição de memória remota (em outro processador) = 2L + 4o unidades de tempo

Modelo LogP

• Aspectos a considerar no desenvolvimento de software:– Distribuição equilibrada de carga computacional– Redução dos acessos a memória remota (comunicações)– Escalonamento adequado das comunicações para sobrepor

comunicações com computação.

Este modelo teve por base o modelo BSP, mas com o objectivo de ser mais realista , i.e. considera que a máquina alvo é uma arquitectura de memória distribuída. É no entanto suficientemente simples para ser usado no desenvolvimento de algoritmos que funcionem de forma previsível numa gama considerável de máquinas.

Modelo computacional para uma rede de computadores pessoais

Objectivo: Modelo Computacional que caracterize a execução dos algoritmos na máquina paralela da figura, de modo a estimar o tempo de processamento. Considera-se o modelo de programação por passagem de mensagens.

Características do Nó da máquina: – Capacidade de processamento Si Mflop/s

Características da Rede de comunicação:– número de mensagens permitidas em simultâneo– largura de banda Mbit/s– comunicação ponto-a-ponto

CPU+

MEMÓRIA

CPU+

MEMÓRIA

CPU+

MEMÓRIA

Modelo computacional para uma rede de computadores pessoais

• Contabilização separada das fases sequenciais e paralelas– Operação sequencial: comunicação, entrada/saída de dados e outros

processamentos que não ocorram em paralelo devido às características do problema.

– Operações paralelas: operações cujo tempo de processamento paralelo corresponde ao tempo medido num único processador dividido por P quando são usados P processadores.

Tempo

Tp

Distribuíção dedados

ProcessamentoComunicação deResultados

Diagrama temporal da execução de um algoritmo

Modelo computacional para uma rede de computadores pessoais

O tempo total de processamento, em função do número de processadores P e da dimensão do problema n é:

TT(n,P)=TS(n,P)+TP(n,P) TS(n,P)=Tis(n,P)+TC(n,P)

onde Tis(n,P) corresponde a componentes sequenciais inerentes ao problema.

A comunicação entre 2 processadores de n elementos é dada por:

TC(n)=L+nß

Onde:L - tempo de latência decorrido entre a ordem para comunicar e o inicio da mesma.ß - 1/largura de banda

Modelo computacional para uma rede de computadores pessoais

No protocolo TCP/IP as mensagens são divididas no emissor em pacotes de dados e reunidas no receptor para recuperar a mensagem. O tamanho típico é de 1024 elementos.

Como consequência o tempo de latência é proporcional ao número de pacotes da mensagem:

TC(m)=K.L+mß sendo k=m/1024

Modelo computacional para uma rede de computadores pessoais

A componente correspondente ao processamento paralelo TPrepresenta os blocos de processamento sem qualquer componente sequencial:

∑=

= P

i iP

SnfPnT1

)(),(

f(n) corresponde à complexidade computacional do problema.Exemplo:

Para o produto de matrizes f(n)=2n3

Exemplo de aplicação

ConvoluçãoAplicar um filtro de dimensão 3x3 sobre uma imagem de dimensão nxn

∑ ∑−= −=−−=∗=

1

1

1

1),().,(

91),(),(),(

k lljkixlkhlkhjiXjiY

for(i=0; i<n; i++)for(j=0; j<n; j++)

for(k=-1; k<=1; k++)

for(l=0; l<n; l++)Y[i][j]+=h[k][l]*x[i-k][j-l]

flopsnnnnf n

i

n

j k l2

1 1

1

1

1

1182.3.3..2)( ===∑ ∑ ∑ ∑= = −= −=

Operações efectuadas:

Exemplo de aplicação

• Mensagens para P processadores:2(P-1) mensagens de n elementos

Tempo de processamento:

É necessário estimar k.

SPn).n.ß (P-k.L(n,P)TT .

18122

++=

Medidas de desempenho

As medidas de desempenho referem-se ao conjunto algoritmo –máquina.

A paralelização de um algoritmo poderá ter 2 objectivos:1. Reduzir o tempo de processamento pela utilização de um maior

número de processadores avaliação do Speedup2. Possibilitar a utilização de uma maior quantidade de dados (e.g. maior

detalhe no domínio) avaliação da Expansibilidade

A minimização do tempo de processamento não é sinónimo de execução de um menor número de instruções, como nos computadores sequenciais. No entanto, o ganho conseguido compensará as instruções adicionais.

Embora seja útil medir a capacidade em Mflops/s de um computador paralelo, esse valor por si só é insuficiente para avaliar o desempenho de um algoritmo num computador.

Speedup

• Speedup: razão entre o tempo de processamento sequencial e paralelo.

Várias formas de Speedup:1. Relativo: Tseq é obtido usando o código paralelo com um processador

da máquina paralela.2. Real: Tseq é obtido executando o programa sequencial mais eficiente

num nó da máquina paralela.3. Absoluto: Tseq é obtido executando o programa sequencial mais

eficiente na máquina sequencial mais rápida existente.

Speedup Observado: obtido por medidas reais da execução do programaSpeedup Analítico: obtido por análise da complexidade temporal

Paralelo

seq

TT

Speedup =

Speedup

Considerações na avaliação de Speedup:– Um só processador poderá não ter memória suficiente para executar o

programa quando se resolvem problemas de grande dimensão.

– No Speedup real e relativo, a utilização de processadores mais lentos favorece o valor de Speedup, bem como código menos eficiente. Deve ser sempre referido o tempo de execução paralelo.

Eficiência

• A eficiência mede a taxa de utilização dos processadores na execução do programa paralelo. É igual à razão entre o Speedup e o número de processadores utilizado.

PSpeedupE =

• A eficiência apresenta valores entre 0 e 1, e reflecte a qualidade da paralelização.

Speedup Superlinear

• Em algumas situações podemos obter um valor de Speedup superior a P, o número de processadores utilizados. E consequentemente uma Eficiênciasuperior a 1.

– Este comportamento deve-se ao facto de ao dividir o domínio pelos vários processadores, cada um deles precisar de menor quantidade de memória (essencialmente cache e primária). O computador sequencial poderá ter de utilizar com maior frequência memória secundária, aumentando consideravelmente o tempo de processamento.

– Se na versão paralela o ganho devido à gestão de memória feita pelo S.O. for superior aos tempos de comunicação e gestão de paralelismo, então poder-se-áobter desempenho superlinear.

0123456789

10

1 2 3 4 5 6 7 8

LinearSuperlinearNormal

Medidas de Expansibilidade

• Permite avaliar a adaptabilidade do conjunto algoritmo-máquina para resolver problemas de maior dimensão.

• Em muitos casos, mantendo P fixo e aumentando n, a eficiência aumenta até ao valor máximo 1. Devido à maior taxa de crescimento do trabalho paralelo, associado a n, em relação à componente sequencial mais dependente da máquina.

Sistema Expansível: se é possível manter a eficiência constante, entre 0 e 1, com o aumento de P e de n.

ou atendendo à definição de Eficiência:Um algoritmo paralelo é designado de escalável/expansível se a sua eficiência depender do tamanho do problema e do número de processadores apenas pelo seu rácio.

Análise de Expansibilidade: exemplo

Para a operação de convolução apresentada anteriormente:

SPn).n.ß (P-k.L

SnS

.1812

/182

2

++=

9)(

181

1

.1812

18

2

2

2

2

βn

PPkLnP

SPn).n.ß (P-k.L

PSn

PSE

−++

=++

==

A paralelização obtida não é escalável devido às comunicações iniciais. Este factor não tende para zero.

Se tivermos um switch podemos tornar o programa escalável ?

Análise de Expansibilidade: exemplo

1 2

Com um switch podemos ter comunicações paralelas entre diferentes computadores. Neste caso as comunicações são agora de 2 mensagem em 2 períodos de comunicação. A contabilização 2(P-1) passa para 4.

92

181

1

nPkL

nPP

SE++

==

A solução algoritmo-máquina com switch éescalável.

Medidas de Expansibilidade

• Scaled Speedup

• Função de Isoeficiência

Medidas de Expansibilidade: Scaled Speedup

• A medida scaled speedup é sugerida por Gustafson, para obter uma medida de speedup mais realista atendendo a que num único computador não é possível obter o tempo sequencial por limitações de tempo e memória.

Se T’P for o tempo de processamento da componente paralela quando são usados P processadores, então o tempo que levaria um computador sequencial seria de TS+P.T’P.

Esta medida tem por base o facto de em alguns algoritmos a componente sequencial não aumentar com a dimensão do problema.

'

'.

PS

PS

TTTPTdupScaledSpee

++

=

Medidas de Expansibilidade: Função de Isoeficiência

• A suposição de que a componente se mantém constante com o crescimento de P e n, só é válida para alguns casos algoritmo-máquina, não traduzindo os casos de máquinas de memória distribuída programadas com o modelo passagem de mensagens.

Função de IsoeficiênciaDescreve a taxa de crescimento de n em relação a P que mantém a eficiência constante.

Taxa de n em relação a P pequena (e.g. linear): sistema com factor de expansibilidade alto.

Taxa de n em relação a P alta (e.g. exponencial): sistema com factor de expansibilidade baixo. Significa que é necessário um aumento significativo de n em relação a P para se manter a eficiência constante.

Medidas de Expansibilidade: Curvas de Isogranularidade

Nos sistemas com factor de expansibilidade baixo, a determinação da função de Isoeficiência é pouco prática devido aos elevados tempos de computação.

Em alternativa, determinam-se as Curvas de Isogranularidade que mostram a variação na capacidade da máquina quando se mantém constante o trabalho (granularidade) realizado por cada processador.

0

100200

300

400

500600

700

1 2 3 4 5 6Processadores

M fl

op/s

G1=90K

G2=160K

G3=250K0

100200300400500600700800

1 2 3 4 5 6Processadores

M fl

op/s

QR

TRD

LU

LU2

Correlação de matrizes160K, 250K p/LU2