Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Exploração de TLP
denisfranco@furg.br
Junho 2013
1 Multithreading
2 Multiprocessamento
3 Large-scale multiprocessors
Outline
1 Multithreading
2 Multiprocessamento
3 Large-scale multiprocessors
Exploração de ILP:
Exploração de ILP:
Efeito limitado
Dependente da aplicação
Exploração de ILP:
Efeito limitado
Dependente da aplicação
Por que não aproveitar latências maiores com outro tipo de paralelismo?
Aplicações naturalmente paralelas: múltiplas transações, modelagem
3D, etc
Múltiplas aplicações simultâneas
Exploração de ILP:
Efeito limitado
Dependente da aplicação
Por que não aproveitar latências maiores com outro tipo de paralelismo?
Aplicações naturalmente paralelas: múltiplas transações, modelagem
3D, etc
Múltiplas aplicações simultâneas
Multithreading
Compartilhamento das unidades funcionais de um processador pela
execução sobreposta de diferentes threads.
Implementação de multithreading :
Replicação das variáveis de estado de uma thread
Implementação de multithreading :
Replicação das variáveis de estado de uma thread
PC
Registradores
Tabela de páginas
Implementação de multithreading :
Replicação das variáveis de estado de uma thread
PC
Registradores
Tabela de páginas
Memória compartilhada pelos mecanismos de memória virtual
Implementação de multithreading :
Replicação das variáveis de estado de uma thread
PC
Registradores
Tabela de páginas
Memória compartilhada pelos mecanismos de memória virtual
HW com capacidade de chaveamento rápido entre threads
Implementação de multithreading :
Replicação das variáveis de estado de uma thread
PC
Registradores
Tabela de páginas
Memória compartilhada pelos mecanismos de memória virtual
HW com capacidade de chaveamento rápido entre threads
Os programas devem ser organizados via múltiplas threads.
Identificadas pelo compilador
Criadas pelo programador
Multithreading
Tipos de multithreading
Multithreading
Tipos de multithreading
Coarse-grained multithreading
Chaveamento de threads em paradas longas, como cache misses em L2 e
L3. Alto custo de inicialização do pipeline.
Multithreading
Tipos de multithreading
Fine-grained multithreading
Chaveamento de threads em cada ciclo de clock, sendo ignoradas as
threads com paradas. Redução do desempenho de threads individuais.
Multithreading
Tipos de multithreading
Simultaneous multithreading
Execução simultânea de instruções de diferentes threads, o que é possı́vel
devido aos mecanismos de escalonamento dinâmico.
Multithreading
Sun T1
Multithreading
Sun T1
Multithreading
Sun T1
Multithreading
Sun T1
Multithreading
Sun T1
Desempenho:
TPC-C
CPI por thread: 7,2
CPI por núcleo: 1,8
SPECJBB
CPI por thread: 5,6
CPI por núcleo: 1,4
SPECWeb99
CPI por thread: 6,6
CPI por núcleo: 1,65
Multithreading
Sun T1
Desempenho:
TPC-C
CPI por thread: 7,2
CPI por núcleo: 1,8
SPECJBB
CPI por thread: 5,6
CPI por núcleo: 1,4
SPECWeb99
CPI por thread: 6,6
CPI por núcleo: 1,65
Sun T1: melhor desempenho em aplicações multithreaded com inteiros em
2005
Multithreading
SMT em processadores superescalares
Outline
1 Multithreading
2 Multiprocessamento
3 Large-scale multiprocessors
Introdução
Multiprocessamento
Importância crescente:
Técnica clássica e escalável para obter melhora no desempenho
independente da evolução na tecnologia dos CIs
Interesse crescente em aplicações para servidores e computação em
nuvem
Aplicações focadas em processamento dos dados disponı́veis na
Internet
Melhor compreensão sobre o uso de multiprocessadores em aplicações
paralelas
Exploração de projetos via replicação de recursos
Classificação MIMD
Multiprocessamento
Importância crescente:
Técnica clássica e escalável para obter melhora no desempenho
independente da evolução na tecnologia dos CIs
Interesse crescente em aplicações para servidores e computação em
nuvem
Aplicações focadas em processamento dos dados disponı́veis na
Internet
Melhor compreensão sobre o uso de multiprocessadores em aplicações
paralelas
Exploração de projetos via replicação de recursos
Classificação MIMD
Multiprocessadores
Computadores formados por processadores estreitamente acoplados, com
gerência controlada por um único sistema operacional, e com memória
compartilhada através de um mesmo espaço de endereços.
Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 19 / 40
Multiprocessamento
Multiprocessadores
Modelos de software:
Processamento paralelo: threads colaborando para uma única tarefa
Request-level paralelism: múltiplos processos, relativamente
independentes
Multiprogramming
Modelos de hardware:
Processador com múltiplos núcleos: multicore
Múltiplos processadores multicore, de 2 até 32
Multiprocessadores
TLP vs ILP:
TLP → Paralelismo identificado pelo SW ou programador
Thread = centenas a milhões de instruções
TLP vs DLP:
MIMD vs SIMD
Desempenho depende do tamanho do grão de processamento
Overhead pode ser considerável em relação ao grão
Multiprocessadores
Memória compartilhada
Multiprocessadores
SMP
Multiprocessadores
DSM
Multiprocessadores
Desafios em processamento paralelo
Multiprocessadores
Desafios em processamento paralelo
Multiprocessadores
Desafios em processamento paralelo
Multiprocessadores
Desafios em processamento paralelo
Multiprocessadores
Protocolos de coerência de cache
1 Baseado em diretório
As informações de compartilhamento dos dados em memória
permanecem em um diretório
Diretório centralizado em SMPs
Diretório distribuı́do em DSMs
2 Baseado em snooping
Acompanhamento, pelo controlador de cache, das ações sobre os dados
compartilhados presentes na cache
Write invalidate
Write update, write broadcast
Multiprocessadores
Outros desafios em processamento paralelo
Sincronização
Consistência de memória
Quando um processador deve ver um valor atualizado por outro
processador?
Multiprocessadores
Desempenho de processadores multicore
SPECRate:
Multiprocessadores
Desempenho de processadores multicore
SPECjbb2005:
Multiprocessadores
Desempenho do Intel Core i7
Sem SMT:
Multiprocessadores
Desempenho do multiprocessador IBM eServer p5
Multiprocessadores
Desempenho do multiprocessador IBM eServer p5
Desempenho/custo:
Outline
1 Multithreading
2 Multiprocessamento
3 Large-scale multiprocessors
33 ou mais processadores
Conjunto de processos operando de forma colaborativa para uma
aplicação
Aplicações cientı́ficas
33 ou mais processadores
Conjunto de processos operando de forma colaborativa para uma
aplicação
Aplicações cientı́ficas
Aspecto crı́tico:
Comunicação entre processos
Bandwidth
Latência
Multiprocessadores
Terminologia
Multiprocessadores
Classes
Multiprocessadores
Redes chaveadas
Crossbar e Omega:
Multiprocessadores
Redes distribuı́das
Multiprocessadores
Redes de interconexão
Desempenho e custo: