Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A....

Post on 21-Apr-2015

142 views 0 download

Transcript of Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A....

Processamento ParaleloArquitetura de Sistemas Paralelos e Distribuídos

Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)

2011/01 - INF02799

Informações gerais

• Página web: http://nemo.inf.ufes.br/jpalmeida/ensino/2011-01-processamento-paralelo

• Carga horária semestral total: 60 horas• Horário: terças e quintas-feiras: 15:00-17:00• Local: CT-IX sala 202 (por enquanto)

Avaliação

• Duas provas parciais e trabalhos• A média parcial (MP) é calculada por:

MP = 0,6*P + 0,4*Tonde: P é a média aritmética das provas parciais eT é a média aritmética das notas dos trabalhos.

• A média final (MF) será:MF = MP, se MP ≥ 7,0 (e houver presença)MF = (PF + MP)/2, se MP < 7,0

(PF é a nota da prova final)

• Se MF ≥ 5,0 -> Aprovado• Se MF < 5,0 -> Reprovado

Material didático

• COULOURIS, George F.; DOLLIMORE, Jean; KINDBERG, Tim. Sistemas distribuídos: conceitos e projeto. 4. ed. Porto Alegre: Bookman, 2007.

• Distributed Systems: Concepts and Design, 4. ed. Addison Wesley, 2005.

• Pelo menos os capítulos: – 1, 2, 4, 5, 9, 19, 20

Material didático

• Artigos e tutoriais online:– P.A. Bernstein. Middleware. Communications of the ACM,

Vol. 39, No. 2, February 1996, 86-98.– P. Eugster, P. Felber, R. Gerraoui, A.M. Kermarrec, The

Many Faces of Publish/Subscribe, ACM Computing Surveys, Vol. 35, No. 2, June 2003, pp. 114–131.

– http://java.sun.com/docs/books/tutorial/rmi/index.html– http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JMS.html#wp

84181

O que é um sistema distribuído?

Rede B

Rede C

Rede A

Fonte: Luís Ferreira Pires, Universidade de Twente

Distribuição é um fato, parte do problema

• Usuários e recursos estão fisicamente distribuídos

• Temos que lidar com a distribuição• Exemplos:

– Páginas na Internet– Usuários de e-mail

Distribuição é parte da solução

• Podemos explorar distribuição– Distribuição não é requisito da aplicação ou dos

usuários, mas explora-se a distribuição para obter:

– Aplicações mais rápidas: por exemplo, com uma pesquisa de banco de dados com menor tempo de resposta; cálculos complexos / computação científica, etc.

– Aplicações mais confiáveis: sistemas de bancos, seguradoras, indústrias, etc.

– Aplicações de maior capacidade: número de caixas eletrônicos e clientes na Internet fazendo operações bancárias / pedidos / pesquisas

Compartilhamento de recursos

• Capacidade de processamento• Memória• Armazenamento• Banda de rede / acesso• Disponibilidade• Dispositivos (impressoras, monitores)• Bateria

Níveis de paralelismo

1. Paralelismo no nível de instrução2. Várias linhas de execução em um mesmo

processador3. Várias linhas de execução em diferentes

processadores (SMP, dual, quad core)4. Computadores paralelos

• interconectados com redes dedicadas de alta velocidade

5. Cluster de computadores6. Computadores na Internet

• Redes compartilhadas, comunicação peer-to-peer, máquinas heterogêneas, problemas de segurança, …

Autonomia

Paralelismo no nível de instrução

• Velocidade (throughput) versus custo• Metodologias básicas para melhorar a

velocidade (fixando circuito e ISA): – Simplificar organização da máquina de modo a

reduzir o período do clock;– Reduzir número de ciclos de clock necessários

para executar uma instrução;– Sobrepor a execução das instruções (pipelines!!!)

• Uma CPU, fazendo uso mais adequado do hardware

Paralelismo no nível de instrução

• Exemplo da lavanderia• Patrícia, Fernanda, Pedro, João

têm cada um saco de roupas para lavar, secar e dobrar

• O ciclo de lavagem leva 30 minutos• O de secagem leva 30 minutos• O tempo para dobrar é de 30 minutos • O funcionário leva 30 minutos

para colocar as roupas no armário

A

Lavanderia sequencial

30

B

C

D

ATempo

30 30 3030 30 3030 30 30 3030 30 30 3030

6 PM 7 8 9 10 11 12 1 2 AM

•De maneira sequencial, eles levam 8 horas para 4 cargas•Quanto tempo levaria se eles utilizassem a técnica de pipeline?

Lavanderia paralela (pipeline)

•Lavanderia Pipelined leva 3.5 horas para 4 cargas!

Task

Order

12 2 AM6 PM 7 8 9 10 11 1

Tempo

B

C

D

A

3030 30 3030 30 30

Paralelismo no nível de instrução

• 5 estágios básicos– Carrega (fetch)

instrução (F)– decodifica instrução

instruction / lê registradores (R)

– executa (X)– acessa memória (M)– armazena resultados

nos registradores (W)

I-Fetch

Decode

Execute

Memory

WriteResult

Paralelismo no nível de instrução

F

Inst

ruçã

o

R X M W

F R X M W

F R X M W

F R X M W

F R X M

F R X

Paralelismo no nível de instrução

• Pipelining é um mecanismo que permite a sobreposição temporal das diversas fases da execução de instruções

• Aumenta o throughput das instruções (mais instruções são executadas por unidade de tempo). Porém, pipeline não ajuda na latência da execução de uma única instrução

Paralelismo no nível de instrução

• Assume independência entre fases da execução da instrução

• Não é sempre o caso (ex., saltos condicionais) levam a ociosidade

• Afeta a eficiência

• Um assuntos para arquitetura de computadores...

Níveis de paralelismo

1. Paralelismo no nível de instrução2. Várias linhas de execução em um mesmo

processador3. Várias linhas de execução em diferentes

processadores (SMP, dual, quad core)4. Computadores paralelos

• interconectados com redes dedicadas de alta velocidade

5. Cluster de computadores6. Computadores na Internet

• Redes compartilhadas, comunicação peer-to-peer, máquinas heterogêneas, problemas de segurança, …

Autonomia

Várias linhas de execução: um processador• Paralelismo

“simulado”– processos– threads

• “Logicamente” há várias linhas de execução

• “Fisicamente” não há• Um assunto de

sistemas operacionais...

• ... mas uso de multi-threading / processos é muito importante na programação de sistemas distribuídos

Fonte: Douglas Schmidt http://www.cs.wustl.edu/~schmidt/PDF/mt-unix4.pdf

Níveis de paralelismo

1. Paralelismo no nível de instrução2. Várias linhas de execução em um mesmo

processador3. Várias linhas de execução em diferentes

processadores (SMP, dual, quad core)4. Computadores paralelos

• interconectados com redes dedicadas de alta velocidade

5. Cluster de computadores6. Computadores na Internet

• Redes compartilhadas, comunicação peer-to-peer, máquinas heterogêneas, problemas de segurança, …

Autonomia

Vários processadores, memória compartilhada

Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed. ,by B. Wilkinson & M. Allen,

Vários processadores, memória compartilhada

Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed. ,by B. Wilkinson & M. Allen,

Symmetric Multiprocessing / SMP: Processadores idênticos / multi core Memória compartilhada

Quad Pentiummulti-core: vários processadores, mesmo chip

Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed. ,by B. Wilkinson & M. Allen,

Processador de 3 cores Xenon no Xbox 360

Multi-computadores / Computadores paralelosMemória Local

Processador de 1+1+6 cores Cell no PS3

http://beautifulpixels.blogspot.com/2008/08/multi-platform-multi-core-architecture.html

Memória Compartilhada Distribuída

NUMA (Non-Uniform Memory Access)Acesso à memória local é mais rápido que acesso à memória remota

CUDA

Supercomputadores

• O termo não tem muito sentido arquitetural• Só para identificar os (multi)computadores que

tem maior poder de processamento quando são construídos

• Ou usado para falar sobre “computação de alto desempenho”

Supercomputadores (nov. 2010)

http://en.wikipedia.org/wiki/Top500

Rank Site Computer/Year Vendor Cores Rmax Rpeak TFlops Power (KW)

1National Supercomputing Center in Tianjin

China

Tianhe-1A - NUDT TH MPP, X5670 2.93Ghz 6C, NVIDIA GPU, FT-1000 8C / 2010NUDT

186368 2566.00 4701.00 4040.00

2DOE/SC/Oak Ridge National Laboratory

United States

Jaguar - Cray XT5-HE Opteron 6-core 2.6 GHz / 2009Cray Inc.

224162 1759.00 2331.00 6950.60

3National Supercomputing Centre in Shenzhen (NSCS)

China

Nebulae - Dawning TC3600 Blade, Intel X5650, NVidia Tesla C2050 GPU / 2010Dawning

120640 1271.00 2984.30 2580.00

4GSIC Center, Tokyo Institute of Technology

Japan

TSUBAME 2.0 - HP ProLiant SL390s G7 Xeon 6C X5670, Nvidia GPU, Linux/Windows / 2010NEC/HP

