Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos...

38
Definindo melhor alguns conceitos Processamento Paralelo : processamento de informação concorrente que pertencem a um ou mais processos que resolvem um único problema. Processamento Distribuído : processamento de informações em um sistema cujos recursos estão sendo compartilhados por vários programas Computador Paralelo : computador de múltiplos processadores capaz de realizar processamento paralelo Supercomputador : computador de propósito geral capaz de resolver problemas em alta velocidade, comparando com outras máquinas da mesma época.

Transcript of Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos...

Page 1: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Definindo melhor alguns conceitos

  Processamento Paralelo: processamento de informação concorrente que pertencem a um ou mais processos que resolvem um único problema.

  Processamento Distribuído: processamento de informações em um sistema cujos recursos estão sendo compartilhados por vários programas

  Computador Paralelo: computador de múltiplos processadores capaz de realizar processamento paralelo

  Supercomputador: computador de propósito geral capaz de resolver problemas em alta velocidade, comparando com outras máquinas da mesma época.

Page 2: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

  A vazão de um dispositivo é o número de resultados produzidos por unidade de tempo. (throughtput)

  Speedup (aceleração): razão entre o tempo de execução necessário para o algoritmo seqüencial mais eficiente e o tempo necessário para se realizar a mesma computação numa máquina paralela

  Existem diversas definições de speedup: –  speedup absoluto(n)= T(melhor alg. seq. )/ T( prog // c/ n proc.) –  speedup aproximado(n)= T(prog.// c/1 proc.)/T( prog // c/ n proc.) –  speedup relativo (n)= T(prog. // c/(n-1) proc.)/T(prog.// c/ n proc.)

Terminologia

Page 3: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Computação concorrente

  Duas formas de se explorar a concorrência em computação em computação –  Paralelismo de controle e de dados

tempo t

7 + 3 string ==“casa”? 32 * 14 7 + 3 10 + 200 33 + 329

Page 4: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Paralelismo de Controle

  aplicando-se operações diferentes a diferentes dados simultaneamente. –  fluxo de dados entre processos pode ser arbitrariamente complexo

  Exemplo:

–  Pipelining: cada estágio trabalha em velocidade plena sobre uma parte particular da computação. A saída de um estágio é a entrada do estágio seguinte

Page 5: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Paralelismo de Controle

tempo

info 1

E4 E1 E2 E3

info 2 info 1

info 3 info 1 info 2

info 3 info 4 info 1 info 2

Page 6: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Paralelismo de Dados

  uso de vários processadores para executar a mesma operação ao mesmo tempo sobre elementos distintos de dados

  Um aumento de k vezes no número de unidades funcionais levaria a um aumento de k vezes a vazão do sistema

7 + 3 10 + 200 33 + 329

Page 7: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Aplicações

  Aplicações ou programas podem ser executados mais rapidamente, considerando duas formas de paralelismo

–  tratar o programa seqüencial como uma série de tarefas –  cada tarefa = uma instrução ou blocos de instruções

OU

–  especificar um programa paralelo, que resolve o problema através da especificação de tarefas ou processos concorrentes

Page 8: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Exploração de paralelismo

  Particionamento –  identificar em um programa, as tarefas que possam ser executadas em

paralelo (simultaneamente em mais de um processador)

•  caso extremo: cada linha do programa correspondendo a uma tarefa

um bom desempenho só é alcançado se um número máximo de comandos são executados simultaneamente

  É preciso considerar dependências de dados

problema: se quase todos os comandos são dependentes

Page 9: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Exemplo: programa seqüencial ! paralelismo de instruções

program nothing(){ input (A,B,C); if A>B then {

C=A-B; output (C); } else {

C = B-A; output (A,B,C) } A=0; B=1; for i=1 to 3 { input(C); A=A+C; B=B*C; } output (A,B,C);

}

Page 10: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Exemplo

Tarefa T1

input (A,B,C);

if A>B then{

C=A-B; output (C);

}else{

C = B-A; output (A,B,C)

}

Tarefa T3 B=1;

Tarefa T4 for i=1 to 3 { input(C); A=A+C; B=B*C; } output (A,B,C)

Tarefa T2 A = 0;

Page 11: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Exemplo

T1 T3 T2

T4 16

1 1

4

Page 12: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Exemplo: Soma n números

Problema: somar n números quaisquer

Programa seqüencial:

read (n, vetor);

soma = 0;

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

soma = soma + vetor[i];

Como paralelizar o problema?

Page 13: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Modelando soma paralela de n números

+

+ + + + + + + +

+ + + +

+ +

Page 14: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

1a.14

Speedup Factor

where ts is execution time on a single processor and tp is execution time on a multiprocessor.

S(p) gives increase in speed by using multiprocessor.

Typically use best sequential algorithm with single processor system. Underlying algorithm for parallel implementation might be (and is usually) different.

S(p) = Execution time using one processor (best sequential algorithm)

Execution time using a multiprocessor with p processors

ts

tp =

Page 15: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

1a.15

Speedup factor can also be cast in terms of computational steps:

S(p) = Number of computational steps using one processor

Number of parallel computational steps with p processors

Speedup Factor

Page 16: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

1a.16

Maximum Speedup speedup máximo usualmente p com p processadores (linear speedup).

Suponha que o melhor algoritmo sequencial tenha tempo Ts Se S(p) = Ts ⁄ Tp > p

então podemos usar o algoritmo paralelo em um processador e seu tempo seria p × Tp

Se S(p) < P pois o algoritmo sequencial tem tempo menor que p × Tp,

Page 17: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

1a.17

Superlinear Speedup

superlinear speedup: maior que p Possível, devido a razões como:

–  tem mais memória em sistemas multiprocessados –  algoritmos não determinísticos

Page 18: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

1a.18

Maximum Speedup - Amdahl’s law

Serial section Parallelizable sections (a) One processor

(b) Multiple processors

ft s (1 - f ) t s

t s

(1 - f ) t s / p t p

p processors

The speedup using multiple processors is limited by the time needed for the sequential fraction of the program

Page 19: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

1a.19

Let •  f = proportion of a program that can be totally

parallelized –  (1 − f) is the proportion that remains serial

•  Then the maximum speedup that can be achieved by using P processors is

•  Amdahl used this argument to support the design of ultra-high speed single processor systems in the 1960s. (reflete monoprocessadores)

1 (1-f)+ f/P

Amdahl’s law

Sp (P) =

Page 20: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Gustafson’s law

!  Gustafon’s Law - 1988 Tipicamente, o grande interesse não é executar um problema no menor período de tempo (o que advoga Amdahl), mas resolver problema de grandes dimensões em um tempo razoável

!  A parte não paralelizável não deve ser fixa, mas um percentual de acordo com a dimensão do problema. Se essa parte paralelizável cresce pouco com o aumento da instância, é possível escalar o speedup com o aumento de processadores.

1a.20

Page 21: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Gustafson’s law

f ’ = fraction computed sequentially 1 – f ’ = parallel fraction

Gustafson’s so-called scaled speedup fraction

1a.21

S’(p) = p + (1 – p) f ’

Page 22: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Para pensar/pesquisar

•  Dê exemplo e discuta as reais diferenças entre

Amdahl’s e Gustafson’s Law

•  O que cada uma quer realmente representar?

Page 23: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Terminologias

•  Um algoritmo é escalável se o nível de paralelismo aumenta no mínimo linearmente com o tamanho do problema.

•  Uma arquitetura é dita escalável se continua a alcançar o mesmo desempenho por processador, mesmo para problemas maiores, com o aumento de processadores.

–  Se aplicável, o usuário pode resolver problemas maiores no mesmo intervalo de tempo através da compra de uma máquina paralela com maiores dimensões

  Algoritmos paralelos-de-dados são mais escaláveis do que algoritmos com paralelismo de controle –  o nível de paralelismo de controle é geralmente constante, independente do

tamanho do problema, enquanto o nível do paralelismo de dados é uma função crescente do tamanho do problema

Page 24: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Convergência entre Computação Paralela & Distribuída

•  Existia uma grande dificuldade de manter máquinas paralelas a frente aos projetos de chip-único –  Computadores paralelos se tornaram mais difíceis de se construir e se usar do

que se esperava.

  Motivo desta dificuldade: software

⇓Paralelizar e gerenciar algoritmos paralelos não é uma tarefa fácil

Page 25: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Programação Paralela

•  No início dos anos 90: processamento paralelo foi retomado.

•  O problema de programação paralela seria bem mais difícil de atacar do que se imaginava.

•  Pesquisa na área de programação em paralelo tem sido um tópico importante.

Mas ao mesmo tempo....

Page 26: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Internet

•  Enquanto muitos estudavam processamento paralelo associado processadores ligados internamente em uma máquina, um outro grupo se concentrava em paralelismo externo através de redes de computadores

•  a internet possibilitou a especificação de um tipo de paralelismo através de uma conexões entre processadores

Page 27: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Sistema Paralelo e Distribuído

  processamento distribuído renasceu como uma forma de paralelismo mais lenta

  computação distribuída e paralela são dois extremos num espectro de computação concorrente

  Sistema paralelo e distribuído é uma coleção de componentes de hardware e software que otimizam o desempenho por problema, vazão de múltiplos problemas e confiabilidade, ou uma combinação destes

Page 28: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Sistema Paralelo e Distribuído

•  Problemas: a aglomeração de muitos processadores através de canais de comunicação: o desempenho pode cair muito.

•  Para alcançar o máximo dos sistemas paralelos e distribuídos: projetistas e desenvolvedores de software precisam compreender a interação entre hardware e software

Page 29: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Sistema Paralelo e Distribuído

  computação distribuída é mais abrangente e universal do que computação paralela

  Paralelismo - forma restrita de computação distribuída

  sistema paralelo : voltado à solução de um problema único no menor tempo possível (otimização)

  Computação distribuída é mais geral e reúne outras formas de otimização...

Page 30: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Paralelismo é interessante ?

Na natureza, os eventos ocorrem em paralelo

  programação seqüencial ordena eventos paralelos   essa ordenação dificulta a trabalho do compilador   mas, maior desempenho com o uso de paralelismo

–  no entanto, não é trivial atingir alto desempenho em computadores paralelos

  aplicações como os Grandes Desafios são limitados computacionalmente

Page 31: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Investindo em paralelismo

Dificuldades encontradas

  pensar em paralelo é difícil

  conhecimento em paralelismo é recente

  pouco conhecimento sobre representações abstratas de computações paralelas

Page 32: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Investindo em paralelismo

Em relação a características da máquina

  Relação entre a velocidade do processador –  Elementos de processamento heterogêneos

  Desempenho da interconexão de comunicação –  Latência de comunicação –  Congestionamento –  Topologia da rede

  Hierarquia de memória

  Tendência hoje:

–  memória compartilhada distribuída

–  superprocessadores distribuídos

Page 33: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Quais características importantes das aplicações ?

  Processos/tarefas

  existe comunicação entre essas tarefas –  pode ser vantajoso executar várias tarefas em um só processador –  a tarefa perde o processador quando precisa de um dado a ser

comunicado

  paralelismo virtual X real –  Por exemplo: existem 100 processadores disponíveis –  cada processador pode estar executando vários processos: virtualmente

existem um total de 300 processos

Page 34: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Quais características importantes das aplicações ?

  difícil definir processos/tarefas totalmente independentes –  comunicação entre processos pode gerar um tráfego de mensagens

pesado

  comunicação entre processos: –  troca de mensagens: considera a topologia da rede de interconexão –  memória compartilhada: utilização de semáforos para proteção de

regiões críticas –  direct remote-memory access: existência de processadores dedicados à

comunicação

Page 35: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Modelos de Computação Paralela

  interface - uma máquina abstrata

  a abstração se faz necessária para facilitar a programação sem se preocupar com detalhes da máquina –  um modelo deve ser estável para ser um padrão

  um modelo contém os aspectos importantes tanto para os projetistas de software quanto para os da máquina

  as decisões de implementações são feitas para cada máquina destino, não havendo necessidade de se refazer programas

Page 36: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Aspectos Explorados pelo Modelo

Independência da arquitetura

Fácil entendimento

Page 37: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Aspectos Explorados pelo Modelo

Facilidade de programação

  O programador não deve se preocupar com detalhes da máquina destino –  modelos abstratos: programação mais fácil

  O compilador é que deve traduzir para uma estrutura do programa em execução considerando o sistema computacional destino –  tarefa do compilador: mais árdua

nível de abstração

nível de máquina

Page 38: Definindo melhor alguns conceitosboeres/slides_AP/AlgParalelos.pdfDefinindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem

Exercício

Capitulo I do Livro disponibilizado por Ian Foster – um resumo Exercícios – 1, 2 e 3