55
Prof. Luiz Fernando Bittencourt IC - UNICAMP MC714 Sistemas Distribuídos 2° semestre, 2013

MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MC714 Sistemas Distribuídos 2° semestre, 2013

Page 2: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas paralelos

Page 3: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas paralelos • Existem sistemas que possuem algumas, mas não todas, as características de um sistema distribuído

• Como classificá-los? • São sistemas distribuídos ou sistemas multiprocessados?

Page 4: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de memória • Dois aspectos: localização e política de acesso. • Uma memória para todos os processadores: memória compartilhada.

• Se memória não é compartilhada: acesso via meios explícitos de comunicação, como troca de mensagens.

Page 5: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de memória • Memória centralizada:

• Memória comum acessada por todos os processadores. • Memória distribuída:

•  Fisicamente distribuída com os processadores. • Memória compartilhada

•  Espaço de endereçamento global •  Tempo de acesso diferente, em geral

• Multiprocessadores de memória distribuída •  Troca de mensagens •  Acesso através do processador •  Hierárquica: alguns (2-4) processadores compartilham memória,

formando um nó de computação. Múltiplos nós são conectados em um nível mais alto – IBM Blue Gene L

• Fig 3

Page 6: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturas de memória - diferenças • Memória centralizada

•  Extensão intuitiva da arquitetura de um único processador. •  Contenção na comunicação com memória central limita

escalabilidade. •  Sistemas baseados em barramento geralmente possuem poucos

processadores (<=8).

• Memória distribuída •  Com troca de mensagem permite projeto mais simples, mas

programação torna-se mais complicada. •  Maior escalabilidade – massively parallel processors (MPP) são

sistemas de memória distribuída que usam troca de mensagens e podem conter centenas de milhares de processadores.

•  Multiprocessadores de memória distribuída integram as duas abordagens, fornecendo escalabilidade e maior facilidade de programação.

Page 7: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas paralelos - classificação • Sistemas multiprocessados. • Multicomputadores. • Processadores vetoriais

Page 8: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas multiprocessados • Sistemas paralelos onde os múltiplos processadores tem

acesso direto a uma memória compartilhada, a qual forma um espaço de endereçamento único.

• Geralmente sem um relógio comum. • Geralmente constituem uma Uniform Memory Access

(UMA), onde a latência de acesso à memória é a mesma para todo processador.

• Comunicação entre processos: leitura/escrita da memória compartilhada.

• Processadores geralmente do mesmo tipo em um mesmo container.

•  Fig 4

Page 9: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas multiprocessados •  Interconexão: bus ou multistage switch • Representação: grafo não direcionado

•  Vértice = processador + memória local + switch •  Aresta = enlace de comunicação entre processadores •  Grau – número de mensagens que podem ser manipuladas

simultaneamente por um processador. •  Diâmetro – menor número de nós necessário para comunicação

entre dois nós mais distantes na rede. •  Largura de bisseção – número de enlaces mínimo que divide a

rede na metade. Indica quantas mensagens podem ser trocadas simultaneamente entre duas metades da rede.

•  Fig 15

Page 10: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas multiprocessados • Duas redes de interconexão populares são a omega e a

butterfly. • São redes multi-estágio formadas por comutadores 2x2.

•  Permitem dados de qualquer das duas entradas serem direcionados para qualquer das duas saídas.

•  Colisões ocorrem quando mais de um dado é direcionado ao mesmo tempo para a mesma saída.

Page 11: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas multiprocessados • Omega

•  Omega: n processadores, n unidades de memória •  (n/2) log2n switches 2x2, log2n níveis •  Função de interconexão

•  Função de roteamento

•  Para nível s da rede, se o s+1-ésimo bit mais significativo de j é 0, vai pro fio de cima, se for 1 vai pro fio de baixo.

•  Fig 5

j =

�2i, 0 ≤ i ≤ n

2 − 1

2i+ 1− n, n2 ≤ i ≤ n− 1

Page 12: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas multiprocessados • Butterfly

•  Função de interconexão •  Depende de n e de s •  Seja M=n/2 switches em cada nível, e <x,s> um switch x no nível

s •  Existe uma aresta de <x,s> para <y, s+1> se:

•  x=y •  x XOR y tem exatamente um bit 1, que está no s+1-ésimo bit mais

significativo

