SlideShare una empresa de Scribd logo
1 de 88
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a Mini-curso Arquiteturas Paralelas

Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentiumEMSNEWS
 
Aula 3 - Dicionário de Termos
Aula 3 - Dicionário de TermosAula 3 - Dicionário de Termos
Aula 3 - Dicionário de TermosLuiz Marques
 
Apresentação Allied Brasil
Apresentação Allied BrasilApresentação Allied Brasil
Apresentação Allied BrasilNetPlus
 
04 instalação e manutenção do s7 300
04   instalação e manutenção do s7 30004   instalação e manutenção do s7 300
04 instalação e manutenção do s7 300confidencial
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
Soquetes e Slots
Soquetes e SlotsSoquetes e Slots
Soquetes e SlotsJullia Mada
 
18.ago ruby 09.30_painel casos de sucesso_senai
18.ago ruby 09.30_painel casos de sucesso_senai18.ago ruby 09.30_painel casos de sucesso_senai
18.ago ruby 09.30_painel casos de sucesso_senaiitgfiles
 
Cab estruturado-unidade2
Cab estruturado-unidade2Cab estruturado-unidade2
Cab estruturado-unidade2Leandro Almeida
 
Data center - Instituto Federal Farroupilha
Data center - Instituto Federal FarroupilhaData center - Instituto Federal Farroupilha
Data center - Instituto Federal FarroupilhaLuciano Vargas
 
Atualização de Projetos
Atualização de ProjetosAtualização de Projetos
Atualização de Projetososxri
 

Similar a Mini-curso Arquiteturas Paralelas (20)

Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentium
 
Pro2 11p
Pro2 11pPro2 11p
Pro2 11p
 
Aula 3 - Dicionário de Termos
Aula 3 - Dicionário de TermosAula 3 - Dicionário de Termos
Aula 3 - Dicionário de Termos
 
Integrador
IntegradorIntegrador
Integrador
 
Pro2 12p
Pro2 12pPro2 12p
Pro2 12p
 
Apresentação Allied Brasil
Apresentação Allied BrasilApresentação Allied Brasil
Apresentação Allied Brasil
 
Ko 7 kdp-06
Ko 7 kdp-06Ko 7 kdp-06
Ko 7 kdp-06
 
CPU.ppt
CPU.pptCPU.ppt
CPU.ppt
 
Amd
AmdAmd
Amd
 
04 instalação e manutenção do s7 300
04   instalação e manutenção do s7 30004   instalação e manutenção do s7 300
04 instalação e manutenção do s7 300
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Tw 9850 200
Tw 9850 200Tw 9850 200
Tw 9850 200
 
Soquetes e Slots
Soquetes e SlotsSoquetes e Slots
Soquetes e Slots
 
Rede ethernet
Rede ethernetRede ethernet
Rede ethernet
 
MP-4200 th
MP-4200 thMP-4200 th
MP-4200 th
 
Boletim contato dx nº 91
Boletim contato dx  nº 91Boletim contato dx  nº 91
Boletim contato dx nº 91
 
18.ago ruby 09.30_painel casos de sucesso_senai
18.ago ruby 09.30_painel casos de sucesso_senai18.ago ruby 09.30_painel casos de sucesso_senai
18.ago ruby 09.30_painel casos de sucesso_senai
 
Cab estruturado-unidade2
Cab estruturado-unidade2Cab estruturado-unidade2
Cab estruturado-unidade2
 
Data center - Instituto Federal Farroupilha
Data center - Instituto Federal FarroupilhaData center - Instituto Federal Farroupilha
Data center - Instituto Federal Farroupilha
 
Atualização de Projetos
Atualização de ProjetosAtualização de Projetos
Atualização de Projetos
 

Último

Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...LizanSantos1
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfIedaGoethe
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 anoandrealeitetorres
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 

Último (20)

Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdf
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 ano
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 

Mini-curso Arquiteturas Paralelas

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