processamento paralelo arquitetura de sistemas paralelos e distribuídos prof. joão paulo a....

68
Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida ([email protected] ) 2011/01 - INF02799

Upload: internet

Post on 21-Apr-2015

141 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Processamento ParaleloArquitetura de Sistemas Paralelos e Distribuídos

Prof. João Paulo A. Almeida ([email protected])

2011/01 - INF02799

Page 2: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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)

Page 3: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 4: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 5: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 6: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

O que é um sistema distribuído?

Rede B

Rede C

Rede A

Fonte: Luís Ferreira Pires, Universidade de Twente

Page 7: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 8: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 9: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Compartilhamento de recursos

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

Page 10: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 11: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 12: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 13: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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?

Page 14: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 15: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 16: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 17: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 18: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 19: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 20: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 21: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 22: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Vários processadores, memória compartilhada

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

Page 23: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 24: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

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

Page 25: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Processador de 3 cores Xenon no Xbox 360

Page 26: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Multi-computadores / Computadores paralelosMemória Local

Page 27: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Processador de 1+1+6 cores Cell no PS3

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

Page 28: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Memória Compartilhada Distribuída

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

Page 29: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

CUDA

Page 30: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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”

Page 31: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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)

Page 32: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

i7 20106-cores

Page 33: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 34: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

No Brasil

• #116 NACAD/COPPE/UFRJBrazil

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

Page 35: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Cyclops64 (Blue Gene/C)Arquitetura celular

Objetivo: 1.1 Pflops

Page 36: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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)

Page 37: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Cyclops64 (Blue Gene/C)

x4

Page 38: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Cyclops64 (Blue Gene/C)

x48

x4

Page 39: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Cyclops64 (Blue Gene/C)

x4

x48

x72

Page 40: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 41: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Taxonomia de Flynn

  SingleInstruction

MultipleInstruction

SingleData

SISD(PCs /

Mainframes)

MISD(redundância, ex:

avião)

MultipleData

SIMD(vector / array)

MIMD(maioria dos

supercomputadores atuais)

Page 42: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

SIMD

• Single Instruction Multiple Data• Computadores vetoriais

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

Page 43: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Cluster (MIMD)

Page 44: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Blade server farms

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

Page 45: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Wikimedia server farm

Page 46: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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)

Page 47: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 48: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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?

Page 49: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 50: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 51: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 52: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 53: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 54: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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)

Page 55: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Particionamento de rede

Rede B

Rede C

Rede A

Page 56: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 57: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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…

Page 58: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 59: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Heterogeneidade

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

Page 60: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 61: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 62: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Segurança

Rede B

Rede C

Rede A

Page 63: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 64: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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)

Page 65: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

≥≥

Page 66: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 67: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

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

Page 68: Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br)jpalmeida@inf.ufes.br 2011/01

Próxima Aula

• Vamos pisar no chão: middleware

Rede B

Rede C

Rede A