Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf ·...

56
Exercícios (Ian Foster’s Book) 1) If today's workstations execute at operations per second, and performance increases at a rate of 25 percent per year, how long will it be before we have workstations capable of operations per second? 2) A climate model requires floating point operations for a ten-year simulation. How long would this computation take at floating point operations per second (10 Mflops)? 3) A climate model generates bytes of data in a ten-day simulation. How fast must data be transferred to secondary storage? What transfer rate is required if we are to search this data in ten minutes?

Transcript of Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf ·...

Page 1: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Exercícios (Ian Foster’s Book)

1)  If today's workstations execute at operations per second, and performance increases at a rate of 25 percent per year, how long will it be before we have workstations capable of operations per second?

2)  A climate model requires floating point operations for a ten-year simulation. How long would this computation take at floating point operations per second (10 Mflops)?

3)  A climate model generates bytes of data in a ten-day simulation. How fast must data be transferred to secondary storage? What transfer rate is required if we are to search this data in ten minutes?

Page 2: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Aspectos Explorados pelo Modelo

O modelo deve ser capaz de oferecer facilidades tais que seja fácil:

  Decompor o programa em tarefas paralelas

  Mapear as tarefas nos processadores físicos

–  custo de comunicação

–  heterogeneidade dos processadores

  Sincronização entre tarefas: é preciso ter conhecimento do estado global da estrutura de execução do programa (quando é necessário sincronizar?)

Page 3: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Abstraindo para Programar

  Maior facilidade de programação: o esforço intelectual é reduzido quando nos concentrarmos em "uma coisa de cada vez”

  duas dimensões:

–  dimensão espacial

–  dimensão temporal

Page 4: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Dimensão Espacial

  A cada momento, conjuntos de tarefas independentes são implementadas –  cada tarefa ou processador não sabe o que acontecerá "a seguir"

  detalhamento de informações globais levam a uma programação difícil

Dimensão Temporal

  programas são composições de ações seqüenciais que preenchem o sistema computacional como um todo:

  pode-se definir com maior conhecimento o que vai acontecer a seguir

Page 5: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Níveis de Paralelismo

Dependendo do nível considerado, a exploração do paralelismo é diferente

  nível de aplicações ou fases de aplicações   a nível de tarefas   a nível de instruções - a execução da instrução necessita da busca, análise e

execução propriamente dita   dentro dos circuitos aritméticos

Page 6: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Algoritmos

  Quando queremos resolver um problema computacionalmente, temos que analisar a complexidade deste. No domínio seqüencial, se procura definir um algoritmo que resolva o problema em tempo mínimo.

  Mas quando se tratando de algoritmos paralelos, mais um parâmetro –  número de processadores –  operações independentes devem ser executadas em paralelo.

  qual o tamanho dos processos? noção de granulosidade (granularity) –  a razão entre o tempo de computação necessário para executar

uma tarefa e a sobrecarga de comunicação durante essa computação.

Page 7: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Modelos de Computação

Modelo de Computação Seqüencial: von Neumann   plataforma base para que usuários e projetistas

–  complexidade de tempo do pior caso: tempo máximo que o algoritmo pode levar para executar qualquer entrada com n elementos

–  complexidade de tempo esperado: complexidade média –  critério de custo uniforme: qualquer instrução RAM leva uma unidade

de tempo para ser executada e também o acesso a registradores Modelo de Computação Paralela   O desempenho do programa paralelo depende de certos fatores

dependentes da máquina: –  grau de concorrência; –  escalonamento e alocação de processadores; –  comunicação e sincronização.

Page 8: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Modelo PRAM – modelo ideal

  conjunto de p processadores operando sincronamente sob o controle de um único relógio, compartilhando um espaço global de memória

  algoritmos desenvolvidos para este modelo geralmente são do tipo SIMD –  todos os processadores executam o mesmo conjunto de instruções,

e ainda a cada unidade de tempo, todos os processadores estão executando a mesma instrução mas usando dados diferentes.

Page 9: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Modelo PRAM – modelo ideal

  propriedades chaves: –  execução síncrona sem nenhum custo adicional para a

sincronização –  comunicação realizada em uma unidade de tempo, qualquer que

seja a célula de memória acessada –  comunicação é feita usando a memória global

Page 10: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Passo do algoritmo PRAM

  fase de leitura: os processadores acessam simultaneamente locais de memória para leitura. Cada processador acessa no máximo uma posição de memória e armazena o dado lido em sua memória local

  fase de computação: os processadores executam operações aritméticas básicas com seus dados locais

  fase de gravação: os processadores acessam simultaneamente locais de memória global para escrita. Cada processador acessa no máximo uma posição de memória e grava um certo dado que está armazenado localmente

