aula02 - instituto de computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não...

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

Upload: others

Post on 04-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MC714Sistemas Distribuídos2° semestre, 2018

Page 2: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Introdução- sistemasdistribuídos• 1. Coleção de entidades independentes que colaboram para

resolver um problema que não poderia ser resolvido individualmente (Kshemkalyani e Singhal).

• 2. Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações através somente de troca de mensagens (Couloris, Dollimore e Kindberg).

• 3. Um conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e coerente(Tanenbaum e Van Steen).

Page 3: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Caracterização– sistemasdistribuídos• Usuário só descobre que está usando um sistema distribuído

quando alguma falha impede de usar alguma aplicação (Lamport).

• Coleção de computadores que não compartilham memória ou relógio físico comum, que se comunicam por mensagenssobre uma rede de comunicação, e cada computador possui sua própria memória e executa seu próprio sistema operacional. Tipicamente são semi-autônomos e fracamente acoplados enquanto cooperam para resolver um problema coletivamente (Tanenbaum / Van Steen).

Page 4: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Características• Sem relógio físico comum• Introduz a noção de distribuição, dando origem à

assincronia inerente entre processadores.

• Sem memória compartilhada• Requer troca de mensagens para comunicação.• Deve-se notar que pode fornecer abstração de um

espaço de endereçamento comum através da abstração de memória compartilhada distribuída.

Page 5: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasparalelos-classificação• Sistemas multiprocessados• Multicomputadores• Processadores vetoriais

Page 6: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas paralelos

Computação distribuída Computação paralelaMulticomputadores

Memória compartilhadaNUMA

UMAProcessadores vetoriais

Switch centralizado

Switch decentralizadoBus

Troca de mensagens Espaço de end. único

• Tarefa: achar inconsistências na figura acima em relação aos slides anteriores.• Considere dois níveis abaixo. Análise pode ser diferente para cada um deles?

• Programação -> memória compartilhada ou troca de mensagens?• Arquitetura -> como é a disposição física dos componentes?

Sistemas multiprocessados

Exercício

Relógio físico comum

Page 7: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Caracterizaçãodesistemasparalelos

Page 8: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Caracterizaçãodesistemasparalelos• 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 9: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Caracterizaçãodesistemasparalelos• 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 10: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

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 11: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

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 12: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

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 13: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

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 14: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

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

Page 15: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

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 16: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Trocademensagem,memóriacompartilhada,PRAM,LogP

Page 17: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Memóriacompartilhada• 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 18: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Memóriacompartilhada• 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 19: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

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

algoritmos paralelos.• Descrever/projetar algoritmos independente da máquina

utilizada• Modelos que abstraem detalhes• Foco em aspectos importantes • Esconde detalhes “desnecessários”

• Modelos podem ser simulados

Page 20: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

ModelosPRAMe LogP• 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 21: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

ModelosPRAMe 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 + exemplo

⇠L

g

Page 22: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

ModelosPRAMe LogP• Sugestão de melhoria no desempenho do exemplo?

Page 23: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Acoplamento,paralelismo,concorrênciaegranularidade

Page 24: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Page 25: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

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 26: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

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 Origin2000, 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 27: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismo/speedup emumsistemaespecí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 nprocessadores.

Page 28: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismoemumprogramaparalelo/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 29: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Concorrênciadeumprograma• 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 30: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.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 31: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.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 32: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.Concorrência• Mais roedores.

• Não ajuda, precisamos de mais carrinhos.

Page 33: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.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 34: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.Concorrência• Dobrar tudo

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

Page 35: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.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 36: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.Concorrência• Outro projeto.

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

coordenação (comunicação).

Page 37: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.Concorrência

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

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

Page 38: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.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 39: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.Concorrência• Mais paralelização:

Page 40: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.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 41: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.Concorrência• Outro projeto• Pilha adicional• 100 pilhas: melhora?

