Multiprocessadores e Paralelismo n - PowerPoint PPT Presentation

1 / 92
About This Presentation
Title:

Multiprocessadores e Paralelismo n

Description:

Title: Slide 1 Author: Usuario Last modified by: Edna Barros Created Date: 8/18/2006 12:55:46 PM Document presentation format: Apresenta o na tela (4:3) – PowerPoint PPT presentation

Number of Views:115
Avg rating:3.0/5.0
Slides: 93
Provided by: Usuar1466
Category:

less

Transcript and Presenter's Notes

Title: Multiprocessadores e Paralelismo n


1
(No Transcript)
2
Multiprocessadores e Paralelismo nível de Thread
3
Roteiro da Aula
  • Conceitos básicos
  • Taxonomia dos processadores
  • Modelos de memória e de comunicação
  • Problema da coerência de memória
  • Protocolos de coerência baseado em snoop
  • Protocolos de coerência baseado em diretórios

4
Desempenho Uniprocessor (SPECint)
3X
From Hennessy and Patterson, Computer
Architecture A Quantitative Approach, 4th
edition, 2006
  • VAX 25/year 1978 to 1986
  • RISC x86 52/year 1986 to 2002
  • RISC x86 ??/year 2002 to present

5
Interesse em Multiprocessadores
  • Uma crescente utilização de servidores
  • Um crescimento em aplicações data-intensive
  • Um melhor entendimento de como usar
    multiprocessadores para explorar thread-level
    paralelismo
  • Investimento em replicação é mais atrativo que
    investimento em um projeto exclusivo.

6
Flynns Taxonomy
M.J. Flynn, "Very High-Speed Computers", Proc.
of the IEEE, V 54, 1900-1909, Dec. 1966.
Single Instruction Single Data (SISD) (Uniprocessor) Single Instruction Multiple Data SIMD (single PC Vector, CM-2)
Multiple Instruction Single Data (MISD) (????) Multiple Instruction Multiple Data MIMD (Clusters, SMP servers)
  • Flynn classificou de acordo com streams de dado e
    controle em 1966
  • SIMD ? Data Level Parallelism
  • MIMD ? Thread Level Parallelism
  • MIMD mais popular pois
  • Flexibilidade N programs e 1 programa
    multithreaded
  • Cost-effective mesma MPU em desktop MIMD

7
Multiprocessamento
  • Clusters
  • commodity clusters
  • Baseados em processadores comerciais e
    interconexões
  • custom clusters
  • O projetista customiza cada nó de processamento e
    a rede de interconexão

8
Multiprocessamento
  • Clusters
  • Aplicações que focam em taxa de transferência e
    possuem pouca (ou nenhuma) comunicação entre
    threads, com Servidores WEB, e aplicações
    baseadas em transações podem ser implementadas em
    um cluster.

9
Classificação de Multiprocessadores
  • Arquitetura Paralela Arquitetura do Computador
    Arquitetura da Comunicação
  • Classificação por memória
  • Processador de Memória Centralizada (Symmetric)
  • Típico para sistemas pequenos ? demanda de
    largura de banda de memória e rede de
    comunicação.
  • Multiprocessador de Memória Fisicamente
    Distribuída
  • Escala melhor ? demanda de largura de banda para
    rede de comunicação

10
Classificação por Memória
  • Multiprocessadores de Memória Centralizada
  • Poucos processadores ( poucas dezenas chips ou
    cores) em 2006
  • Memória única e centralizada

11
Classificação por Memória
  • Multiprocessadores de Memória Fisicamente
    Distribuída
  • Maior número de processadores (centenas de chips
    ou cores)
  • Memória distribuída entre processadores

12
Centralized vs. Distributed Memory
Scale
13
Classificação de Multiprocessadores
  • Arquitetura Paralela Arquitetura do Computador
    Arquitetura da Comunicação
  • Classificando por comunicação
  • Multiprocessador baseado em Message-Passing
    processadores enviam menssagens
  • Processador baseado em Memória Compartilhada
    processadores se comunicam através de espaço de
    endereçamento comum.
  • Memória Centralizada , UMA (Uniform Memory
    Access time)
  • Memória Distribuída, NUMA (Non Uniform Memory
    Access time)

14
Exemplos de Multiprocessadores
15
Exemplos de Multiprocessadores
16
Multi-core
  • Multiprocessador implementado em um único
    circuito integrado

17
Mudança de Paradigma
  • We are dedicating all of our future product
    development to multicore designs. This is a sea
    change in computing
  • Paul Otellini, President, Intel (2005)
  • Todas as companhias de processadores estão
    desenvolvendo multi-core (2X CPUs / 2 anos)