73278 1192.00 2287.63 1398.61

5DOE/SC/LBNL/NERSC

United States

Hopper - Cray XE6 12-core 2.1 GHz / 2010Cray Inc.

153408 1054.00 1288.63 2910.00

In 2010, the fastest PC processors six-core has a theoretical peak performance of 0.107 TFLOPS (Intel Core i7 980 XE)

http://www.top500.org/lists/2010/11/performance_development

i7 20106-cores

No Brasil

• #29– National Institute for Space Research (INPE)– Tupã - Cray XT6 (AMD) 12-core 2.1 GHz / 2010

Cray Inc.– 30720 cores– Rmax 205.10 Tflops– Rpeak 258.05 Tflops

– http://www.top500.org/system/10619

No Brasil

• #116 NACAD/COPPE/UFRJBrazil

• 6464 cores• Intel EM64T Xeon X55xx (Nehalem-EP)

Cyclops64 (Blue Gene/C)Arquitetura celular

Objetivo: 1.1 Pflops

Cyclops64 (Blue Gene/C)

• Cada chip contém 80 processadores de 64-bits / 500 MHz, cada processador suporta 2 linhas de execução (threads).

• 80 gigaflops por chip (desempenho teórico de pico)

Cyclops64 (Blue Gene/C)

x4

Cyclops64 (Blue Gene/C)

x48

x4

Cyclops64 (Blue Gene/C)

x4

x48

x72

Para quem perdeu as contas...

• 2 x 80 x 4 x 48 x 72• 2.211.840 linhas de execução• 1.1 Pflops• 13.8 TB RAM

Taxonomia de Flynn

  SingleInstruction

MultipleInstruction

SingleData

SISD(PCs /

Mainframes)

MISD(redundância, ex:

avião)

MultipleData

SIMD(vector / array)

MIMD(maioria dos

supercomputadores atuais)

SIMD

• Single Instruction Multiple Data• Computadores vetoriais

http://en.wikipedia.org/wiki/Image:Processor_board_cray-1_hg.jpg

Cluster (MIMD)

Blade server farms

http://en.wikipedia.org/wiki/Image:IBM_bladecenter_%28front%29.jpg

Wikimedia server farm

Cluster x “farms”

• Esta terminologia não é usada de forma rígida• Mas, tipicamente, farms tem alimentação

compartilhada, algumas facilidades de gerenciamente em hardware (hot swapping)

• Disponibilidade além de capacidade de processamento

• Problemas de fácil paralelização– Servidores web– Distribuição de carga (load balancing)

Dificuldades

• HVAC - heating, ventilating, and air conditioning• Refrigeração

– desempenho por watt dissipado