Page 11: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Modelo PRAM

  análise e estudo de algoritmos paralelos

  definição de paradigma de programação paralela

  avaliação do desempenho desses algoritmos independentemente das máquinas paralelas

  se o desempenho de um algoritmo paralelo para o modelo PRAM não é satisfatório, então não tem sentido implementá-lo em qualquer que seja a máquina paralela

  se eficiente, no entanto, podemos simulá-lo em uma máquina real : simulação deve ser eficiente

Page 12: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Padrões de Acesso no Modelo PRAM

  Exclusive Read (ER): vários processadores não podem ler ao mesmo tempo no mesmo local

  Exclusive Write (EW): vários processadores não pode escrever no mesmo local de memória

  Concurrent Read (CR): vários processadores podem ler ao mesmo tempo o mesmo local de memória

  Concurrent Write (CW): vários processadores podem escrever no mesmo local de memória ao mesmo tempo

Combinações são usadas para formar as variantes do PRAM: EREW, CREW, ERCW e CRCW

Page 13: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Prioridades do CRCW

Para resolver conflitos no caso de vários processadores tentarem escrever ao mesmo tempo no mesmo local de memória global:

Comum - vários processadores concorrem a escrita no mesmo local de memória global durante o mesmo instante de relógio - todos devem escrever o mesmo valor;

Arbitrário - dentre os vários processadores, um é selecionado arbitrariamente e seu valor armazenado no local de memória disputado;

Prioridade - dentre os vários processadores, aquele com o menor índice é escolhido para escrever o seu valor no local concorrido.

Page 14: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Memória Global

P1 P2 P3 P4 Pn

Page 15: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Comunicação em uma máquina PRAM

  Comunicação através da memória global: Pi quer passar x para Pj

–  Pi escreve x em um local de memória global em um determinado passo

–  Pj pode acessar o dado naquele local no próximo passo

Page 16: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

d1 d1

Memória compartilhada

P1 P2

d2

P3

d3

Pn

dn

Passo 1: cada processador realiza sua computação

Page 17: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

d1 d1

Memória compartilhada

P1 P2

d2

P3

d3

Pn

dn

Passo 1: P1 escreve na memória

d1

Page 18: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Observações

  os processadores operam sincronamente: a cada passo, todas os processadores executam a mesma instrução sobre dados distintos

  uma instrução pode ser simplesmente uma operação aritmética ou uma comparação de dois números

  processadores ativos: somente um subconjunto de processadores executem uma instrução e processadores restantes ficam ociosos/inativos

Page 19: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Exemplo V ⇒ vetor com n elementos. x ⇒ um dado valor

Problema: x ∈ V ? Ambiente: P processadores tipo EREW PRAM

Analisando o problema:

  todos os processadores tem que saber o valor de x   não podem acessar a célula de x simultaneamente   depois, cada processador tem que olhar os elementos de V   sinalização da localização do valor x no vetor V

Page 20: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Solução

  todos os processadores devem saber sobre x: broadcasting ou difusão

  Pior caso deste procedimento log2 P passos –  P1 acessa a memória global: –  P2 comunica com P1 ou seja, de alguma forma, P1 informa x para

P2 –  P1 e P2 informam x para P3 e P4 –  assim por diante

  processadores não têm permissão de acesso simultâneo ⇒ gravam x em lugares distintos: Mi é um dos P locais de memória global

  Um vetor M auxiliar é utilizado

Page 21: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Solução do broadcasting (leitura)

  P1 lê x   P1 escreve x em M1

  P2 lê M1   P2 escreve em M2

  P3 e P4 lêem M1 e M2

  P3 e P4 escrevem em M3 e M4

  P5, P6, P7 e P8 lêem M1, M2, M3 e M4

  P5, P6, P7 e P8 escrevem M5, M6, M7 e M8

  e assim por diante

a cada passo: duas vezes o número de processadores ativos do passo anterior podem ler e escrever ⇒ log P passos

Page 22: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

broadcasting

P1 lê de x;

P1 escreve em M[1]; Para h:= 1 até log P faça {

se 2h-1 < i ≤ 2h então {

Pi lê de M[i - 2h-1]; Pi escreve em M[i];

}

}

Page 23: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

x x x

Memória compartilhada

P1

x

PASSO 1

x

P2

x

x

x

x

x

P3

x

P4

x x

P5 P6 P7 P8

x x

x x

PASSO 2 PASSO 3 PASSO 4