Manufacturer/Year AMD/05 Intel/06 IBM/04 Sun/05
Processors/chip 2 2 2 8
Threads/Processor 1 2 2 4
Threads/chip 2 4 4 32
18
Multi-Core Processor
19
Intel Core 2 Duo
  • Cores homegêneos
  • Superscalares
  • (escalonamento dinâmico, especulação, multiple
    issue)
  • Interconexão baseada em barramento
  • Cada core tem cache local (L1)
  • Memória compartilhada
  • (cache L2) no chip

Source Intel Corp.
20
Desafios do processamento Paralelo
  • Primeiro desafio quantos do programa é
    inerentemente sequencial
  • Suponha speedup de 80X speedup para 100
    processadores. Qual a fração do programa que deve
    ser sequencial?
  • 10
  • 5
  • 1
  • lt1

O,25
21
Resposta usando Lei de Amdahl
22
Desafios do processamento Paralelo
  • Segundo desafio longas latências de memórias
    remotas
  • Suponha 32 CPU MP, 2GHz, 200 ns memória remota,
    todos acessos locais são hits e CPI base de 0.5.
    (Acesso remoto 200/0.5 400 ciclos.)
  • Qual o impacto no desempenho se 0.2 das
    instruções envolvem acessos remotos?
  • gt 1.5X
  • gt 2.0X
  • gt 2.5X

2,6X
23
Equação do CPI
  • CPI CPI base taxa de acesso remoto x custo
    do acesso remoto
  • CPI 0.5 0.2 x 400 0.5 0.8 1.3
  • Sem acesso remoto é 2.6 mais rápida que com 0.2
    das instruções envolvendo acessos remoto

24
Desafios do processamento Paralelo
  • Paralelismo da Aplicação? através de novos
    algoritmos com melhor desempenho
  • Impacto da longa latência no acesso remoto?
    mudanças na arquitetura e na programação
  • For exemplo, redução dos acessos remotos por
  • Caching shared data (HW)
  • Restruturando estruturas de dados para garantir
    mais acessos locais (SW)
  • Foco do capítulo gerenciar latência através do
    uso de cache.

25
Multi-processadores de Memória Compartilhada
26
Multi-processadores de Memória Compartilhada
  • Evolução
  • Múltiplas placas ou chips usando barramento
    compartilhado
  • Múltiplos processadores dentro de um chip.
  • Caches
  • Dados Privado usados por cada processador
  • Dados Compartilhados usados por múltiplos
    processadores
  • Caching dado compartilhado
  • ? reduz latência a dados compartilhado, largura
    de banda da memória para acesso a dado
    compartilhado e largura de banda de interconexão
  • ? problema de coerência de cache

27
Exemplo de problema de Coerência de Cache
P
P
P
2
1
3



I/O devices
Memory
  • Processadores verão diferentes valores de u após
    evento 3
  • Caches write-through valores inconsistentes
  • Caches write back valor escrito na memória
    depende do momento que que ocorre o flush de
    cache e os valores são atualizados na memória

28
Garantindo a Coerência
  • Como caches suportam o compartilhamento com
    coerência?
  • Replicação para dados compartilhados que estão
    na memória são feitas cópias nas caches que estão
    usando o dado
  • Reduz latência de acesso e utilização simultânea
    do barramento na leitura de dado compartilhado.

P
P
P
2
1
3



I/O devices
Memory
29
Garantindo a Coerência
  • Como caches suportam o compartilhamento com
    coerência?
  • Migração o valor mais atualizado da variável é
    movido entre a cache que tem o valor mais atual e
    a cache que precisa do dado
  • Reduz a latência devido a leitura dos dados na
    memória

P
P
P
2
1
3
7



u7
I/O devices
Memory
30
Garantindo a Coerência
  • Como manter coerência de dados migrados ou
    replicados?
  • Protocolos implementados pelo controlador da
    cache e/ou pelo controlador de memória que
    permitem o rastreamento do status de
    compartilhamento.

31
Coerência
  • Só uma pessoa pode falar no microfone por vez
  • Toda modificação em conta deve ser comunicada
    entre os funcionários através do alto falante
  • Após modificações cópias devem ser inutilizadas

32
Protocolos de Coerência de Cache
  • Snooping Cada cache que possui cópia de um dado
    também tem uma cópia do status de
    compartilhamento,
  • Todas as caches são acessíveis através de meio
    barramento
  • Todos os controladores de caches monitoram ou
    snoop o meio para determinar se eles possuem ou
    não uma cópia sendo requisitada pelo barramento
  • Directory based O status do compartilhamento de
    um bloco da memória física é armazenado em um
    local, diretório