Page 42: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.Concorrência• Paralelizando da maneira usual• Executar mais procedimentos concorrentes para aumentar vazão

Page 43: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.Concorrência• Ou ainda...

Page 44: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.Concorrência• Usando todas as técnicas: 16 geomídeos trabalhando.

Page 45: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Paralelismovs.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 46: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Granularidadedeumprograma• 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.

Page 47: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasdetrocademensagemversussistemasdememóriacompartilhada

Page 48: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Trocademensagensememória compartilhada• Sistemas de memória compartilhada: espaço de endereço

comum compartilhado no sistema.• Comunicação se dá através de variáveis compartilhadas• Variáveis de controle para sincronização entre processadores

(semáforos, monitores).

• Sistemas de multicomputadores que não têm espaço de endereçamento comum fornecido pela arquitetura/hardware necessariamente comunicam-se por troca de mensagens.

Page 49: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Trocademensagensememória compartilhada• Conceitualmente mais fácil programar/depurar memória

compartilhada que troca de mensagens.• A abstração chamada “memória compartilhada” é algumas

vezes utilizada para simular um espaço de endereçamento comum.• Em sistema distribuído: memória compartilhada distribuída.• Implementá-la tem certo custo, mas simplifica tarefa de

programação.• Comunicação por troca de mensagem pode ser simulada por

comunicação via memória compartilhada (e vice-versa).• Os dois paradigmas são equivalentes.

Page 50: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

TMàMC• Emular troca de mensagem em sistema de memória

compartilhada (TM à MC).• Espaço de endereçamento compartilhado pode ser

particionado em conjuntos disjuntos, com uma parte para cada processador.• Operações send e receive podem ser implementadas pela

escrita e leitura do espaço de endereçamento do destinatário/remetente.• Especificamente, um espaço separado pode ser reservado

como “caixa de correio”.• Uma troca de mensagem Pi-Pj pode ser emulada por uma

escrita de Pi na caixa de correio, e então uma leitura de Pj.

Page 51: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

TMàMC• No caso mais simples, assume-se que essas caixas de

correio têm tamanho ilimitado.• As operação de escrita/leitura precisam ser controladas

utilizando primitivas de sincronização para informar destinatário/remetente após o envio/recebimento dos dados.

Page 52: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MCàTM• Emular memória compartilhada em sistema de troca de

mensagem (MC à TM).• Envolve o uso de operações de send e receive para realizar

operações de escrita e leitura.• Cada local compartilhado pode ser modelado como um

processo separado.• A escrita em um local compartilhado é emulada pelo envio

de uma mensagem de atualização para o processo dono daquele espaço.• A leitura de um local compartilhado é emulada pelo envio

de uma mensagem de query para o dono do processo.

Page 53: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MCàTM• Acessar memória de outro processador é caro (requer

send/receive).

• Emular memória compartilhada pode ser atraente do

ponto de vista do programador, mas deve ser considerado

que é apenas uma abstração em sistemas distribuídos.

• Latências envolvidas nas operações de leitura/escrita

podem ser altas mesmo usando emulação de memória

compartilhada, pois, por baixo dos panos, ocorre

comunicação através de uma rede.

Page 54: aula02 - Instituto de Computaçãobit/mc714/aulas/aula02.pdf · resolver um problema que não poderia ser resolvido individualmente (Kshemkalyanie Singhal). •2. Sistema onde componentes

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Trocademensagensememóriacompartilhada• Aplicações podem combinar memória compartilhada e troca de

mensagens.• Em um multicomputador MIMD, cada “processador” pode ser

por si só um sistema multiprocessado fortemente acoplado com memória compartilhada.• No sistema multiprocessado, processadores comunicam-se via

memória compartilhada.• No sistema de multicomputadores, comunicam-se via troca de

mensagens.

• Sistemas de troca de mensagem são mais comuns e mais adequados para sistemas distribuídos amplos, e portanto mais extensivamente estudados em sistemas distribuídos.