Symmetric Multiprocessing Simultaneous Multithreading Paralelismo - - PowerPoint PPT Presentation

symmetric multiprocessing simultaneous multithreading
SMART_READER_LITE
LIVE PREVIEW

Symmetric Multiprocessing Simultaneous Multithreading Paralelismo - - PowerPoint PPT Presentation

Symmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nvel dos dados Lu s Nogueira luis@dei.isep.ipp.pt Departamento Engenharia Inform atica Instituto Superior de Engenharia do Porto SMP , SMT, SIMD p. 1 Fraco


slide-1
SLIDE 1

Symmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nível dos dados

Lu´ ıs Nogueira

luis@dei.isep.ipp.pt

Departamento Engenharia Inform´ atica Instituto Superior de Engenharia do Porto

SMP , SMT, SIMD – p. 1

slide-2
SLIDE 2

Fraco paralelismo dos programas

  • Exploração do paralelismo através de execução

super-escalar é limitada

  • Maioria dos programas não possuem paralelismo

suficiente

  • Distribuição dinâmica e optimização do compilador em

conjunto

  • Em média apenas 2 instruções por ciclo em programas

“normais”

  • Resultado
  • Unidades funcionais sub-aproveitadas
  • Performance máxima do CPU não é atingida

SMP , SMT, SIMD – p. 2

slide-3
SLIDE 3

Single Threaded CPU

SMP , SMT, SIMD – p. 3

slide-4
SLIDE 4

Maximizar utilizac ¸ ˜ ao do hardware

  • Programas são representados pelo S.O. por processos
  • Associado a cada processo existe um contexto
  • Descreve estado actual da execução do processo

(registos, PC, etc)

  • Cada processo possui pelo menos uma thread
  • Fluxo de execução com o seu contexto local
  • Ideia: Executar mais do que um processo/thread

simultaneamente

  • Objectivo: Aproveitar unidades funcionais inactivas

SMP , SMT, SIMD – p. 4

slide-5
SLIDE 5

Symmetric Multiprocessing (SMP)

  • Executar cada processo/thread num CPU diferente
  • Foco: processadores multi-core
  • 2 ou mais CPUs idênticos ligados a uma memória

partilhada

  • Suporte para SMP tem de ser dado pelo S.O.
  • Caso contrário CPUs adicionais permanecem inactivos
  • Escalonamento do S.O. divide processos pelos CPUs
  • Maior tempo de execução disponível para os processos
  • Menor tempo de espera pelo time slice

SMP , SMT, SIMD – p. 5

slide-6
SLIDE 6

Symmetric Multiprocessing (SMP)

  • Continuam a existir recursos comuns
  • Acessos resolvidos por exclusão mútua
  • SMP não optimiza forma como os programas usam o

hardware de cada CPU

  • Multiplica tempo de execução para os processos
  • Assim como o desperdício de hardware por ciclo de

relógio!

SMP , SMT, SIMD – p. 6

slide-7
SLIDE 7

Symmetric Multiprocessing (SMP)

SMP , SMT, SIMD – p. 7

slide-8
SLIDE 8

Simultaneous Multithreading (SMT)

  • Explorar paralelismo dentro dos processos
  • Maximizar utilização do CPU
  • Apenas um CPU físico
  • Fornece dois ou mais processadores lógicos ao S.O.
  • Exige duplicação apenas dos componentes que

armazenam contexto dos processos

  • Pequena parte do hardware do CPU
  • Unidades funcionais partilhadas pelas threads

SMP , SMT, SIMD – p. 8

slide-9
SLIDE 9

Simultaneous Multithreading (SMT)

  • Processador executa várias threads simultaneamente
  • Idealmente resultando na maximização da utilização

das unidades funcionais

  • Aumentando IPC → aumenta performance
  • Assume que existem vários programas em execução
  • Ou que os programas possuem diversas threads
  • Performance depende das aplicações
  • Melhora significativamente rendering 3D e bases de

dados

  • Pode ser pior em aplicações sensíveis a dados na cache

SMP , SMT, SIMD – p. 9

slide-10
SLIDE 10

Simultaneous Multithreading (SMT)

  • Técnica proposta em 1972 por Leonard Shar
  • Mais de 30 anos para evolução dos semicondutores

tornar técnica comercialmente viável

  • Pentium 4 foi o primeiro processador comercial a usar SMT
  • Intel denomina técnica como hyper-threading
  • IBM POWER5
  • Processador dual-core com SMT
  • Permite atribuir prioridades às threads
  • SMT ligado e desligado dinamicamente para lidar com

situações em que SMT prejudica performance

SMP , SMT, SIMD – p. 10

slide-11
SLIDE 11

Simultaneous Multithreading (SMT)

SMP , SMT, SIMD – p. 11

slide-12
SLIDE 12

SMP vs SMT

  • Comparação dos esquemas SMP e SMT revela
  • Teoricamente a mesma quantidade de trabalho pode ser

produzida por ambas as técnicas

  • Mas com menor quantidade de hardware em SMT
  • Threads em SMT partilham apenas um processador
  • Acesso partilhado pode atrasar execução de

determinadas threads

  • Restrições na complexidade dos CPUs impõe um limite

no no de threads em simultâneo

SMP , SMT, SIMD – p. 12

slide-13
SLIDE 13

Arquitecturas Vectoriais

  • Explorar paralelismo ao nível dos dados
  • Executar instrução sobre conjunto de dados
  • Primeiros protótipos em supercomputadores
  • Cray, CDC, Convex
  • Actualmente qualquer PC efectua cálculo numérico

intensivo

  • Exemplo: processamento multimédia

SMP , SMT, SIMD – p. 13

slide-14
SLIDE 14

Single Instruction Multiple Data (SIMD)

C Assembly double x[64],y[64]; add z[0-15],x[0-15],y[0-15] double z[64]; add z[16-31],x[16-31],y[16-31] for(i=0;i<64,i++) add z[32-47],x[32-47],y[32-47] z[i]=x[i]+y[i]; add z[48-63],x[48-63],y[48-63]

  • Processador vectorial → 4 iterações
  • add aplicada a blocos de 16 valores
  • Explora paralelismo ao nível dos dados (SIMD)
  • Processador escalar → 64 iterações
  • Single Instruction Single Data (SISD)
  • Explora paralelismo ao nível das instruções

SMP , SMT, SIMD – p. 14

slide-15
SLIDE 15

Single Instruction Multiple Data (SIMD)

SISD vs SIMD

SMP , SMT, SIMD – p. 15

slide-16
SLIDE 16

Single Instruction Multiple Data (SIMD)

  • Registos e unidades vectoriais especializadas
  • Vectores mantidos em registos especiais no CPU
  • Instruções aplicadas sobre registos vectoriais
  • Vector como unidade básica de computação
  • Em oposição a valores individuais nas arquitecturas

escalares

  • Aumenta a performance
  • Aplicações onde paralelismo de dados é fácil de obter

SMP , SMT, SIMD – p. 16

slide-17
SLIDE 17

Single Instruction Multiple Data (SIMD)

  • Processador SIMD puro não é suficientemente flexível
  • Difícil executar código generalista
  • Actualmente SIMD usado em ISAs especializadas
  • MMX/SSE, 3DNow!, AltiVec
  • Exige elevada largura de banda para a memória
  • Muito difícil para um compilador usar SIMD em código

“normal”

  • Programas tiram proveito se escritos em ISA específica

SMP , SMT, SIMD – p. 17