Prof. João Paulo A. Almeida 2011/01 - INF02799

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Paralelismo em Máquinas Multiprocessadas
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
O Paradigma Cliente/Servidor Prof. Carlos A. Maziero, PhD PPGIA PUCPR.
Noções de Sistemas Operacionais
Virtualização André Bernardes RA: César Kallas RA:
Tópicos I – Prof. Eduardo Zagari Virtualização André Bernardes RA: César Kallas RA: Eduardo Stuchi RA: Rafael Curi RA:
Sistemas Distribuídos:Definições e Caracteristicas
Rede Local - Instalação
Rede Local - Instalação
Sistemas Operacionais - 3
Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2004/ Tendências Actuais.
MULTICORE Aluno: Gabriel Antonio Leite São processadores caracterizados por apresentar vários cores (núcleos de processamento) em um único chip.
Sistemas Distribuídos
Software Básico Silvio Fernandes
ARQUITETURA DE COMPUTADORES II
ARQUITETURAS RISC E CISC
Multithreading e multiprocessamento
William Stallings Arquitetura e Organização de Computadores 8a Edição
Arquitetura de Sistemas Operacionais
Introdução à Informática
Computação Distribuída
MC542 Organização de Computadores Teoria e Prática
Processadores risc: sparc – powerpc – arm - mips.
Sistemas Operacionais
SISTEMAS DISTRIBUÍDOS
Sistemas Distribuídos e Redes de Computadores
Maria Aparecida Castro Livi
Silberschatz and Galvin Operating System Concepts Unidade 1: Introdução O que é um sistema operacional? Systemas simples em lote (batch) Sistemas.
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
Como Funciona o Computador
Componentes do Computador e noções de Arquitetura de Computadores
Sistemas Distribuídos
GESTÃO DE SISTEMAS DE INFORMAÇÃO
Sistemas Operacionais
YADFS Yet Another Distributed File System
Tecnologia de Informática
Paralelismo Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; -
CUDA vs OpenCL Introdução.
Tópicos em redes e sistemas distribuídos B
Tópicos em redes e sistemas distribuídos B
Tópicos em redes e sistemas distribuídos
Sistemas Distribuídos
Carlos Oberdan Rolim Ciência da Computação
Arquitetura de computadores
Sistemas Operacionais
Sistemas Operacionais I
Gerencia de Redes Redes de Computadores II
Noções de Software Escola Almirante Soares Dutra
Sistemas Distribuídos
Sistemas Distribuídos
Universidade de Mogi das Cruzes Tec
Augusto Martins e José Luís Zem Universidade Metodista de Piracicaba - UNIMEP Curso de Bacharelado em Sistemas de Informação Utilização de Cluster de Computadores.
1 RAID LEVEL 0 Description
Paralelismo em Máquinas Multiprocessadas
Single-Chip Cloud Computer (SCC) Um processador many-core experimental desenvolvido pela Intel Labs.
Processos.
Sistemas Distribuídos
Tópicos Especiais em Redes de Computadores 6º Semestre Aula 03 Prof
Escola Tecnológica e Profissional do Sicó
Introdução aos Sistemas Operacionais
Processadores.
Funcionamento interno do computador
Arquitetura de computadores
Conceituação e Classificação
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
Computadores com Super Capacidade de Processamento e Armazenamento (curiosidades) Prof. César Augusto M. Marcon ARQUITETURA DE COMPUTADORES.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
Transcrição da apresentação:

Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2011/01 - INF02799 Processamento Paralelo Arquitetura 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*T onde: P é a média aritmética das provas parciais e T é 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#wp84181

O que é um sistema distribuído? Rede B Rede A Rede C 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 Autonomia Paralelismo no nível de instrução Várias linhas de execução em um mesmo processador Várias linhas de execução em diferentes processadores (SMP, dual, quad core) Computadores paralelos interconectados com redes dedicadas de alta velocidade Cluster de computadores 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 6 PM 7 8 9 10 11 12 1 2 AM 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 Tempo A B C D De maneira sequencial, eles levam 8 horas para 4 cargas Quanto tempo levaria se eles utilizassem a técnica de pipeline?

Lavanderia paralela (pipeline) 6 PM 7 8 9 10 11 12 1 2 AM B C D A 30 Tempo T a s k O r d e Lavanderia Pipelined leva 3.5 horas para 4 cargas!

Paralelismo no nível de instrução I-Fetch 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) Decode Execute Memory Write Result