M1 M2 M3 M4 M5 M6 M7 M8

Page 24: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

A Procura

  o vetor V é divido em P pedaços: S1, S2, …, SP –  Pi procura por x em Si –  pior caso: n/P passos

Total: log P + n/P passos, no pior caso

  Como o algoritmo poderia ser melhorado?? –  Definição de uma variável Achou

  Com computador mais poderoso ⇒ algoritmo mais rápido.

Page 25: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

PRAM mais poderoso: CREW PRAM   para achar x, o algoritmo executa n/P passos   leituras concorrentes são permitidas

–  todos os processadores podem acessar x em um passo –  todos os processadores podem consultar Achou em um passo –  mas ao encontrar, o processador tem que atualizar Achou

  Quantos passos nas seguintes situações? –  somente um dos elementos tem valor x –  x pode ser um valor repetido em V

•  mais de um processador pode atualizar Achou simultaneamente.

Page 26: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Relações entre Modelos

  EREW PRAM ⇒ mais fraco

  CREW PRAM ⇒ pode executar EREW na mesma quantidade de tempo –  simplesmente leituras concorrentes não são feitas

  CRCW PRAM ⇒ pode executar EREW na mesma quantidade de tempo –  simplesmente leituras concorrentes não são feitas

Page 27: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Simulando Múltiplos Acessos em EREW

  um só processador pode acessar a um local de memória a em um determinado instante

  o modelo é bastante flexível –  pode ser executado em qualquer outra PRAM –  permite a simulação de múltiplos acessos mesmo que o espaço de

armazenamento aumente ou o tempo de execução aumente

Page 28: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Simulando Múltiplos Acessos em EREW

  Por que a simulação? O simulação pode ser necessária caso uma das razões aconteça: –  se os computadores paralelos disponíveis são do tipo EREW -

então executar algoritmos tipo: CREW e CRCW através de simulação

–  para computadores paralelos com um grande número de processadores:

•  o número de processadores que podem acessar a um mesmo local de memória simultaneamente é limitado

Page 29: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Simulando CW comum em um EREW

  N acessos simultâneos por um EREW PRAM por N processos no mesmo local –  leituras simultâneas: valor difundido, conforme já descrito: log N

passos –  escritas simultâneas: procedimento simétrico à difusão

CW comum:   todos processadores podem escrever no mesmo local de memória global

se o valor for o mesmo.   Suponha que Pi queira escrever o valor ai (1≤ i ≤ N)   variável auxiliar para cada processador Pi : bi

Page 30: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Simulando CW comum em um EREW

!  ???? !  É que vamos chamar de redução: comparamos vários para chegar a

uma resposta !  Precisamos de uma variável auxiliar?

Page 31: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Modelos Fortes e Fracos   O que quer dizer mais forte? Se um algoritmo é simulado em um modelo

mais fraco, o número de passos pode aumentar

CR ⇒ N leituras podem ser feitas concorrentemente ER ⇒ uma leitura é feita por mais de uma passo

  [EcKstein,1979][Vishkin,1983] p processadores CRCW com prioridade, é simulado por um EREW PRAM com complexidade de tempo aumentado por um fator Θ (log p).

  em um CRCW com prioridade, os acessos simultâneos seria imediatos, mas não no EREW

Page 32: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Algoritmos PRAM

  para um problema: se um algoritmo PRAM tem complexidade de tempo menor que a do algoritmo seqüencial ótimo, então o paralelismo pode ser usado

  Como iniciar um algoritmo PRAM: ativar os P processadores que farão parte da computação –  os processadores serem ativados um a um –  através do algoritmo de difusão: log P passos

  depois da ativação, o algoritmo paralelo pode ser executado

Page 33: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Identificando Paralelismo

  paradigmas de computação paralela

  algoritmos aqui falados consideram o modelo PRAM. Exemplos:

Árvore Binária: o fluxo de dados (e controle) se dá da raiz até as folhas –  Difusão: a partir de um processador, o fluxo (controle ou dados)

passa para dois processadores e assim, dobrando a cada iteração. –  Divisão e Conquista: um problema é subdividido em subproblemas

cada vez menores

ou contrário, das folhas até a raíz: –  Redução: dado n valores, a operação X é uma binária associativa

Page 34: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Redução: Soma

soma de n elementos: A = < 4, 3, 8, 2, 9, 1, 0, 5, 6, 3, 10, 2, 4, 7, 11, 3>

Soma_PRAM_Pi (){

Para ( 1≤ h ≤ log n ⎤ ) faça

se ( i ≤ ⎡n/2h ⎤ ) faça

A[i] := A[2i] + A[2i -1];

}

