Mini-curso Arquiteturas Paralelas

6,061 views
5,950 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,061
On SlideShare
0
From Embeds
0
Number of Embeds
538
Actions
Shares
0
Downloads
228
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mini-curso Arquiteturas Paralelas

  1. 1. I Escola Regional de Alto Desempenho de SP São Paulo - SP – 30 e 31 de Julho de 2010 Arquiteturas Paralelas Prof. Dr. Edson T. Midorikawa edson.midorikawa@poli.usp.br Departamento de Engenharia de Computação e Sistemas Digitais Escola Politécnica da USP ERAD-SP 2010 1
  2. 2. Apresentação – Prof. Edson Midorikawa • Formação – Graduação em Engenharia Elétrica – EPUSP (1986) – Mestrado em Engenharia Elétrica – EPUSP (1992) – Doutorado em Engenharia Elétrica – EPUSP (1997) • Atividades – Professor doutor da Escola Politécnica da USP – Membro do LAHPC (Laboratório de Arquitetura e Computação de Alto Desempenho) • Áreas de Interesse – Arquiteturas paralelas (multicore, hierarquia de memória) – Máquinas virtuais (escalonamento de recursos, gerencia de memória, interação MMV-SO) – Computação avançada (cluster, grid, cloud computing) ERAD-SP 2010 2
  3. 3. Sumário • Introdução – Motivação – Classificação de Máquinas Paralelas • Paralelismo em Arquitetura de Computadores – Pipelining – Superescalaridade – Multithreading • Arquiteturas Multicore • Arquiteturas Avançadas – Multicores Avançados – Multiprocessadores – GPGPU – Clusters ERAD-SP 2010 3
  4. 4. 1. Introdução ERAD-SP 2010 4
  5. 5. Motivação • Por que estudar “Arquitetura de Computadores”? – Disciplina obrigatória nos cursos de Engenharia de Computação, Ciência da Computação, Sistemas de Informação, etc. – Melhor entendimento do funcionamento (e aproveitamento) das máquinas modernas. – Cria novas oportunidades de pesquisa em computação avançada. ERAD-SP 2010 5
  6. 6. Motivação • Por que pesquisar “Arquiteturas Paralelas”? – Explora alternativas de projeto de novos sistemas para aumento de desempenho e de recursos de microeletrônica. – Área de pesquisa com uma comunidade brasileira ativa e atuante em várias áreas (SBAC-PAD) – Áreas de atuação: • Desenvolvimento de novos modelos de computação • Desenvolvimento de novas arquiteturas de sistemas computacionais (processadores multi-core, multiprocessadores, sistemas de cluster, grid e cloud computing) • Viabiliza novas aplicações computacionais (modelos matemáticos) – Previsão de tempo e de clima – Drug design, genômica, proteômica – Simulação (car crash, plataforma petrolífera, ...) ERAD-SP 2010 6
  7. 7. Motivação • Evolução em várias categorias de computadores ENIAC NORC CDC-6600 Cray-1 Cray-2 Cray-3 Cray T3E super- computador Cray-4 ? UNIVAC /360 /370 /390 z/900 mainframe PDP-8 PDP-11 VAX minicomputador x RS/6000 Xeon servidor/workstation 4004 8080 8088 PPro microcomputador 80286 80486 PII PIIIP4 desktop PC Altair 8088 80386 Pentium value PC Celeron 1950 1960 1970 1980 1990 2000 ERAD-SP 2010 7
  8. 8. Motivação • Evolução do desempenho de processadores SPE C int92 L e ve ling off 10000 P4/3200 * Pr e s c ott (2M ) * * * * Pr e s c ott (1M ) 5000 P4/3060N or thw ood B P4/2400 **** P4/2000 P4/2800 * * P4/2200 2000 ** P4/1500 P4/1700 PI I I /600 I I /1000 1000 ** * PI PI I /400PI I I /500 PI I /300* * PI I /450 500 * ~ 100*/10 ye ar s Pe ntium/200Pe ntium Pr o/200 * 200 * * Pe ntium/133 * Pe ntium/166 Pe ntium/100 * *Pe ntium/120 100 Pe ntium/66 * 50 * 486-D X 4/100 486/50 * 486-D X 2/66 * 486/33 * 20 486-D X 2/50 * * 486/25 10 *386/33 386/20 *386/25 5 * * 386/16 80286/12 2 * 80286/10 1 * 8088/8 0.5 * 0.2 * 8088/5 Y e ar 79 1980 1 82 83 84 85 86 87 88 891990 8 91 92 93 94 95 96 97 98 99 2000 01 02 03 04 05 ERAD-SP 2010 8
  9. 9. Motivação • Fatores para melhora de desempenho fc (MHz) Le ve ling off 5000 Pe ntium 4 * * * *  2000 ** * *  * 1000 Aumento da ~100*/10ye ars * * *   500 Frequencia do relógio Pe ntium III * * ** * Pe ntium II * * *  200 * * Pe ntium Pe ntium Pro * 486-DX4 **  100 * ~10*/10ye ars  486-DX2 * * 50 * * 486  * * 386 * *  20 * 286 * * 10 * 8088 *  5 *  2 1 Year 78 79 1980 81 82 83 84 85 86 87 88 89 1990 91 92 93 94 95 96 97 98 99 2000 01 02 03 04 05 Year of first volume shipment ERAD-SP 2010 9
  10. 10. Motivação • Fatores para melhora de desempenho (2) Lei de Moore ERAD-SP 2010 10
  11. 11. Motivação • Fatores para melhora de desempenho (3) • Como manter a tendencia de aumento de desempenho dos processadores? • O que fazer se não é possível manter continuamente o aumento do clock? • Como utilizar eficientemente os transistores disponíveis em um chip? ERAD-SP 2010 11
  12. 12. Motivação • Resposta PARALELISMO ERAD-SP 2010 12
  13. 13. Classificação de Máquinas Paralelas • Classificação de Flynn – Classificação de arquiteturas paralelas genérica de acordo com as características do fluxo de instruções e o fluxo de dados (único ou múltiplo) Michael J. Flynn ERAD-SP 2010 13
  14. 14. Classificação de Máquinas Paralelas • SISD – Single Instruction, Single Data • Um único fluxo de instruções • Um único fluxo de dados – Contém as arquiteturas tradicionais não paralelas • Máquinas de Von Neumann instrução dado UC = unidade de controle UP = unidade de processsamento MEM = memória ERAD-SP 2010 14
  15. 15. Classificação de Máquinas Paralelas • SIMD – Single Instruction, Multiple Data • Um único fluxo de instrução • Múltiplos fluxos de dados – Execução síncrona da instrução para todos os dados – Exemplos: • Processadores vetoriais (Cray 1) instrução dados • GPU ERAD-SP 2010 15
  16. 16. Classificação de Máquinas Paralelas • MISD – Multiple Instruction, Single Data • Múltiplos fluxos de instrução • Um único fluxo de dados UP2 – Execução de várias instruções UP3 em um único dado. ... ... – Não há exemplos. UCn UPn instruções dado ERAD-SP 2010 16
  17. 17. Classificação de Máquinas Paralelas • MIMD – Multiple Instruction, Multiple Data • Múltiplos fluxos de instruções • Múltiplos fluxos de dados – Permite a execução de instruções diferentes para cada um dos dados – Exemplos: • Arquiteturas paralelas atuais instruções dados • Top500.org ERAD-SP 2010 17
  18. 18. Máquinas Paralelas • Top500.org – Lista com os 500 computadores mais rápidos – Atualizada duas vezes ao ano (junho e novembro) ERAD-SP 2010 18
  19. 19. ERAD-SP 2010 19
  20. 20. 2. Paralelismo em Arquitetura de Computadores ERAD-SP 2010 20
  21. 21. Fontes de Paralelismo • Há várias fontes de execução paralela em um computador moderno: – Aplicações diferentes; Multiprogramação – Instâncias de execução Multitarefa da mesma aplicação; – Fluxo de instruções (threads) de uma aplicação; Processadores multicore – Instruções de um programa (ILP) ERAD-SP 2010 21
  22. 22. Fontes de Paralelismo • Paralelismo no Nível de Instrução (ILP) – Permite executar várias instruções em cada ciclo de relógio. – Modificações na microarquitetura do processador para possibilitar a execução paralela de instruções. – Alternativas: • Paralelismo temporal: encadeamento no fluxo de execução das instruções (pipeline); • Paralelismo na emissão de instruções: submissão de várias instruções para execução pelo fluxo de dados (VLIW e superescalaridade); • Paralelismo de dados: permite executar várias instâncias da mesma instrução para um conjunto de dados (processamento SIMD ou vetorial). ERAD-SP 2010 22
  23. 23. Fontes de Paralelismo Paradigmas de processamento ILP Paralelismo Paralelismo de Paralelismo Temporal Emissão de Instruções de Dados Resolução estática Resolução dinâmica de dependências de dependências Processadores Processadores Processadores extensão com Pipeline VLIW Superscalares SIMD ERAD-SP 2010 23
  24. 24. Evolução do Paralelismo Extensão do Processamento paralelismo ILP Sequencial da execução + paralelismo Paralelismo de envio de + paralelismo temporal instruções de dados Processadores Processadores Processadores Processadores von Neumann Superscalares com tradicionais Pipelined Superscalares extensão SIMD ~ 1985/88 ~ 1990/93 ~ 1994/00 t Nível de redundância de hardware ERAD-SP 2010 24
  25. 25. Pipelining • Execução de uma instrução é dividida em etapas: Memória Memória Registra- dores IF ID EXE MEM WB IF = busca da instrução na memória (inclui atualização do PC) ID = decodificação da instrução + busca de valores em registradores EXE = execução da instrução (ULA ou cálculo de endereços) MEM = acesso à memória ou instrução de desvio WB = escrita resultados nos registradores de saída Uma instrução leva 5 períodos de clock para concluir. ERAD-SP 2010 25
  26. 26. Pipelining • Fluxo de dados do processador MIPS didático (COD/4e, Patterson & Hennessy) ERAD-SP 2010 26
  27. 27. Pipelining • Inicia a execução de uma instrução por ciclo de clock IF I1 I2 I3 I4 I5 I6 fluxo de instruções ID I1 I2 I3 I4 I5 EXE I1 I2 I3 I4 MEM I1 I2 I3 WB I1 I2 ciclo 1 2 3 4 5 6 A cada ciclo de clock, termina-se a execução de uma instrução. ERAD-SP 2010 27
  28. 28. Superescalaridade • Em um processador superescalar, várias instruções são submetidas para execução simultaneamente. Memoria Memoria Regis- tradores instruções instruções Busca de instr. ID EXE MEM WB • Várias instruções do programa são analisadas para execução paralela. PROBLEMA: dependência de dados entre instruções. ERAD-SP 2010 28
  29. 29. Superescalaridade • Dependência de dados 1 2 3 4 5 6 7 8 9 Time (cycles) $s0 lw $t0 lw $t0, 40($s0) 40 + RF DM RF IM $t0 $t0 add $t1 add $t1, $t0, $s1 $s1 $s1 + RF $s2 RF $s2 DM RF IM sub $t0 sub $t0, $s2, $s3 $s3 $s3 - Stall $s4 and and $t2 and $t2, $s4, $t0 $t0 & RF $s5 DM RF IM IM or or $t3 or $t3, $s5, $s6 $s6 | $t3 sw $s7 sw $s7, 80($t3) 80 + RF DM RF IM ERAD-SP 2010 29
  30. 30. Superescalaridade • Para resolver o problema da dependência de dados, um processador superescalar permite a execução fora de ordem das instruções (OOO – out of order execution) 1 2 3 4 5 6 7 8 Time (cycles) $s0 lw $t0 lw $t0, 40($s0) 40 + RF $s5 DM RF IM or $t3 or $t3, $s5, $s6 $s6 | RAW $t3 sw $s7 sw $s7, 80($t3) 80 + RF DM RF two cycle latency IM between load and RAW use of $t0 $t0 add $t1 add $t1, $t0, $s1 $s1 + RF $s2 DM RF WAR IM sub $t0 sub $t0, $s2, $s3 $s3 - RAW $s4 and $t2 and $t2, $s4, $t0 $t0 & RF DM RF IM ERAD-SP 2010 30
  31. 31. Multithreading • Algumas definições: – Processo: programa rodando em um computador. – Vários processos estão em execução simultaneamente, como p. ex.: browser Web, editor de texto, anti-virus. – Thread: parte de um processo. – Cada processo pode ter vários threads, como p. ex.: um editor de texto pode ter vários threads para digitação, verificação ortográfica e impressão. • Em um processador convencional: – Apenas um thread é executado por vez. – Quando ocorre uma parada (stall) na execução de um thread (p.ex. acesso à memória), realiza-se uma troca de contexto para outro thread. ERAD-SP 2010 31
  32. 32. Multithreading • Em um processador com multithreading, vários threads podem estar ativos ao mesmo tempo: – Possui mais de um conjunto de registradores de estado – Quando ocorre stall em um thread, outro é colocado em execução imediatamente (não há necessidade de operações de salvamente e carga de estado) – Se um thread não usar uma unidade funcional (p.ex. somador, ULA, FPU), outro pode usá-lo • Não modifica o paralelismo de instruções de um único thread, mas aumenta o desempenho geral do sistema. ERAD-SP 2010 32
  33. 33. Multithreading • A presença de vários conjuntos de registradores de estado é normalmente interpretado pelos sistemas operacionais como se houvesse vários processadores (virtuais), onde os processos podem ser escalonados. • Permite um melhor compartilhamento dos recursos do processador – Unidades funcionais – Memórias cache ERAD-SP 2010 33
  34. 34. Multithreading • Simultaneous Multithreading (SMT) – Permite executar instruções de threads de vários programas (processos) simultaneamente sem a necessidade de troca de contexto sem blocked Interleaved multithreading multithreading multithreading SMT ciclos cache miss – Vantagens • Permite a execução simultânea de mais instruções por ciclo • Desempenho total se tiver apenas um thread ativo ERAD-SP 2010 34
  35. 35. Multithreading Superescalar Superescalar com SMT (4-way) (4-way/2 threads) Thread Thread 1 Thread 2 ERAD-SP 2010 35
  36. 36. Multithreading • Simultaneous Multithreading – A Intel implementa a técnica SMT em seus processadores com o nome comercial “Hyperthreading” (HT) permitindo a execução simultânea de 2 threads por core. – Sun UltraSparc T2 (8 threads por core) – IBM Power 7 (4 threads por core) ERAD-SP 2010 36
  37. 37. Arquiteturas Multicore ERAD-SP 2010 37
  38. 38. Processadores Multicore • Etapa atual no desenvolvimento de novas arquiteturas de processadores. • Permite a execução simultânea de múltiplos threads e/ou aplicações. • Inclui vários núcleos de processadores na pastilha. ERAD-SP 2010 38
  39. 39. Exemplos de Multicore • Intel Core i7 e AMD Phenom X6 ERAD-SP 2010 39
  40. 40. Exemplos de Multicore • Intel Xeon 5600 (hexacore) ERAD-SP 2010 40
  41. 41. Exemplos de Multicore • Intel Xeon 7500 (8-core) ERAD-SP 2010 41
  42. 42. Exemplos de Multicore • AMD Opteron 6000 (12-core) ERAD-SP 2010 42
  43. 43. Processadores Multicore Intel Tilera Tile64 UltraSparc T2 ERAD-SP 2010 43
  44. 44. Paralelismo no Nível de Threads Granularidade do paralelismo Múltiplos threads TLP (paralelismo no nível de threads) Thread (fluxo de instruções) ILP (paralelismo no nível de instruções) ERAD-SP 2010 44
  45. 45. Paralelismo no Nível de Threads • Execução paralela de threads De onde vem os vários threads? de aplicações da mesma diferentes aplicação Multiprogramação Multitarefa, Multithreading ERAD-SP 2010 45
  46. 46. Paralelismo no Nível de Threads Implementação de paralelismo no nível de threads em microprocessadores SMP: Symmetric Multiprocessing SMT: Simultaneous Multithreading (CMP: Chip Multiprocessing) (HT: Hyperthreading (Intel)) Implementação de dois ou mais cores Implementação de um colocados na mesma pastilha core multithreaded pastilha (chip) Core SMT Core L2/L3 Core L2/L3 L3/Memória ERAD-SP 2010 L3/Memória 46
  47. 47. Paralelismo no Nível de Threads • Simultaneous Superescalar Superescalar com SMT Multithreading (4-way) (4-way/2 threads) Thread Thread 1 Thread 2 ERAD-SP 2010 47
  48. 48. Paralelismo no Nível de Threads • Simultaneous Multiprocessing Nehalem-EX ERAD-SP 2010 48
  49. 49. Simultaneous Multiprocessing • A presença de vários núcleos de processador (core) em um computador pode ser realizada em dois níveis distintos: – Multiprocessador: vários chips processadores. – Multicore: um único chip processador com vários cores. chip único ERAD-SP 2010 49
  50. 50. Multicore • Vários “processadores single core” agrupados em um único chip (CMP = chip multiprocessor). – Replicação real dos recursos de um processador dentro do chip (ao contrário do multithreading) – Compatibilidade de código com os multiprocessadores (modelo de memória compartilhada) – Incorpora uma hierarquia complexa de memórias cache interna • Caches L1 e L2 privados (particulares a cada core) • Cache L3 único e compartilhado entre os cores ERAD-SP 2010 50
  51. 51. Multicore • Organização interna de um Multicore – Principais componentes: • Núcleos de processador (cores) • Memórias cache • Rede de interconexão interna • Interface com barramento de E/S externo • Controlador de interrupções • Timers • etc Fonte: ARM, The ARM Cortex-A9 Processors White Paper, 2009. ERAD-SP 2010 51
  52. 52. Multicore • Hierarquia de caches ERAD-SP 2010 52
  53. 53. Multicore • Interconexão Interna Implementação das interconexões Árbitro/Implementações Crossbar Anel de cache multi-porta Aspectos quantitativos, tais como número de fontes e destinos ou requisitos de banda, afetam qual alternativa de implementação é mais benéfica. Número pequeno de Número grande de fontes e destinos fontes e destinos p.ex. Conexão dos dual-cores UltraSPARC T1 (2005) Cell BE (2006) aos cache L2 compartilhado UltraSPARC T2 (2007) XRI (2005) ERAD-SP 2010 53
  54. 54. Multicore • Aplicação de multicores vs. SMP e processadores superescalares – Instrução – Bloco básico – Loop – Tarefa – Processo Fonte: Olukotun et al. Chip Multiprocessor Architecture, 2007. ERAD-SP 2010 54
  55. 55. Multicore • Breve Histórico Prescott Smithfield (core original) (dois cores Prescott modificados colocados no mesmo die) 2/2004 5/2005 90 nm 90 nm 112 mm2 2 x 103 mm2 125 mtrs 2 x 115 mtrs L2: 1 MB L2: 2 MB Pentium D/EE Pentium 4 A/E/F series Pentium D 8xx Pentium 4 5xx series Pentium EE 840 ERAD-SP 2010 55
  56. 56. Multicore • Breve Histórico Conroe Kentsfield (die) (dois Conroes no mesmo empacotamento) 7/2006 11/2006 65 nm 65 nm 143 mm2 2 x 143 mm2 167/291 mtrs 2 x 167/291 mtrs Core 2 Duo E 6x00 series Core 2 Extreme QX6x00 series Core2 Extrem X6x00 series ERAD-SP 2010 56
  57. 57. Desafio dos Multicores • Os processadores multicore... – possuem uma grande capacidade computacional (“lembre-se que um octocore permite executar ao menos 8 threads simultaneamente”); – Implementam várias otimizações para execução paralela (caches integrados, alta banda de comunicação, etc); mas – Os programas existentes não foram escritos para usar tais recursos. ERAD-SP 2010 57
  58. 58. Desafio dos Multicores • É muito importante que a aplicação seja capaz de aproveitar completamente os recursos dos processadores multicore.  Conceitos de programação paralela e multithreaded. ERAD-SP 2010 58
  59. 59. Fonte: Multi-core Programming, Intel Press, 2006. ERAD-SP 2010 59
  60. 60. 3. Arquiteturas Avançadas ERAD-SP 2010 60
  61. 61. Multicores Avançados • IBM Power 7 – Lançado em 2010 – 1,2 bilhões de transistores – Módulos de até 4 soquetes – 4, 6 ou 8 cores por chip – 4 threads SMT por core – 12 unidades funcionais por core ERAD-SP 2010 61
  62. 62. Multicores Avançados • Sun UltraSparc T3 – a ser lançado em 2010 – 1 bilhão de transistores – 16 cores – 8 threads SMT por core – 128 threads por chip – SMP com 4 processadores ERAD-SP 2010 62
  63. 63. Manycore • Pastilhas de processadores multicore com cores heterogêneos • Aplicações – Processamento especializado – Co-processamento • Exemplos: – Cell (Sony, Toshiba, IBM) – Intel Sandy Bridge – AMD Fision ERAD-SP 2010 63
  64. 64. Manycore • Cell – 1 PPE (PowerPC) – 8 SPE – PS3 (Cell BE) – Roadrunner (PowerXCell 8i) Top 500 #3 ERAD-SP 2010 64
  65. 65. Manycore • Cell Fonte: Gshwind M., „Chip Multiprocessing and the Cell BE,” ACM Computing Frontiers, 2006, http://beatys1.mscd.edu/compfront//2006/cf06-gschwind.pdf ERAD-SP 2010 65
  66. 66. Manycore • Cell Circuito de um único SPE Fonte: Gshwind M., „Chip Multiprocessing and the Cell BE,” ACM Computing Frontiers, 2006, http://beatys1.mscd.edu/compfront//2006/cf06-gschwind.pdf ERAD-SP 2010 66
  67. 67. Manycore • CPU + GPU (ex. Intel Sandy Bridge, AMD Fusion) ERAD-SP 2010 67
  68. 68. GPGPU • GPGPU = General Purpose computation on Graphics Processing Unit • Utilização de GPUs (unidades de processamento gráfico) para execução de computação normalmente realizada em CPUs. • Exemplos: – NVIDIA – ATI ERAD-SP 2010 68
  69. 69. GPGPU • GPU – Unidade de processamento especializado para acelerar o processamento gráfico 2D e 3D. ERAD-SP 2010 69
  70. 70. GPGPU • GPU – Arquitetura baseada em SP (streaming processor) e SFU (Special Function Units) ERAD-SP 2010 70
  71. 71. GPGPU • CPU vs. GPU – Comparação relativa a utilização de área de silício alocada por funcionalidade nas CPUs e GPUs. Fonte: Nvidia, Compute Unified Device Architecture Programming Guide. 2008. ERAD-SP 2010 71
  72. 72. GPGPU • Princípios básicos – Multicore • streaming multiprocessor (Nvidia) • superscalar shader processor (AMD) • wide SIMD processor, CPU core (Intel). – Processamento vetorial • Modelo SIMD • Paralelismo de dados – Hardware Multithreading • Sincronização de barreira ERAD-SP 2010 72
  73. 73. GPGPU • Paralelismo de dados Mesma instrução para todos os dados ERAD-SP 2010 73
  74. 74. GPGPU Fonte: Nvidia, Compute Unified Device Architecture Programming Guide. 2008. ERAD-SP 2010 74
  75. 75. GPGPU • Mais informações: – gpgpu.org – www.nvidia.com – developer.amd.com (ATI) – Minicurso 2 (avançado): “Programação Paralela: CUDA” Raphael Y. de Camargo (UFABC) ERAD-SP 2010 (Material disponível no CD) ERAD-SP 2010 75
  76. 76. Multiprocessadores • Um multiprocessador contém vários (chips de) processadores • Memória compartilhada entre os processadores – Comunicação pela memória – Modelo UMA (uniform memory access) – Baixa escalabilidade (até poucas dezenas de processadores) – Fácil programação (OpenMP, CPar, ...) ERAD-SP 2010 76
  77. 77. Multiprocessadores • Arquitetura básica ERAD-SP 2010 77
  78. 78. Multiprocessadores • Cada processador pode ser um multicore com suporte a multithreading – Vários níveis de paralelismo • Outras questões importantes – Coerência de caches – Multiprocessadores NUMA – Programação paralela ERAD-SP 2010 78
  79. 79. Multiprocessadores • Coerência de caches Várias soluções na literatura. ERAD-SP 2010 79
  80. 80. Multiprocessadores • Multiprocessadores NUMA – NUMA = Non-Uniform Memory Acess – Grupos de processadores com sua respectiva memória – Tempos de acesso à memória diferentes – Mantém modelo de memória compartilhada (mas precisa cuidados para obter desempenho) ERAD-SP 2010 80
  81. 81. Multiprocessadores • Programação Paralela – Método de desenvolvimento de programas que explora a disponibilidade de vários processadores/cores para uma única aplicação. – Modelos de programação • Memória compartilhada (OpenMP, CPar) • Memória distribuída (MPI) • Mais informações: Minicurso 3 (básico): Programação Paralela: multicores e clusters Profa. Dra. Liria Matsumoto Sato (Poli-USP) (amanhã – 31/07 às 14h00) ERAD-SP 2010 81
  82. 82. Clusters • Arquitetura de sistema paralelo multiprocessador organizado como um conjunto de processadores interligados através de uma rede de interconexão rápida Interconexão rápida (Myrinet, Infiniband, Gigabit Ethernet) Rede interna de administração (Ethernet) cluster ERAD-SP 2010 82
  83. 83. Clusters • Conhecido inicialmente como NOW (Network of Workstations) ou COW (cluster of workstations) • Cada nó tem sua própria memória local (não compartilhada) – Comunicação por troca de mensagens – Difícil programação • Modelo de programação diferente • Conceito cliente-servidor • MPI ERAD-SP 2010 83
  84. 84. Clusters • Máquinas comerciais ERAD-SP 2010 84
  85. 85. 4. Considerações Finais ERAD-SP 2010 85
  86. 86. Arquiteturas Paralelas Alguns pensamentos: • Hoje, a maioria de sistemas computacionais apresenta uma arquitetura paralela. Contudo nossos cursos não apresentam este conteúdo de forma detalhada. • É uma grande oportunidade para todos melhorar sua formação com um estudo detalhado deste tópico. ERAD-SP 2010 86
  87. 87. Arquiteturas Paralelas Pensamento final: • Precisamos difundir a necessidade em compreender o funcionamento das arquiteturas paralelas e do aprendizado das técnicas de programação paralela e distribuída para usufruirmos dos benefícios destas máquinas. ERAD-SP 2010 87
  88. 88. Bibliografia Algumas referências bibliográficas interessantes para consulta sobre Arquiteturas Paralelas: • Akter, S.; Roberts, J. Multi-core Programming. Intel Press, 2006. • Culler, D.; Singh, J. Parallel Computer Architecture: A Hardware/ Software Approach. Morgan Kaufmann, 1999. • De Rose, C.; Navaux, P. Arquiteturas Paralelas. Editora Sagra-Luzzatto, 2003. (Série Livros Didáticos - Número 15) • Grama, A.; Gupta, A.; Karypis, G. and Kumar, V. Introduction to Parallel Computing. 2nd ed., Addison-Wesley, 2003. • Hennessy, J.L.; Patterson, D.A. Computer Architecture: A Quantitative Approach. 4th ed., Morgan Kaufmann, 2007. • Olukotun, K.; Hammond, L. and Laudon, J. Chip Multiprocessor Architecture: Techniques to Improve Throughput and Latency. Morgan & Claypool, 2007. • Zomaya, A.Y.H. (ed.) Parallel & Distributed Computing Handbook. McGraw-Hill, 1996. ERAD-SP 2010 88

×