Sei sulla pagina 1di 57

Arquitetura de Computadores

Exploração de TLP

Prof. Denis Franco

denisfranco@furg.br

Junho 2013

Universidade Federal do Rio Grande


Centro de Ciências Computacionais
Programa de Pós-Graduação em Computação
Mestrado em Engenharia de Computação

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 1 / 40


Outline

1 Multithreading

2 Multiprocessamento

3 Large-scale multiprocessors

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 2 / 40


Multithreading

Outline

1 Multithreading

2 Multiprocessamento

3 Large-scale multiprocessors

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 3 / 40


Multithreading

Thread Level Parallelism

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 4 / 40


Multithreading

Thread Level Parallelism

Tópico transversal, relacionado com:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 4 / 40


Multithreading

Thread Level Parallelism

Tópico transversal, relacionado com:


Pipelining
Superescalares
GPUs
Multiprocessadores

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 4 / 40


Multithreading

Thread Level Parallelism

Tópico transversal, relacionado com:


Pipelining
Superescalares
GPUs
Multiprocessadores
Técnica básica para exposição de paralelismo ao HW.
Aproveitar latências no pipeline e na memória

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 4 / 40


Multithreading

Thread Level Parallelism

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 5 / 40


Multithreading

Thread Level Parallelism

Exploração de ILP:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 5 / 40


Multithreading

Thread Level Parallelism

Exploração de ILP:
Efeito limitado
Dependente da aplicação

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 5 / 40


Multithreading

Thread Level Parallelism

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 5 / 40


Multithreading

Thread Level Parallelism

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.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 5 / 40


Multithreading

Thread Level Parallelism

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 6 / 40


Multithreading

Thread Level Parallelism

Implementação de multithreading :
Replicação das variáveis de estado de uma thread

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 6 / 40


Multithreading

Thread Level Parallelism

Implementação de multithreading :
Replicação das variáveis de estado de uma thread
PC
Registradores
Tabela de páginas

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 6 / 40


Multithreading

Thread Level Parallelism

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 6 / 40


Multithreading

Thread Level Parallelism

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 6 / 40


Multithreading

Thread Level Parallelism

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 6 / 40


Multithreading

Multithreading
Tipos de multithreading

Superescalar sem suporte à multithreading


Latências de processamento e de memória resultam em unidades
funcionais ociosas, reduzindo o IPC.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 7 / 40


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.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 8 / 40


Multithreading

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.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 9 / 40


Multithreading

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.

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 10 / 40


Multithreading

Multithreading
Sun T1

Sun T1: fine-grained multithreading multicore processor


Projeto focado em TLP, sem ILP intenso
O processador T1, 2005, 1,2 GHz
8 núcleos
4 threads por núcleo
Pipeline de 6 estágios: 5 estágios padrão RISC + estágio de
chaveamento de threads
Loads and branches com 3 ciclos de latência
Unidades funcionais de ponto flutuante compartilhadas pelos núcleos

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 11 / 40


Multithreading

Multithreading
Sun T1

Uma thread x 4 threads:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 12 / 40


Multithreading

Multithreading
Sun T1

Repartição do status de uma thread:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 13 / 40


Multithreading

Multithreading
Sun T1

Causas de uma thread ”não pronta”:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 14 / 40


Multithreading

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 15 / 40


Multithreading

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 15 / 40


Multithreading

Multithreading
SMT em processadores superescalares

Intel Core i7: Java e PARSEC benchmarks

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 16 / 40


Multiprocessamento

Outline

1 Multithreading

2 Multiprocessamento

3 Large-scale multiprocessors

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 17 / 40


Multiprocessamento

Introdução

Categorias de processamento: Flynn, 1966


Single instruction stream, single data stream - SISD
Processador sequencial tradicional
Pode explorar ILP
Single instruction stream, Multiple data stream - SIMD
Exploração de DLP
Multiple instruction stream, single data stream - MISD
Não comercial
Multiple instruction stream, multiple data stream - MIMD
Pode explorar DLP
Explora TLP
Explora request-level parallelism

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 18 / 40


Multiprocessamento

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 19 / 40


Multiprocessamento

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 20 / 40


Multiprocessamento

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 21 / 40