A[i] := A[2i] + A[2i -1]; ⇒ leitura: A[2i] e A[2i -1]; computa: A[2i] + A[2i -1];

escreve: A[i]

Page 35: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

3 4

P1 P2 P3 P4 P5 P6 P7 P8

4 3 8 2 9 1 0 5 6 3 10 2 4 7 11 3

Memória compartilhada

8 2 9 1 0 5

7 7 10 10

6 3 10 2 4 7 11 3 9

10 10 5 5 9 9 12 12 11 11 14 14

7 10 10 5

25

12 11 14

17 15 21 17 15 21 25

17 15 21 25

32 46 32 46

32 46

78 78

Page 36: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula
Page 37: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Redução: Soma

  primeiro loop: não há necessidade de mais do que ⎡n/2 ⎤ processadores

  processadores acessam dois locais de memória simultaneamente, mas distintos

  processadores escrevem em um local de memória (cada) simultaneamente, mas distintos

  para somar, log n iterações são necessárias, cada uma tem tempo constante

Complexidade do Algoritmo: O ( log n) com O ( ⎡n/2 ⎤ ) processadores

Page 38: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Exercícios

  Capitulo I do Jájá   exercícios 1.5 e 1.8

Page 39: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Noções de Complexidade

  Existem algoritmos PRAM cuja complexidade de tempo é menor do que o algoritmo correspondente seqüencial ótimo, mas podem desempenhar mais operações do que o seqüencial

  Complexidade de tempo do pior caso em função do tamanho da entrada. Cada passo corresponde: –  uma fase de computação –  uma fase de comunicação

  é importante especificar –  o número máximo de processadores usados, como função da

entrada –  o modelo arquitetural sendo usado

Page 40: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Noções de Complexidade

Paralelismo Limitado

  algoritmo p-paralelo se implementado em um modelo com p processadores, fixo

  T(n) e P(n): o tempo de execução e a quantidade de processadores do algoritmo paralelo

  se o número de passos é T(n) considerando p processadores, então esse algoritmo é p computável neste tempo

  se T(n) é polinomial e p é limitado superiormente por polinômio, então o número de processadores é limitado polinomialmente, senão, ilimitado

Page 41: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Algumas Definições

Custo do Algoritmo Paralelo   produto tempo-processador T(n) × P(n)

–  ignora ociosidade de processador

  Algoritmo paralelo de custo ótimo: Ts = T(n) × P(n)

–  Ts o tempo de execução do melhor algoritmo seqüencial

  p < P(n) processadores: cada processador executa sequencialmente o que P(n)/ p processadores executam –  T(n) × P(n)/p unidades de tempo

A - algoritmo paralelo n - o tamanho da entrada

Page 42: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Algumas Definições

Speedup , dado o número de processadores p

  Se o S(A(n),p) é linear então todos os processadores são efetivamente utilizados –  difícil de ser alcançado devido a natureza dos algoritmos e do

ambiente computacional paralelo

–  difícil decompor o algoritmo em tarefas completamente independentes, onde cada tarefa leva Ts /p unidades de tempo para ser executada

Page 43: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Algumas Definições

Eficiência do algoritmo paralelo

  razão entre S(A(n),p) e o número de processadores p E(A(n),p) = S(A(n),p)/p

–  mostra como os processadores são efetivamente utilizados: quanto maior, melhor a utilização de cada processador

  se E(A(n),p) = 1 o algoritmo paralelo é de custo ótimo (por que?)

Page 44: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Algumas Definições

Eficiência do algoritmo paralelo

  razão entre S(A(n),p) e o número de processadores p E(A(n),p) = S(A(n),p)/p

–  mostra como os processadores são efetivamente utilizados: quanto maior, melhor a utilização de cada processador

  se E(A(n),p) = 1 o algoritmo paralelo é de custo ótimo (por que?)   E(A(n),p) = S(A(n),p)/p   E(A(n),p) = (Ts/Tp)/p " sendo de custo ótimo, Ts = Tp × p , então:   E(A(n),p) = (Tp × p /Tp)/p = 1

Page 45: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Algumas Definições

Trabalho de um Algoritmo Paralelo

  um algoritmo é descrito como uma seqüência de unidades de tempo, onde em cada unidade um conjunto de instruções concorrentes

  trabalho de um algoritmo paralelo é o número total de operações executadas, não incluindo os tempos ociosos de certos processadores

  são somadas, a cada unidade de tempo, o número de operações concorrentes podem estar sendo executadas