Paralelismo no nível de instrução F R X M W F R X M W F R X M W Instrução 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 Autonomia Paralelismo no nível de instrução Várias linhas de execução em um mesmo processador Várias linhas de execução em diferentes processadores (SMP, dual, quad core) Computadores paralelos interconectados com redes dedicadas de alta velocidade Cluster de computadores 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 Autonomia Paralelismo no nível de instrução Várias linhas de execução em um mesmo processador Várias linhas de execução em diferentes processadores (SMP, dual, quad core) Computadores paralelos interconectados com redes dedicadas de alta velocidade Cluster de computadores 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 Symmetric Multiprocessing / SMP: Processadores idênticos / multi core Memória compartilhada Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen,

Quad Pentium multi-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 paralelos Memó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) Rank Site Computer/Year Vendor Cores Rmax Rpeak TFlops Power (KW) 1 National Supercomputing Center in Tianjin China Tianhe-1A - NUDT TH MPP, X5670 2.93Ghz 6C, NVIDIA GPU, FT-1000 8C / 2010 NUDT 186368 2566.00 4701.00 4040.00 2 DOE/SC/Oak Ridge National Laboratory United States Jaguar - Cray XT5-HE Opteron 6-core 2.6 GHz / 2009 Cray Inc. 224162 1759.00 2331.00 6950.60 3 National Supercomputing Centre in Shenzhen (NSCS) China Nebulae - Dawning TC3600 Blade, Intel X5650, NVidia Tesla C2050 GPU / 2010 Dawning 120640 1271.00 2984.30 2580.00 4 GSIC Center, Tokyo Institute of Technology Japan TSUBAME 2.0 - HP ProLiant SL390s G7 Xeon 6C X5670, Nvidia GPU, Linux/Windows / 2010 NEC/HP 73278 1192.00 2287.63 1398.61 5 DOE/SC/LBNL/NERSC United States Hopper - Cray XE6 12-core 2.1 GHz / 2010 Cray 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://en.wikipedia.org/wiki/Top500

http://www.top500.org/lists/2010/11/performance_development i7 2010 6-cores http://www.top500.org/lists/2010/11/performance_development

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 6464 cores #116 NACAD/COPPE/UFRJ Brazil 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) x4 x48

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   Single Instruction Multiple Instruction Single Data SISD (PCs / Mainframes) MISD (redundância, ex: avião) Multiple Data 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)

Cluster Não surpreendente: Antigo Cluster do LCAD http://www.lcad.inf.ufes.br/site/node/4 Janeiro/2003 64 nós de processamento e 1 nó de administração (master) 256 MB de memória e 20Gb de capacidade de armazenamento por nó o cluster totaliza 16 GB de memória RAM e 1,2 TB de capacidade de armazenamento. Custo de montagem: US$ 48.000,00 ATHLON XP 1800, 1.53 GHz 204 Gflop/s Não surpreendente: $ CTPETRO INFRA - FINEP

Antigo Cluster do LCAD

Cluster

Clusters do LCAD Enterprise 2: 70 núcleos em 35 processadores Intel CORE 2 DUO 1.8GHz; Enterprise 3: 140 núcleos em 35 processadores Intel QUAD CORE 2.4GHz

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?

Programação de Clusters / Multicomputadores Os multicomputadores têm muitas vezes sistemas operacionais dedicados E programação de baixo nível de abstração que é dependente da arquitetura Não há mecanismos sofisticados de estruturação de software como os que nós vamos estudar Por exemplo, orientado a objetos ou orientado a componentes

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

Botnets http://en.wikipedia.org/wiki/Botnet Date 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/day DownUp, DownAndUp, DownAdUp, Kido Zeus 3,600,000 (US Only) -1n/a Zbot, PRG, Wsnpoem, Gorhax, Kneber 2007 (Around) Cutwail 1,500,000 74 billion/day Pandex, Mutant (related to: Wigon, Pushdo) Grum 560,000 39.9 billion/day Tedroo Mega-D 509,000 Ozdok Kraken 495,000 9 billion/day Kracken http://en.wikipedia.org/wiki/Botnet

Aplicações distribuídas: interação entre partes Rede B Rede A Rede C A complexidade às vezes está na forma de interação ou na coordenação entre as partes distribuídas

Aplicações distribuídas: interação entre partes Rede B Rede A Rede C A complexidade às vezes está na forma de interação ou na coordenação entre as partes distribuídas

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 A Rede C

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 A Rede C

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 A Rede C

Níveis de paralelismo Autonomia Paralelismo no nível de instrução Várias linhas de execução em um mesmo processador Várias linhas de execução em diferentes processadores (dual, quad core) Computadores paralelos interconectados com redes dedicadas de alta velocidade Cluster de computadores Computadores na Internet Redes compartilhadas, comunicação peer-to-peer, máquinas heterogêneas, problemas de segurança, … Autonomia