33
Protocolos de Coerência de Cache
  • Write Invalidate
  • As cópías nas demais caches são Invalidadas na
    ocorrência de uma escrita em uma das caches
  • Write Update
  • As cópias das demais caches são atualizadas após
    a ocorrência de uma escrita em uma das caches
  • Write update causam maior utilização do
    barramento
  • Multiprocessadores atuais usam write invalidate

34
Protocolo Snooping de Coerência de Cache
  • Controladores de Cache snoops todas as
    transações no barramento
  • Transações relevantes envolvem bloco que a
    cache possui
  • Realiza ação para garantir coerência
  • invalida, atualiza, ou fornece valor
  • Atualiza estado de compartilhamento do bloco de
    cache

35
Exemplo Write-thru Invalidate
P
P
P
2
1
3



I/O devices
Memory
  • P3 Deve invalidar todas as cópias antes da
    escrita
  • Caches write through simplicidade de
    implementação porém mais acessos à memória
  • Caches write-back menos acessos à memória, mas
    como encontrar o bloco que contem a cópia com
    valor atualizado?

36
Módulos da Arquitetura
  • Estados
  • Não válido,
  • Válido,
  • dirty
  • Protocolo de barramento
  • Requisição
  • Comando
  • Dado
  • Acesso simultâneo
  • Só um processador ganha o acesso
  • Decisão árbitro
  • Invalidação das demais cópias
  • Onde encontrar a cópia mais atualizada do bloco
    de cache?

37
Localizando cópia mais atualizada
  • Caches Write-through usa cópia da memória
  • Write through é mais simples porém causa muitos
    acessos à memória e maior utilização do
    barramento.
  • Caches Write-back deve localizar cópia mais
    recente nas caches.
  • É mais complicado de implementar
  • Reduz acessos à memória
  • A maioria dos multiprocessadores usam caches
    write-back

38
Localizando cópias em Caches Write Back
  • Solução Usar o mesmo mecanismo de snooping para
    achar a cópia mais atual
  • Blocos de cache Snoop todo endereço colocado no
    barramento
  • Se processador possui cópia atual do bloco
    requisitado ele responde a requisição de leitura
    e aborta acesso à memória.

39
Localizando cópia mais atualizada
  • Caches Write-through usa cópia da memória
  • Write through é mais simples porém causa muitos
    acessos à memória e maior utilização do
    barramento.
  • Caches Write-back deve localizar cópia mais
    recente nas caches.
  • É mais complicado de implementar
  • Reduz acessos à memória
  • A maioria dos multiprocessadores usam caches
    write-back

40
Localizando cópias em Caches Write Back
  • Solução Usar o mesmo mecanismo de snooping para
    achar a cópia mais atual
  • Blocos de cache Snoop todo endereço colocado no
    barramento
  • Se processador possui cópia atual do bloco
    requisitado ele responde a requisição de leitura
    e aborta acesso à memória.

41
Protocolo Snooping Write Back
  • Cada bloco de cache vai estar em UM dos estados
  • Shared bloco pode ser lido
  • OU Modified/Exclusive cache tem somente uma
    cópia que pode ser escrita e dirty
  • OU Invalid bloco não contem dado válido

42
Protocolo Snooping Write Back
  • Cada bloco de cache vai estar em UM dos estados
  • Shared bloco pode ser lido
  • OU Modified/Exclusive cache tem somente uma
    cópia que pode ser escrita e dirty
  • OU Invalid bloco não contem dado válido
  • CPU solicita leitura
  • Se cache não tem cópia
  • Controlador coloca Read Miss no barramento
  • Outras caches
  • Read misses todas as caches vão dar snoop no
    barramento
  • Controlador bisbilhota todo endereço colocado no
    barramento
  • Se a cache possui uma cópia Exclusive do bloco
    requisitado, fornece o bloco em resposta a
    requisição de leitura e aborta o acesso à memória.

43
Protocolo Snooping Write Back
  • Cada bloco de cache vai estar em UM dos estados
  • Shared bloco pode ser lido
  • OU Modified/Exclusive cache tem somente uma
    cópia que pode ser escrita e dirty
  • OU Invalid bloco não contem dado válido
  • CPU solicita escrita
  • Se cache não tem cópia
  • Controlador coloca Write Miss no barramento
  • Outras caches
  • Write misses todas as caches vão dar snoop no
    barramento
  • Controlador bisbilhota todo endereço colocado no
    barramento
  • Se a cache possui uma cópia Exclusive do bloco
    requisitado, atualiza a memória e Invalida a
    cópia.
  • Se a cache possui uma cópia Shared do bloco
    requisitado invalida a cópia

