1 / 68

Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos

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

claude
Download Presentation

Processamento Paralelo Arquitetura de Sistemas Paralelos e Distribuídos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Processamento ParaleloArquitetura de Sistemas Paralelos e Distribuídos Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2011/01 - INF02799

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

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

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

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

  6. Rede B Rede A Rede C O que é um sistema distribuído? Fonte: Luís Ferreira Pires, Universidade de Twente

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  22. Vários processadores, memória compartilhada Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen,

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

  24. Quad Pentiummulti-core: vários processadores, mesmo chip Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen,

  25. Processador de 3 cores Xenon no Xbox 360

  26. Multi-computadores / Computadores paralelosMemória Local

  27. Processador de 1+1+6 cores Cell no PS3 http://beautifulpixels.blogspot.com/2008/08/multi-platform-multi-core-architecture.html

  28. Memória Compartilhada Distribuída NUMA (Non-Uniform Memory Access) Acesso à memória local é mais rápido que acesso à memória remota

  29. CUDA

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

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

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

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

  34. No Brasil • #116 NACAD/COPPE/UFRJBrazil • 6464 cores • Intel EM64T Xeon X55xx (Nehalem-EP)

  35. Cyclops64 (Blue Gene/C)Arquitetura celular Objetivo: 1.1 Pflops

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

  37. Cyclops64 (Blue Gene/C) x4

  38. Cyclops64 (Blue Gene/C) x4 x48

  39. Cyclops64 (Blue Gene/C) x4 x48 x72

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

  41. Taxonomia de Flynn

  42. SIMD • Single Instruction Multiple Data • Computadores vetoriais http://en.wikipedia.org/wiki/Image:Processor_board_cray-1_hg.jpg

  43. Cluster (MIMD)

  44. Blade server farms http://en.wikipedia.org/wiki/Image:IBM_bladecenter_%28front%29.jpg

  45. Wikimedia server farm

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

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

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

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

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

More Related