•  Função de roteamento •  Num nível s, se s+1-ésimo bit mais significativo de j é 0, vai para

o fio de cima, senão vai para o fio de baixo. •  Fig 6

Page 13: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Multicomputadores • Sistema paralelo onde múltiplos processadores não têm

acesso direto a memória compartilhada. • Memória pode ou não formar um espaço de

endereçamento comum. • Geralmente não têm relógio comum. • Próximos fisicamente. •  Fortemente acoplados (hardware e software

homogêneos). •  Fig 7

Page 14: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Multicomputadores • Espaço de endereçamento comum ou troca de

mensagens. • Espaço de endereçamento comum: geralmente

corresponde a arquitetura NUMA (non-uniform memory access).

•  ccNuma – Cache Coherent NUMA

Page 15: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Multicomputadores - topologias •  Topologias regulares e simétricas

•  Mesh, anel, torus, cubo, hipercubo •  Propriedades matemáticas interessantes para roteamento •  Fig 8

Page 16: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Torus • Wrap-around 2D-mesh (Torus) • Mesh contém processadores. • Comprimento máximo do caminho entre quaisquer 2

processadores: k

k × k k2

Page 17: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Hipercubo • Hipercubo com k dimensões tem unidades de

processamento/memória. • Cada unidade é um nó no hipercubo e tem um rótulo

único de k bits. • Grau de cada nó: log2(n). • Cada uma das k dimensões é associada com uma

posição nos rótulos. • Rótulos de quaisquer 2 nós adjacentes são iguais exceto

pelo bit da posição correspondente à dimensão na qual os nós diferem. •  Processadores rotulados de forma que o caminho mínimo entre

quaisquer 2 nós é a distância de Hamming de seus rótulos (limitante superior = k).

2k

Page 18: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Hipercubo • Um hipercubo de d dimensões pode ser particionado em

2 hipercubos de d-1 dimensões. •  Fixe uma posição qualquer do rótulo. Processadores com 0 nessa

posição são um hipercubo de dimensão d-1, e processadores com 1 são outro hipercubo.

• Roteamento salto-a-salto. •  A cada passo, a mensagem pode ser enviada para qualquer

dimensão correspondente à posição na qual o endereço do nó corrente difere do endereço do destino.

•  Múltiplas rotas entre qualquer par de nós: tolerância a falhas e controle de congestionamento.

Page 19: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Array processors (vector processors) • Processadores fisicamente próximos, fortemente

acoplados. • Relógio comum. • Podem não compartilhar memória e podem comunicar-se

por troca de mensagens. • Processamento e troca de dados sincronizados. • Ex.: DSP e processamento de imagens.

Page 20: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Caracterização de sistemas paralelos • Distinção/caracterização é importante para projeto de

algoritmos. • Considerar latências

•  Muito acesso aos mesmos dados, muito acesso a dados locais e pouco acesso a dados distribuídos, etc.

Page 21: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Caracterização de sistemas paralelos • Uso primário de sistemas paralelos: maior vazão através

da divisão da carga entre os processadores. •  Tarefas que podem ser melhor aceleradas são as que

podem ser particionadas em subtarefas com pouca comunicação. •  Ex.:Muitas operações sobre vetores e matrizes, comuns em

aplicações científicas.

• Máquinas paralelas foram objeto de pesquisa teórica e de sistemas em 1980, entretanto não se provaram economicamente viáveis na época. •  Poucas aplicações populares tiravam vantagem de paralelismo. •  Aumento da capacidade de processamento de PCs.

Page 22: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Taxonomia • Processamento (Flynn):

•  SISD, MISD, SIMD, MIMD

• Programação •  Memória compartilhada •  Troca de mensagens •  PRAM – Parallel Random Access Machine •  LogP vs. PRAM

Page 23: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Taxonomia – Flynn • Quatro “modos” de processamento classificando:

•  Como é o processamento de instruções •  Quais são os dados de entrada de cada processador •  Single Instruction, Single Data – SISD •  Single Instruction, Multiple Data – SIMD •  Multiple Instruction, Single Data – MISD •  Multiple Instruction, Multiple Data – MIMD

Page 24: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

SISD • Single instruction stream, single data stream • Modo “convencional” no paradigma de Von Neumann • Uma CPU • Uma unidade de memória • Conectados por bus •  Fig 9

Page 25: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