44
Snooping Write-Back - CPU
  • Mudança de estado considerando requisições da CPU
    para cada bloco de cache
  • Blocos que não estão na cache não são validos

Shared (read/only)
CPU Read
Invalid
Place read miss on bus
CPU Write
Place Write Miss on bus
CPU Write Place Write Miss on Bus
Cache Block State
Exclusive (read/write)
CPU read hit CPU write hit
CPU Write Miss (?) Write back cache block Place
write miss on bus
45
Snooping Write-Back Substituição de Bloco
CPU Read hit
  • Mudança de estado para requisições da CPU para
    cada bloco da cache

CPU Read
Shared (read/only)
Invalid
Place read miss on bus
CPU Write
CPU Read miss Place read miss on bus
CPU read miss Write back block, Place read
miss on bus
Place Write Miss on bus
Cache Block State
CPU Write Place Write Miss on Bus
Exclusive (read/write)
CPU read hit CPU write hit
CPU Write Miss Write back cache block Place write
miss on bus
46
Snooping Write-Back - Bus
  • Mudança de estado considerando operações do
    barramento para cada bloco de cache

Write miss for this block
Shared (read/only)
Invalid
Write miss for this block
Read miss for this block
Write Back Block (abort memory access)
Write Back Block (abort memory access)
Exclusive (read/write)
47
Snooping Write-back
CPU Read hit
Write miss for this block
  • Mudança de estado para requisições da CPU para
    cada bloco da cache e para requisições do
    barramento para cada bloco de ache

Shared (read/only)
CPU Read
Invalid
Place read miss on bus
CPU Write
Place Write Miss on bus
CPU Read miss Place read miss on bus
Write miss for this block
CPU read miss Write back block, Place read
miss on bus
Write Back Block (abort memory access)
CPU Write Place Write Miss on Bus
Read miss for this block
Write Back Block (abort memory access)
Cache Block State
Exclusive (read/write)
CPU read hit CPU write hit
CPU Write Miss Write back cache block Place write
miss on bus
48
Exemplo
Bus
Processor 1
Processor 2
Memory
  • Assuma que estado inicial da cache é não válido
  • A1 e A2 mapeiam para o mesmo slot de cache mas A1
    ! A2

49
Exemplo Passo 1
50
Exemplo Passo 2
CPU Read hit
Remote Write
  • Assuma que estado inicial da cache é não válido
  • A1 e A2 mapeiam para o mesmo slot de cache mas A1
    ! A2

Shared
Invalid
Read miss on bus
Write miss on bus
Remote Write Write Back
CPU Write Place Write Miss on Bus
Remote Read Write Back
Exclusive
CPU read hit CPU write hit
51
Exemplo Passo 3
A1
A1
  • Assuma que estado inicial da cache é não válido
  • A1 e A2 mapeiam para o mesmo slot de cache mas A1
    ! A2

52
Exemplo Passo 4
A1
A1 A1
  • Assuma que estado inicial da cache é não válido
  • A1 e A2 mapeiam para o mesmo slot de cache mas A1
    ! A2

53
Exemplo Passo 5
A1
A1 A1 A1
A1
  • Assuma que estado inicial da cache é não válido
  • A1 e A2 mapeiam para o mesmo slot de cache mas A1
    ! A2

54
Limitações
  • Aumento no número de processadores -gt cresce
    demanda por memória - gt tornando-se um
    bottleneck.
  • Para bus-based multiprocessador,
  • Bus acessos devido a coerência e acessos à
    memória
  • Memória UNICA recebe TODAS as requisições dos
    processadores.
  • Processadores mais rápidos e em maior número.
  • Como suportar este novo cenário?
  • Múltiplos barramentos e redes de interconexão
  • Memória configurada em bancos de memória

55
Limitações
  • Múltiplos barramentos e redes de interconexão
  • Memória configurada em bancos de memória

56
Network-based Coherence
57
Abordagem Escalável Diretórios
  • Cada bloco de memória tem uma informação
    armazenada em um diretório
  • Gerencia cópias dos blocos em cache e seus
    estados
  • Em caso de miss, encontra entrada no diretório,
    analiza o mesmo e comunica somente com os nós que
    possuem cópia se necessário
  • Em redes escaláveis , comunicação com diretório e
    cópias é feita através da rede.
  • Várias alternativas para organizar informação no
    diretório.

