• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Mini-curso Arquiteturas Paralelas
 

Mini-curso Arquiteturas Paralelas

on

  • 4,882 views

 

Statistics

Views

Total Views
4,882
Views on SlideShare
4,570
Embed Views
312

Actions

Likes
0
Downloads
160
Comments
0

1 Embed 312

http://eradsp2010.wordpress.com 312

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Mini-curso Arquiteturas Paralelas Mini-curso Arquiteturas Paralelas Presentation Transcript

    • 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
    • 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
    • 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
    • 1. Introdução ERAD-SP 2010 4
    • 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
    • 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
    • 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
    • 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
    • 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
    • Motivação • Fatores para melhora de desempenho (2) Lei de Moore ERAD-SP 2010 10
    • 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
    • Motivação • Resposta PARALELISMO ERAD-SP 2010 12
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • ERAD-SP 2010 19
    • 2. Paralelismo em Arquitetura de Computadores ERAD-SP 2010 20
    • 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
    • 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
    • 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
    • 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
    • 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
    • Pipelining • Fluxo de dados do processador MIPS didático (COD/4e, Patterson & Hennessy) ERAD-SP 2010 26
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Multithreading Superescalar Superescalar com SMT (4-way) (4-way/2 threads) Thread Thread 1 Thread 2 ERAD-SP 2010 35
    • 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
    • Arquiteturas Multicore ERAD-SP 2010 37
    • 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
    • Exemplos de Multicore • Intel Core i7 e AMD Phenom X6 ERAD-SP 2010 39
    • Exemplos de Multicore • Intel Xeon 5600 (hexacore) ERAD-SP 2010 40
    • Exemplos de Multicore • Intel Xeon 7500 (8-core) ERAD-SP 2010 41
    • Exemplos de Multicore • AMD Opteron 6000 (12-core) ERAD-SP 2010 42
    • Processadores Multicore Intel Tilera Tile64 UltraSparc T2 ERAD-SP 2010 43
    • 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
    • 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
    • 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
    • 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
    • Paralelismo no Nível de Threads • Simultaneous Multiprocessing Nehalem-EX ERAD-SP 2010 48
    • 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
    • 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
    • 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
    • Multicore • Hierarquia de caches ERAD-SP 2010 52
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Fonte: Multi-core Programming, Intel Press, 2006. ERAD-SP 2010 59
    • 3. Arquiteturas Avançadas ERAD-SP 2010 60
    • 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
    • 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
    • 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
    • Manycore • Cell – 1 PPE (PowerPC) – 8 SPE – PS3 (Cell BE) – Roadrunner (PowerXCell 8i) Top 500 #3 ERAD-SP 2010 64
    • 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
    • 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
    • Manycore • CPU + GPU (ex. Intel Sandy Bridge, AMD Fusion) ERAD-SP 2010 67
    • 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
    • GPGPU • GPU – Unidade de processamento especializado para acelerar o processamento gráfico 2D e 3D. ERAD-SP 2010 69
    • GPGPU • GPU – Arquitetura baseada em SP (streaming processor) e SFU (Special Function Units) ERAD-SP 2010 70
    • 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
    • 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
    • GPGPU • Paralelismo de dados Mesma instrução para todos os dados ERAD-SP 2010 73
    • GPGPU Fonte: Nvidia, Compute Unified Device Architecture Programming Guide. 2008. ERAD-SP 2010 74
    • 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
    • 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
    • Multiprocessadores • Arquitetura básica ERAD-SP 2010 77
    • 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
    • Multiprocessadores • Coerência de caches Várias soluções na literatura. ERAD-SP 2010 79
    • 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
    • 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
    • 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
    • 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
    • Clusters • Máquinas comerciais ERAD-SP 2010 84
    • 4. Considerações Finais ERAD-SP 2010 85
    • 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
    • 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
    • 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