• Antigo Cluster do LCAD– dois ar-condicionados (totalizando 30.000 BTU's)

+ ventilador de teto + ventiladores das CPUs– sensores de temperatura

• Refrigeração a líquido• Muitos farms têm refrigeração compartilhada

Dificuldades

• Falhas• Com muitos elementos não há como não haver

falhas• Faça um cálculo de probabilidade:

– 1024 máquinas, com taxa λ de falha...– Qual a taxa de falha da máquina como um todo,

se a máquina tivesse que funcionar a todo momento?

Computação de alto desempenho na Internet

• Formação de clusters virtuais (grid) (na Internet)• BOINC• SETI@home, FOLDING@home, Einstein@home• 500 Tflop/s (média), Jan. 2007• 925 Tflops/s (média), Fev. 2008• 1.287 Pflops, Dez. 2008

– Com 565000 computadores

• 5.1 PFLOPS as of April 21, 2010• Universidade da Califórnia, Berkeley • http://en.wikipedia.org/wiki/BOINC

BotnetsDate created Name Estimated no. of bots Spam capacity Aliases

2009 (May) BredoLab 30,000,000 3.6 billion/day Oficla

2008 (around) Mariposa 12,000,000 0 ?

? Conficker 10,500,000+ 10 billion/dayDownUp, DownAndUp, DownAdUp, Kido

? Zeus 3,600,000 (US Only) -1n/aZbot, PRG, Wsnpoem, Gorhax, Kneber

2007 (Around) Cutwail 1,500,000 74 billion/dayPandex, Mutant (related to: Wigon, Pushdo)

? Grum 560,000 39.9 billion/day Tedroo

? Mega-D 509,000 10 billion/day Ozdok

? Kraken 495,000 9 billion/day Kracken

http://en.wikipedia.org/wiki/Botnet

Aplicações distribuídas: interação entre partes

• A complexidade às vezes está na forma de interação ou na coordenação entre as partes distribuídas

Rede B

Rede C

Rede A

Diferentes modelos de interação

• RPC – Remote Procedure Call• Orientado a objetos distribuídos

– Distributed Objects– Remote Method Invocation

• Orientado a passagem de mensagem• Orientado a eventos (publish/subscribe)• Orientado a streams (fluxo de dados)

– Multimedia streams: áudio e vídeo

• Orientado a serviços

Falhas independentes

• Partes de um sistema podem falhar por diversos motivos– banais: falta de energia elétrica– erros de projeto (programação) no

desenvolvimento de uma parte do sistema– crashes de sistemas operacionais– falha de hardware

Falhas independentes

• “A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable.” (Lesley Lamport, 1992)

Particionamento de rede

Rede B

Rede C

Rede A

Atraso, limitações de banda

• Redes impões atraso na comunicação• Não somente pela capacidade de transmissão

(banda) mas também pela distância geográfica

Escalabilidade

• O sistema deverá permanecer eficiente mesmo com um aumento no número de usuários (carga) e recursos:– Sistema deverá comportar aumento de recursos– Custo de adicionar recursos deve ser razoável– Perda de desempenho com aumento de

usuários/carga deve ser limitado

• Escalabilidade de sistemas distribuídos agrega valor:– Imagina uma web que fosse limitada no número

de páginas, usuários conectados simultaneamente…

Heterogeneidade

• Diferentes arquiteturas de hardware– Intel, Apple, telefones celulares, …

• Diferentes sistemas operacionais– Windows (e suas versões), UNIX (e suas variantes),

VMS e outros sistemas legados, sistemas operacionais de tempo real, sistemas operacionais para dispositivos móveis (e.g., Symbian, Windows Mobile)

• Diferentes tipos de rede– Apesar do TCP/IP ter dominado os níveis de

transporte/rede

• Diferentes linguagens de programação• Diferentes implementações

Heterogeneidade

Fonte: http://www.cs.wustl.edu/~schmidt/PDF/MT-Orbix4.pdf

Padronização

• Padronização de algumas partes necessárias para interoperabilidade

• Interoperabilidade: capacidade de sistemas de trabalhar em conjunto

• Padronização necessária para portabilidade• Portabilidade: capacidade de

(partes/componentes de) sistemas de serem usados em vários contextos

• Não há como padronizar tudo• E os padrões também mudam com o tempo

Padronização e “Abertura” (Openness)

• Interfaces mais importantes são publicadas (documentadas)

• Mecanismo de comunicação uniforme, compartilhado

• Cada parte pode ser construída independentemente por diferentes vendedores/desenvolvedores– Portanto devem se adequar a padrões e

interfaces publicadas

Segurança

Rede B

Rede C

Rede A

Segurança

• Confidentiality- Confidencialidade• Integrity - Integridade• Availability – Disponibilidade• ... da informação e de serviços• Confidencialidade - propriedade que limita o acesso

somente às entidades legítimas, ou seja, àquelas autorizadas pelo proprietário da informação

• Integridade - propriedade que garante que a informação e serviços mantenham as características originais estabelecidas pelo proprietário

• Disponibilidade - propriedade que garante que a informação e serviços estejam sempre disponíveis para o uso legítimo

Segurança

• Hackers também podem explorar a distribuição para seu benefício– Ataques de larga escala que levam à

indisponibilidade de sistemas (Denial Of Service attacks)

– Acesso a sistemas mau configurados e seus recursos; pense em:

• Disco e Banda (pirataria, material ilegal)• Processamento (para quebra de criptografia)• Processamento e Banda (SPAM)

Diferentes domínios de administração

• Partes do sistema podem pertencer a diferentes organizações

• Autonomia no nível organizacional• Diferentes tecnologias e padrões• Diferentes procedimentos de manutenção• Exacerba o problema de heterogeneidade• Exacerba o problema de falhas independentes• Exacerba o problema de segurança

≥≥

Aplicações centralizadas x Aplicações distribuídas

Custo de comunicação entre partes do sistema

Falhas Particionamento

Aplicações Centralizadas

Baixo Todas partes do sistema falham em conjunto

Não há

Aplicações Distribuídas

Mais alto / Variável

Partes falham independentemente

Partes podem ficar sem comunicação

Aplicações centralizadas x Aplicações distribuídas

Segurança Escalabilidade …

Aplicações Centralizadas

Controle mais simples

Limitada por natureza

Aplicações Distribuídas

Vários pontos de entrada

Depende de projeto adequado

Próxima Aula

• Vamos pisar no chão: middleware

Rede B

Rede C

Rede A