58
Operação Básica de Diretório
k processadores. Cada bloco de cache na
memória k presence-bits, 1 dirty-bit Cada
bloco de cache em cache 1 valid bit, e 1
dirty (owner) bit
  • Leitura da memória pelo processador i
  • Se dirty-bit está OFF então leitura da
    memória atualiza pi para ON
  • Se dirty-bit está ON então acessa linha de
    cache do processador dirty (estado de cache para
    shared) atualiza memória faz dirty-bit igual a
    OFF faz pi igual a ON fornece dado para i
  • Escrita na memória pelo processador i
  • Se dirty-bit igual a OFF então fornece dado
    para i envia nvalidations para todas as caches
    que tem o bloco faz dirty-bit igual a ON faz
    pi igual a ON ...
  • ...

59
Operação Básica de Diretório
60
Coerência
  • Só uma pessoa pode falar no microfone por vez
  • Toda modificação em conta deve ser comunicada
    entre os funcionários através do alto falante
  • Após modificações cópias devem ser inutilizadas

61
CoerênciaDiretório
  • Acessos às pastas somente através do diretório
  • Toda modificação em qualquer cópia deve ser
    comunicada ao diretório
  • Diretório comunica a necessidade de inutilização
  • Diretório envia cópia mais atualizada

62
Protocolo baseado em Diretório
63
Protocolo baseado em Diretório
Interconnection Network
Bit Vector
X
U 0 0 0
Directories
7
X
Memories
Caches
64
CPU 0 lê X
Interconnection Network
X
U 0 0 0
Directories
7
X
Memories
Caches
65
CPU 0 lê X
Interconnection Network
X
S 1 0 0
Directories
7
X
Memories
Caches
66
CPU 0 lê X
Interconnection Network
X
S 1 0 0
Directories
Memories
Caches
67
CPU 2 lê X
Interconnection Network
X
S 1 0 0
Directories
Memories
Caches
68
CPU 2 lê X
Interconnection Network
X
S 1 0 1
Directories
Memories
Caches
69
CPU 2 lê X
Interconnection Network
X
S 1 0 1
Directories
Memories
Caches
70
CPU 0 escreve 6 em X
Interconnection Network
Write Miss
X
S 1 0 1
Directories
Memories
Caches
71
CPU 0 escreve 6 em X
Interconnection Network
X
S 1 0 1
Directories
Invalidate
Memories
Caches
72
CPU 0 escreve 6 em X
Interconnection Network
X
E 1 0 0
Directories
Memories
Caches
6
X
73
CPU 1 lê X
Interconnection Network
Read Miss
X
E 1 0 0
Directories
Memories
Caches
74
CPU 1 lê X
Interconnection Network
Switch to Shared
X
E 1 0 0
Directories
Memories
Caches
75
CPU 1 lê X
Interconnection Network
X
E 1 0 0
Directories
Memories
Caches
76
CPU 1 lê X
Interconnection Network
X
S 1 1 0
Directories
Memories
Caches
77
CPU 2 escreve 5 em X
Interconnection Network
X
S 1 1 0
Directories
Memories
Write Miss
Caches
78
CPU 2 escreve 5 em X
Interconnection Network
Invalidate
X
S 1 1 0
Directories
Memories
Caches
79
CPU 2 escreve 5 em X(Write back)
Interconnection Network
X
E 0 0 1
Directories
Memories
5
X
Caches
80
CPU 0 escreve 4 em X
Interconnection Network
X
E 0 0 1
Directories
Memories
Caches
81
CPU 0 escreve 4 em X
Interconnection Network
X
E 1 0 0
Directories
Memories
Take Away
Caches
82
CPU 0 escreve 4 em X
Interconnection Network
X
E 1 0 0
Directories
Memories
Caches
83
CPU 0 escreve 4 em X
Interconnection Network
X
E 1 0 0
Directories
Memories
Caches
84
CPU 0 escreve 4 em X
Interconnection Network
X
E 1 0 0
Directories
Memories
Caches
85
CPU 0 escreve 4 em X
Interconnection Network
X
E 1 0 0
Directories
Memories
Caches
4
X
86
Exemplo T1
  • Oito cores cada um suporta até 4 threads.
  • Cada core consiste num pipeline de 6 estágios
  • Tl usa fine-grained multithreading,
  • Os cores acessam 4 caches de 2 níveis
  • Existe coerência entre caches L1 e um diretório
    com cada cache L2
  • LI data cache é write through,

87
Exemplo T1
88
Exemplo T1
89
Comparação T1 e Superescalares
90
Comparação T1 e Superescalares
91
Comparação T1 e Superescalares
92
Comparação T1 e Superescalares
Write a Comment
User Comments (0)
About PowerShow.com