SIMD • Single instruction stream, multiple data stream. • Processamento: múltiplos processadores homogêneos. • Mesma instrução. •  Itens de dados distintos. • Processamento de arrays e matrizes. • Co-processamento (MMX, SSE). •  Fig 10

Page 26: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MISD • Multiple instruction stream, single data stream. • Operações diferentes • Mesmo dado •  Fig 11

Page 27: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MIMD • Multiple instruction stream, multiple data stream. •  Instruções diferentes. • Dados diferentes. • Modo de operação de sistemas distribuídos e paralelos

em geral. • Sem relógio comum. •  Fig 12

Page 28: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Troca de mensagem, memória compartilhada, PRAM, LogP

Page 29: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Memória compartilhada • Paradigmas de programação para sistemas paralelos tem

uma forte correspondência com políticas de acesso à memória em multiprocessadores.

• Diferença fundamental: uso de memória compartilhada ou programação usando troca de mensagens. •  Memória compartilhada: cada processador tem acesso total à

memória compartilhada; comunicação entre processos se dá através da memória (acesso concorrente necessita sincronização explícita).

•  Troca de mensagens: comunicação entre processadores feita de forma explícita através de comandos send e receive.

Page 30: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Memória compartilhada •  Tem espaço de endereçamento comum no sistema. • Comunicação através de variáveis compartilhadas. • Variáveis de controle para sincronização entre processos

(p.ex. semáforos e monitores). • Paradigma de programação (memória compartilhada ou

troca de mensagem) nem sempre corresponde à organização de memória do sistema alvo. •  Troca de mensagem pode ser usada tanto em arquiteturas de

memória compartilhada quanto de troca de mensagens. •  Em memória compartilhada, uma troca de mensagem pode ser

implementada como uma simples cópia de memória. •  Memória compartilhada distribuída pode ser emulada através de uma

camada de software adicional em arquitetura de troca de mensagens.

Page 31: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Modelos PRAM e LogP • Modelos para projeto e análise de complexidade de

algoritmos paralelos. • PRAM – Parallel Random Access Machine

•  Máquina ideal com memória centralizada e compartilhada, processadores síncronos.

•  Acesso a uma célula: admite modelar acesso exclusivo ou concorrente.

•  Células diferentes podem ser acessadas concorrentemente. •  Simples, porém não considera custos de comunicação entre

processadores.

Page 32: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Modelos PRAM e LogP • Modelo PRAM irreal, especialmente em sistemas

distribuídos, devido à suposição de comunicação sem custo entre processadores.

•  LogP •  Considera custo de comunicação entre processadores. •  L: limite superior no atraso em uma troca de mensagem. •  o: overhead – tempo que um processador gasta enviando ou

recebendo uma mensagem, durante o qual não efetua outra operação.

•  g: Gap – tempo mínimo entre transmissões ou recepções consecutivas de mensagens (1/BW).

•  Limita número de mensagens simultâneas a •  Modelo assíncrono. •  Fig 13

�L

g

Page 33: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Acoplamento, paralelismo, concorrência e granularidade

Page 34: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Acoplamento • Grau de acoplamento (hardware ou software):

interdependência e “amarração” e/ou homogeneidade entre módulos. •  Fortemente acoplados (SIMD, MISD / relógio comum) ou

fracamente acoplados.

Page 35: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Acoplamento • Ex MIMD:

•  Multiprocessadores fortemente acoplados (com memória compartilhada Uniform Memory Access). Bus (Sequent, Encore) ou switch (NYU)

•  Multiprocessadores/computadores fortemente acoplados (com memória compartilhada Non-Uniform Memory Access – SGI Origin 2000, Sun Ultra HPC – ou troca de mensagens – hipercubo, torus).

•  Multicomputadores (sem memória compartilhada ou relógio comum) fracamente acoplados fisicamente próximos. Bus (NOW + LAN ou Myrinet), ou usando uma rede genérica, processadores podem ser heterogêneos. Sistema distribuído (sem memória compartilhada ou relógio comum) com característica de sistema paralelo (processadores próximos). Abordagens diferentes de redes de longa distância.

•  Multicomputadores fracamente acoplados, fisicamente distantes. Noção convencional de sistemas distribuídos.

Page 36: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo / speedup em um sistema específico • Speedup relativo de um programa em uma dada máquina

específica. • Depende do número de processadores e mapeamento do

