mini-curso arquiteturas paralelas
TRANSCRIPT
![Page 1: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/1.jpg)
Arquiteturas Paralelas
Prof. Dr. Edson T. [email protected]
Departamento de Engenharia de Computação
e Sistemas Digitais
Escola Politécnica da USP
I Escola Regional de Alto Desempenho de SP
São Paulo - SP – 30 e 31 de Julho de 2010
ERAD-SP 2010 1
![Page 2: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/2.jpg)
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
![Page 3: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/3.jpg)
ERAD-SP 2010
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
3
![Page 4: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/4.jpg)
1. Introdução
ERAD-SP 2010 4
![Page 5: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/5.jpg)
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
![Page 6: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/6.jpg)
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
![Page 7: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/7.jpg)
ERAD-SP 2010
Motivação
• Evolução em várias categorias de computadores
1950 1960 1970 1980 1990 2000
mainframe
minicomputador
microcomputador
x
UNIVAC
4004
/370 /390 z/900
servidor/workstation
desktop PC
value PC
8080 8088
80286
80386
80486
Pentium
PIIPIIIP4
Celeron
/360
PDP-8 PDP-11 VAX
RS/6000
PPro
Xeon
super-computador
ENIAC CDC-6600
?Cray-1 Cray-2NORC Cray-3 Cray T3E
Cray-4
8088Altair
7
![Page 8: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/8.jpg)
Motivação
• Evolução do desempenho de processadores
ERAD-SP 2010
SPE Cint92
5
10
50
Year
86 8879 198081 82 83 84 85 87 89199091 92 93 94 95 96 97 98 99
*
*
*
**
*
**
2
386/16
*
* *
*
*
* 8088/5
*0.5
100
8088/8
80286/10
80286/12
386/20 386/25
386/33
500
*
*
*1000
20
200
1
0.2
*
***
**
*
486/25
486/33
486/50486-DX2/66
Pentium/66
Pentium/100Pentium/120
Pentium Pro/200
PI I /450
PI I I /600
486-DX4/100
Pentium/133Pentium/166
Pentium/200
PI I /300PI I /400PI I I /500
486-DX2/50
*
200001 02 03
5000
2000
**
*
*
*
***
*
PI I I /1000
P4/1500P4/1700
P4/2000P4/2200
P4/2400P4/2800
P4/3060
P4/3200
~ 100*/10 years
*
*
***
04 05
Northwood B
10000
Pres cott (1M )Pres cott (2M )
L eveling off
8
![Page 9: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/9.jpg)
Motivação
• Fatores para melhora de desempenho
ERAD-SP 2010
5
10
50
Year
*
**
*
2
8088
*
100
386
Pentium
Year of first volume shipment
cf
500
1000
20
200
*
486-DX2
79 1980 81 82 83 84 85 86 87 88 89 1990 91 92 93 94 95 96 97 98 9978
*
*
*
*
*
*486
*
* * *
*
*
* ***
Pentium II
** *Pentium III
*
286
*
Pentium Pro
1
486-DX4
2000 01 02 03
2000
***
**
***
*
*
5000
Pentium 4
~10*/10years
~100*/10years
04 05
* * *
Leveling off(MHz)
Aumento da
Frequencia do relógio
9
![Page 10: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/10.jpg)
Motivação
• Fatores para melhora de desempenho (2)
ERAD-SP 2010
Lei de Moore
10
![Page 11: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/11.jpg)
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
![Page 12: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/12.jpg)
Motivação
• Resposta
PARALELISMO
ERAD-SP 2010 12
![Page 13: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/13.jpg)
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)
ERAD-SP 2010 13
Michael J. Flynn
![Page 14: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/14.jpg)
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
ERAD-SP 2010 14
dadoinstruçãoUC = unidade de controle
UP = unidade de processsamento
MEM = memória
![Page 15: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/15.jpg)
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)
• GPU
ERAD-SP 2010 15
dadosinstrução
![Page 16: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/16.jpg)
Classificação de Máquinas Paralelas
• MISD
– Multiple Instruction, Single Data
• Múltiplos fluxos de instrução
• Um único fluxo de dados
– Execução de várias instruções
em um único dado.
– Não há exemplos.
ERAD-SP 2010 16
dado
instruções
UP2
UP3
UPnUCn
...
...
![Page 17: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/17.jpg)
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
• Top500.org
ERAD-SP 2010 17
dadosinstruções
![Page 18: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/18.jpg)
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
![Page 19: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/19.jpg)
ERAD-SP 2010 19
![Page 20: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/20.jpg)
2. Paralelismo em Arquitetura de
Computadores
ERAD-SP 2010 20
![Page 21: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/21.jpg)
ERAD-SP 2010
Fontes de Paralelismo
• Há várias fontes de execução paralela em um
computador moderno:
– Aplicações diferentes;
– Instâncias de execução
da mesma aplicação;
– Fluxo de instruções (threads)
de uma aplicação;
– Instruções de um programa (ILP)
Processadores
multicore
Multiprogramação
Multitarefa
21
![Page 22: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/22.jpg)
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
![Page 23: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/23.jpg)
Fontes de Paralelismo
ERAD-SP 2010
Paralelismo
de DadosParalelismo
Temporal
Paradigmas de processamento ILP
Resolução estática
de dependências
Resolução dinâmica
de dependências
Processadores
com Pipeline Processadores
VLIW
Processadores
Superscalares
extensão
SIMD
Paralelismo de
Emissão de Instruções
23
![Page 24: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/24.jpg)
Evolução do Paralelismo
ERAD-SP 2010
Processadores von Neumanntradicionais
Processadores Superscalares com
extensão SIMD
Processadores
SuperscalaresProcessadores
Pipelined
Extensão do
paralelismo
da execução
Nível de
redundância
de hardware
ProcessamentoILP
~ 1985/88 ~ 1990/93 ~ 1994/00
Sequencial
t
+ paralelismo
de dados
+ paralelismo
de envio de
instruções
Paralelismo
temporal
24
![Page 25: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/25.jpg)
Pipelining
• Execução de uma instrução é dividida em etapas:
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
Registra-
dores
ID MEMIF EXE WB
MemóriaMemória
![Page 26: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/26.jpg)
Pipelining
• Fluxo de dados do processador MIPS didático
(COD/4e, Patterson & Hennessy)
ERAD-SP 2010 26
![Page 27: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/27.jpg)
Pipelining
• Inicia a execução de uma instrução por ciclo de clock
ERAD-SP 2010 27
IF I1 I2
I1 I2ID
EXE
MEM
WB
I1 I2
I1 I2
I1 I2
I3 I4
I3
I3 I4 I5
I3 I4 I5 I6
ciclo 1 2 3 4 5 6
fluxo de
instruções
A cada ciclo de clock, termina-se a execução de uma instrução.
![Page 28: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/28.jpg)
Superescalaridade
• Em um processador superescalar, várias instruções são
submetidas para execução simultaneamente.
• 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
Regis-
tradores
ID MEMBusca
de instr. EXE WB
MemoriaMemoria
instruções instruções
![Page 29: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/29.jpg)
Superescalaridade
• Dependência de dados
ERAD-SP 2010 29
Stall
Time (cycles)
1 2 3 4 5 6 7 8
RF40
$s0
RF
$t0+
DMIM
lwlw $t0, 40($s0)
add $t1, $t0, $s1
sub $t0, $s2, $s3
and $t2, $s4, $t0
sw $s7, 80($t3)
RF$s1
$t0add
RF$s1
$t0
RF
$t1+
DM
RF$t0
$s4
RF
$t2&
DMIM
and
IMor
and
sub
|$s6
$s5$t3
RF80
$t3
RF
+
DM
sw
IM
$s7
9
$s3
$s2
$s3
$s2
-$t0
oror $t3, $s5, $s6
IM
![Page 30: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/30.jpg)
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)
ERAD-SP 2010 30
Time (cycles)
1 2 3 4 5 6 7 8
RF40
$s0
RF
$t0+
DMIM
lwlw $t0, 40($s0)
add $t1, $t0, $s1
sub $t0, $s2, $s3
and $t2, $s4, $t0
sw $s7, 80($t3)
or|$s6
$s5$t3
RF80
$t3
RF
+
DM
sw $s7
or $t3, $s5, $s6
IM
RF$s1
$t0
RF
$t1+
DMIM
add
sub-$s3
$s2$t0
two cycle latency
between load and
use of $t0
RAW
WAR
RAW
RF$t0
$s4
RF
&
DM
and
IM
$t2
RAW
![Page 31: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/31.jpg)
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
![Page 32: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/32.jpg)
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
![Page 33: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/33.jpg)
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
![Page 34: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/34.jpg)
Multithreading
• Simultaneous Multithreading (SMT)
– Permite executar instruções de threads de vários programas
(processos) simultaneamente sem a necessidade de troca de
contexto
– 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
ciclos
sem
multithreading
cache
miss
blocked
multithreading
Interleaved
multithreading SMT
![Page 35: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/35.jpg)
Multithreading
ERAD-SP 2010 35
Superescalar
(4-way)
Superescalar com SMT
(4-way/2 threads)
Thread Thread 2Thread 1
![Page 36: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/36.jpg)
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
![Page 37: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/37.jpg)
Arquiteturas Multicore
ERAD-SP 2010 37
![Page 38: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/38.jpg)
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
![Page 39: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/39.jpg)
Exemplos de Multicore
• Intel Core i7 e AMD Phenom X6
ERAD-SP 2010 39
![Page 40: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/40.jpg)
Exemplos de Multicore
• Intel Xeon 5600 (hexacore)
ERAD-SP 2010 40
![Page 41: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/41.jpg)
Exemplos de Multicore
• Intel Xeon 7500 (8-core)
ERAD-SP 2010 41
![Page 42: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/42.jpg)
Exemplos de Multicore
• AMD Opteron 6000 (12-core)
ERAD-SP 2010 42
![Page 43: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/43.jpg)
Processadores Multicore
ERAD-SP 2010
Tilera Tile64Intel
UltraSparc T2
43
![Page 44: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/44.jpg)
Paralelismo no Nível de Threads
ERAD-SP 2010
ILP(paralelismo no nível de instruções)
TLP(paralelismo no nível de threads)
Thread
(fluxo de instruções)
Múltiplos threads
Granularidade
do paralelismo
44
![Page 45: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/45.jpg)
Paralelismo no Nível de Threads
• Execução paralela de threads
ERAD-SP 2010
De onde vem os vários threads?
da mesma
aplicação
Multiprogramação Multitarefa,
Multithreading
de aplicações
diferentes
45
![Page 46: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/46.jpg)
Paralelismo no Nível de Threads
ERAD-SP 2010
Implementação de dois ou mais cores
colocados na mesma pastilha
Implementação de um
core multithreaded
pastilha
(chip)
SMP: Symmetric Multiprocessing
(CMP: Chip Multiprocessing)SMT: Simultaneous Multithreading
(HT: Hyperthreading (Intel))
L3/Memória
L2/L3Core Core
L3/Memória
Core
SMT
L2/L3
Implementação de paralelismo no nível de
threads em microprocessadores
46
![Page 47: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/47.jpg)
Paralelismo no Nível de Threads
• Simultaneous
Multithreading
ERAD-SP 2010 47
Superescalar
(4-way)
Superescalar com SMT
(4-way/2 threads)
Thread Thread 2Thread 1
![Page 48: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/48.jpg)
Paralelismo no Nível de Threads
• Simultaneous
Multiprocessing
ERAD-SP 2010 48
Nehalem-EX
![Page 49: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/49.jpg)
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.
ERAD-SP 2010 49
chip único
![Page 50: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/50.jpg)
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
![Page 51: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/51.jpg)
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
ERAD-SP 2010 51
Fonte: ARM, The ARM Cortex-A9 Processors White Paper, 2009.
![Page 52: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/52.jpg)
Multicore
• Hierarquia de caches
ERAD-SP 2010 52
![Page 53: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/53.jpg)
Multicore
• Interconexão Interna
ERAD-SP 2010 53
Árbitro/Implementações de cache multi-porta
Crossbar
Implementação das interconexões
Anel
Número pequeno defontes e destinos
Número grande defontes e destinos
Cell BE (2006)XRI (2005)
p.ex. Conexão dos dual-coresaos cache L2 compartilhado
UltraSPARC T1 (2005)UltraSPARC T2 (2007)
Aspectos quantitativos, tais como número de fontes e destinos ou requisitos de banda, afetamqual alternativa de implementação é mais benéfica.
![Page 54: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/54.jpg)
Multicore
• Aplicação de multicores vs. SMP e processadores
superescalares
– Instrução
– Bloco básico
– Loop
– Tarefa
– Processo
ERAD-SP 2010 54
Fonte: Olukotun et al. Chip Multiprocessor Architecture, 2007.
![Page 55: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/55.jpg)
Multicore
• Breve Histórico
ERAD-SP 2010 55
Prescott(core original)
Smithfield(dois cores Prescott modificados colocados no mesmo die)
2/2004
90 nm112 mm2
125 mtrsL2: 1 MB
Pentium 4 A/E/F seriesPentium 4 5xx series
5/2005
90 nm2 x 103 mm2
2 x 115 mtrsL2: 2 MB
Pentium D 8xxPentium EE 840
Pentium D/EE
![Page 56: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/56.jpg)
Multicore
• Breve Histórico
ERAD-SP 2010 56
7/2006
65 nm143 mm2
167/291 mtrs
Core 2 Duo E 6x00 series
Core2 Extrem X6x00 series
11/2006
65 nm2 x 143 mm2
2 x 167/291 mtrs
Core 2 Extreme QX6x00 series
Conroe(die)
Kentsfield(dois Conroes no mesmo empacotamento)
![Page 57: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/57.jpg)
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
![Page 58: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/58.jpg)
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
![Page 59: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/59.jpg)
ERAD-SP 2010
Fonte: Multi-core Programming, Intel Press, 2006.
59
![Page 60: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/60.jpg)
3. Arquiteturas Avançadas
ERAD-SP 2010 60
![Page 61: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/61.jpg)
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
![Page 62: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/62.jpg)
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
![Page 63: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/63.jpg)
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
![Page 64: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/64.jpg)
Manycore
• Cell
– 1 PPE (PowerPC)
– 8 SPE
– PS3 (Cell BE)
– Roadrunner
(PowerXCell 8i)
Top 500 #3
ERAD-SP 2010 64
![Page 65: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/65.jpg)
Manycore
• Cell
ERAD-SP 2010 65
Fonte: Gshwind M., „Chip Multiprocessing and the Cell BE,” ACM Computing Frontiers, 2006,http://beatys1.mscd.edu/compfront//2006/cf06-gschwind.pdf
![Page 66: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/66.jpg)
Manycore
• Cell
ERAD-SP 2010 66
Fonte: Gshwind M., „Chip Multiprocessing and the Cell BE,” ACM Computing Frontiers, 2006,http://beatys1.mscd.edu/compfront//2006/cf06-gschwind.pdf
Circuito de um único SPE
![Page 67: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/67.jpg)
Manycore
• CPU + GPU (ex. Intel Sandy Bridge, AMD Fusion)
ERAD-SP 2010 67
![Page 68: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/68.jpg)
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
![Page 69: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/69.jpg)
GPGPU
ERAD-SP 2010
• GPU
– Unidade de processamento especializado para acelerar o
processamento gráfico 2D e 3D.
69
![Page 70: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/70.jpg)
GPGPU
ERAD-SP 2010
• GPU
– Arquitetura baseada em SP (streaming processor) e
SFU (Special Function Units)
70
![Page 71: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/71.jpg)
GPGPU
• CPU vs. GPU
– Comparação relativa a utilização de área de silício alocada por
funcionalidade nas CPUs e GPUs.
ERAD-SP 2010 71
Fonte: Nvidia, Compute Unified Device Architecture Programming Guide. 2008.
![Page 72: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/72.jpg)
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
![Page 73: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/73.jpg)
GPGPU
• Paralelismo de dados
ERAD-SP 2010 73
Mesma instruçãopara todos os dados
![Page 74: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/74.jpg)
GPGPU
ERAD-SP 2010 74
Fonte: Nvidia, Compute Unified Device Architecture Programming Guide. 2008.
![Page 75: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/75.jpg)
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
![Page 76: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/76.jpg)
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
![Page 77: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/77.jpg)
Multiprocessadores
• Arquitetura básica
ERAD-SP 2010 77
![Page 78: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/78.jpg)
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
![Page 79: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/79.jpg)
Multiprocessadores
• Coerência de caches
ERAD-SP 2010 79
Várias soluções na literatura.
![Page 80: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/80.jpg)
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
![Page 81: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/81.jpg)
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
![Page 82: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/82.jpg)
Clusters
• Arquitetura de sistema paralelo multiprocessador
organizado como um conjunto de processadores
interligados através de uma rede de interconexão rápida
ERAD-SP 2010 82
Interconexão rápida (Myrinet,
Infiniband, Gigabit Ethernet)
Rede interna de administração
(Ethernet)
cluster
![Page 83: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/83.jpg)
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
![Page 84: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/84.jpg)
Clusters
• Máquinas comerciais
ERAD-SP 2010 84
![Page 85: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/85.jpg)
4. Considerações Finais
ERAD-SP 2010 85
![Page 86: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/86.jpg)
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
![Page 87: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/87.jpg)
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
![Page 88: Mini-curso Arquiteturas Paralelas](https://reader033.vdocuments.pub/reader033/viewer/2022042509/5587a89fd8b42a0c1b8b45b6/html5/thumbnails/88.jpg)
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