Multiprocessamento

Multiprocessadores
Memória compartilhada

1 Symmetric (shared-memory) multiprocessors, SMPs


Centralized shared-memory multiprocessors
Número reduzido de núcleos/processadores (≤ 8)
Latência uniforme de acesso à memória pelos diferentes
núcleos/processadores
Uniform memory access, UMA
Multicores são SMPs
2 Distributed shared memory, DSM
Memória distribuı́da entre os processadores
Maior número de núcleos/processadores
Latência não uniforme de acesso à memória pelos diferentes
núcleos/processadores
Nonuniform memory access, NUMA

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 22 / 40


Multiprocessamento

Multiprocessadores
SMP

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 23 / 40


Multiprocessamento

Multiprocessadores
DSM

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 24 / 40


Multiprocessamento

Multiprocessadores
Desafios em processamento paralelo

1 Paralelismo limitado disponı́vel nos algoritmos/programas


Ganhos potenciais podem ser avaliados pela lei de Amdahl
2 Latência de comunicação
Entre núcleos: de 35 a 50 ciclos de clock
Entre processadores: de 100 a 500 ciclos de clock

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 25 / 40


Multiprocessamento

Multiprocessadores
Desafios em processamento paralelo

1 Paralelismo limitado disponı́vel nos algoritmos/programas


Ganhos potenciais podem ser avaliados pela lei de Amdahl
2 Latência de comunicação
Entre núcleos: de 35 a 50 ciclos de clock
Entre processadores: de 100 a 500 ciclos de clock
A redução dessa latência é baseada em caches

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 25 / 40


Multiprocessamento

Multiprocessadores
Desafios em processamento paralelo

1 Paralelismo limitado disponı́vel nos algoritmos/programas


Ganhos potenciais podem ser avaliados pela lei de Amdahl
2 Latência de comunicação
Entre núcleos: de 35 a 50 ciclos de clock
Entre processadores: de 100 a 500 ciclos de clock
A redução dessa latência é baseada em caches
A utilização de caches introduz um novo problema: coerência de caches

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 25 / 40


Multiprocessamento

Multiprocessadores
Desafios em processamento paralelo

The cache coherence problem:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 26 / 40


Multiprocessamento

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 27 / 40


Multiprocessamento

Multiprocessadores
Outros desafios em processamento paralelo

Sincronização
Consistência de memória
Quando um processador deve ver um valor atualizado por outro
processador?

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 28 / 40


Multiprocessamento

Multiprocessadores
Desempenho de processadores multicore

SPECRate:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 29 / 40


Multiprocessamento

Multiprocessadores
Desempenho de processadores multicore

SPECjbb2005:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 30 / 40


Multiprocessamento

Multiprocessadores
Desempenho do Intel Core i7

Sem SMT:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 31 / 40


Multiprocessamento

Multiprocessadores
Desempenho do multiprocessador IBM eServer p5

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 32 / 40


Multiprocessamento

Multiprocessadores
Desempenho do multiprocessador IBM eServer p5

Desempenho/custo:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 33 / 40


Large-scale multiprocessors

Outline

1 Multithreading

2 Multiprocessamento

3 Large-scale multiprocessors

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 34 / 40


Large-scale multiprocessors

Multiprocessadores de larga escala

33 ou mais processadores
Conjunto de processos operando de forma colaborativa para uma
aplicação
Aplicações cientı́ficas

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 35 / 40


Large-scale multiprocessors

Multiprocessadores de larga escala

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

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 35 / 40


Large-scale multiprocessors

Multiprocessadores
Terminologia

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 36 / 40


Large-scale multiprocessors

Multiprocessadores
Classes

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 37 / 40


Large-scale multiprocessors

Multiprocessadores
Redes chaveadas

Crossbar e Omega:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 38 / 40


Large-scale multiprocessors

Multiprocessadores
Redes distribuı́das

Grid, torus, hipercubo:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 39 / 40


Large-scale multiprocessors

Multiprocessadores
Redes de interconexão

Desempenho e custo:

Prof. Denis Franco (denisfranco@furg.br) Arquitetura de Computadores Junho 2013 40 / 40

Potrebbero piacerti anche