código nesses processadores. • Razão entre o tempo de execução T(1) em um único

processador e tempo T(n) com n processadores.

Page 37: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo em um programa paralelo/distribuído • Medida agregada da porcentagem de tempo que todos os

processadores estão executando instruções de CPU ao invés de aguardar comunicação, seja por memória compartilhada ou troca de mensagens.

• Se a medida agregada é somente em função do código, paralelismo é independente de arquitetura.

• Caso contrário, definição de paralelismo se assemelha à de speedup.

Page 38: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Concorrência de um programa •  Termo mais amplo • Usado no contexto de sistemas distribuídos • Razão entre o número de operações locais (sem

comunicação / memória compartilhada) e o número total de operações.

Page 39: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência •  Paralelismo: condição que aparece quando pelo menos duas

threads estão executando simultaneamente. •  Concorrência: condição existente quando pelo menos duas

threads estão progredindo. •  Paralelismo: programação para execução de computação

simultânea (possivelmente relacionada). •  Concorrência: programação como composição de processos

(no termo amplo) executando independentemente. •  Paralelismo: quando tarefas executam ao mesmo tempo. •  Concorrência: quando tarefas podem começar, executar, e

terminar em intervalos de tempo sobrepostos. Não significa necessariamente que executarão ao mesmo tempo (e.g., multitasking em processadores de núcleo único).

Page 40: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Problema: mover uma pilha de manuais de linguagens

obsoletas para uma fornalha.

• Apenas 1 roedor demora muito.

•  http://concur.rspace.googlecode.com/hg/talk/concur.html

Page 41: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Mais roedores.

• Não ajuda, precisamos de mais carrinhos.

Page 42: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Mais roedores e mais carrinhos.

•  Mais rápido, mas há gargalos na pilha e na fornalha. •  Necessidade de sincronizar os roedores: uma mensagem

(comunicação entre roedores) pode resolver.

Page 43: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Dobrar tudo

• Remover gargalo, tornando-os independentes. • Consome entrada duas vezes mais rápido.

Page 44: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Projeto não é automaticamente paralelo. • E se somente um roedor move-se em um dado instante

de tempo? •  Continua sendo concorrente (i.e., o projeto), mas não paralelo. •  Entretanto, é automaticamente paralelizável.

• Essa composição concorrente habilita outros modelos.

Page 45: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Outro projeto.

•  Três roedores em ação, mas provavelmente com atrasos. • Cada roedor é um procedimento independente, mais a

coordenação (comunicação).

Page 46: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência

• Adicionar novo roedor para carregar os carrinhos. • Organizando tudo corretamente (não trivial), é quatro

vezes mais rápido que o projeto original de 1 roedor.

Page 47: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Quatro procedimentos distintos:

•  Carregar manuais no carrinho •  Mover carrinho até a fornalha •  Descarregar carrinho na fornalha •  Retornar o carrinho vazio

• Diferentes projetos concorrentes permitem diferentes maneiras de paralelização.

Page 48: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Mais paralelização:

Page 49: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Ou nenhuma paralelização (se cada um trabalha em

determinado intervalo de tempo diferente dos outros), mas continua sendo uma solução concorrente.

Page 50: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Outro projeto • Pilha adicional •  100 pilhas ajuda?

Page 51: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Paralelizando da maneira usual • Executar mais procedimentos concorrentes para

aumentar vazão

Page 52: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Ou ainda...

Page 53: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Usando todas as técnicas: 16 roedores trabalhando.

Page 54: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo vs. Concorrência • Existem muitas formas de quebrar um processo em

pedaços menores: projeto concorrente. • Paralelização pode ser implementada de forma que sua

corretude é “fácil”.

Page 55: MC714 - Home | INSTITUTO DE COMPUTAÇÃObit/ensino/mc714_2s13/aulas/... · 2013. 8. 22. · • Ex.:Muitas operações sobre vetores e matrizes, comuns em aplicações científicas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Granularidade de um programa • Razão entre quantidade de computação e quantidade de

comunicação do programa paralelo/concorrente. • Granularidade alta (baixa): relativamente mais (menos)

instruções produtivas de CPU comparadas ao número de vezes que os processadores comunicam-se.

• Baixa granularidade: se encaixa melhor em sistemas fortemente acoplados. •  Latência pode degradar vazão.