Page 46: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Exemplo: soma de n elementos   T(n) e P(n): n/2 processadores executam em O(log n) unidades de

tempo   Custo de O(n log n) em O(log n) unidades de tempo

  Usando p < P(n) processadores: O(n log n/p)

•  1a unidade de tempo - n/2 operações (somas em paralelo)

•  2a unidade de tempo - n/4 operações (somas em paralelo)

•  3a unidade de tempo - n/8 operações (somas em paralelo)

•  j-ésima unidade de tempo - n/2j operações

  Total de operações: ∑O(log n) n/2j = O(n)

..............

Page 47: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Reduzindo o número de processadores

Princípio de Brent

“  Qualquer algoritmo paralelo com complexidade de tempo T(n) usando um número suficientemente grande de processadores e que ainda consistindo de O(e) operações elementares, pode ser implementado em p processadores com complexidade de tempo

O( ⎡e/p⎤ + T(n))

Prova??

Page 48: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

P2 Pp P1

. . . . . .

Total de Operações: e Total de Processadores: p

Unidade de

Tempo

1

2

3

4

.

.

.

T(n)

Número de

Operações

e1

e2

e3

e4

.

.

.

eT

Pk

Tempo Total

Page 49: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Fixando o número de processadores: soma de n elementos

Seja um modelo PRAM com p = 2q ≤ n = 2k processadores: P1,..., Pp

  proponha um algoritmo paralelo para p processadores

Page 50: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Fixando o número de processadores: soma de n elementos

Seja um modelo PRAM com p = 2q ≤ n = 2k processadores: P1,..., Pp   Seja l = n/p = 2s é responsável por A[l(s - 1) + 1] , …. , A[ls]   cada elemento é um vértice de uma árvore binária   o número de computações concorrentes corresponde ao número de

vértices em cada nível dividido pelos processadores disponíveis

Análise do Algoritmo   Seja o algoritmo em que n elementos são somados usando p

processadores (Obs.: O algoritmo só considera o trabalho de um dado processador Ps:

  primeiro passo: O(n/p) unidades de tempo   segundo passo?

Page 51: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Soma de n Elementos (JáJá) – algoritmo do processador Ps Soma_Paralela_Ps ( A, p ){

for j =1 to l do /* l = n/p */

B(l(s - 1) + j): =A(l(s - 1) + j);

for h = 1 to log n do

if (k - h - q ≥ 0) then

for j = 2k-h-q(s - 1) + 1 to 2k-h-q s do

B(j): = B(2j - 1) + B(2j);

else if (s ≤ 2k-h) then

B(s): = B(2s - 1) + B(2s);

if (s = l) then S: = B(1);

}

Page 52: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

O que acontece com N = 8 e p = 2? (passo a passo) Soma_Paralela_Ps ( A, p ){

for j =1 to l do /* l = n/p */

B(l(s - 1) + j): =A(l(s - 1) + j);

for h = 1 to log n do

if (k - h - q ≥ 0) then

for j = 2k-h-q(s - 1) + 1 to 2k-h-q s do

B(j): = B(2j - 1) + B(2j);

else if (s ≤ 2k-h) then

B(s): = B(2s - 1) + B(2s);

if (s = l) then S: = B(1);

}

Page 53: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

P3 P2

0

P4

0 11

11

P1

Memória compartilhada

3 2 1 5 3 2 7 3 8 10 11 9 4 4 6 4 3 8 2 9 1 5 6 3 10 2 4 7 11 3

7

10

10

5

9

12

11

14

7

10

10

5

9

12 14

7 10 10 5 9 12 14

17 15 21 25 17 15 21 25

17 15 21 25

32 46

32 46

32 46

78 78

Page 54: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Modelando soma paralela de n números

+

+ + + + + + + +

+ + + +

+ +

Page 55: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Perguntas:

  qual o número de operações?   qual o trabalho?   qual o custo   complexidade?   tipo do PRAM?   teria alguma outra versão com um menor de trabalho ou custo?   qual o número de comunicações?

1  Responda as perguntas considerando as duas versões discutidas na sala de aula

2  especificar o pseudo-algoritmo da segunda versão discutida.

Page 56: Exercícios (Ian Foster’s Book) - ic.uff.brboeres/slides_AP/AlgParalelosPRAM.pdf · sincronização – comunicação realizada em uma unidade de tempo, qualquer que seja a célula

Implementação I – soma de n números

  através de threads, implementar a soma de n números   - em um número qualquer de processadores   - em um número fixo de processadores

  vantagens e desvantagens?