770 likes | 1.04k Views
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
E N D
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*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
Rede B Rede A Rede C O que é um sistema distribuído? 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 • 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
A 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 B C D Lavanderia sequencial 2 AM 12 6 PM 1 8 7 11 10 9 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 Tempo • De maneira sequencial, eles levam 8 horas para 4 cargas • Quanto tempo levaria se eles utilizassem a técnica de pipeline?
30 30 30 30 30 30 30 A B C D Lavanderia paralela (pipeline) • Lavanderia Pipelined leva 3.5 horas para 4 cargas! 2 AM 12 6 PM 1 8 7 11 10 9 Tempo T a s k O r d e r
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 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 • 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 • 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 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 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
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) In 2010, the fastest PC processors six-core has a theoretical peak performance of 0.107 TFLOPS (Intel Core i7980 XE) http://en.wikipedia.org/wiki/Top500
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 / 2010Cray 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 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
SIMD • Single Instruction Multiple Data • Computadores vetoriais http://en.wikipedia.org/wiki/Image:Processor_board_cray-1_hg.jpg
Blade server farms http://en.wikipedia.org/wiki/Image:IBM_bladecenter_%28front%29.jpg
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
Botnets http://en.wikipedia.org/wiki/Botnet