Upload
internet
View
108
Download
2
Embed Size (px)
Citation preview
1
1a jecompp
Computação de Alto Desempenho
• Tecnologias de Alta Velocidade de Operação– Exemplos: 750 MHz, 1 GHz
• Exploração de Paralelismo– Alta Granulosidade
• Programas
• Processos
– Baixa Granulosidade• Instruções
2
1a jecompp
Paralelismo no Nível de Programas e Processos
• Arquiteturas de Processamento com Diversos Processadores (máquinas paralelas)
• Arquiteturas de Processamento com Diversos Computadores (rede de computadores)
3
1a jecompp
Paralelismo no Nível de Instruções(ILP - Instruction Level Parallelism)
• Processador que Executam Instruções em Paralelo
– Pipelining
– Superpipelining
– Superscalar
– VLIW - Very long Instruction Word
– Vetorial
– etc.
4
1a jecompp
Desempenho
• Desempenho final depende de vários fatores
– Características da Aplicação
– Mecanismo de Comunicação
– Qualidade do Código Gerado pelo Compilador
– Arquitetura dos Processadores
– Arquitetura dos Computadores
5
1a jecompp
Modelos de Computadores Paralelos
• Classificação de Flynn
– Classifica as várias arquiteturas de computadores baseado nos fluxos de Instruções e de Dados que ocorrem no interior dos computadores
– SISD - Single Instruction, Single Data stream
– SIMD - Single Instruction, Multiple Data stream
– MIMD - Multiple Instruction, Multiple Data stream
– MISD - Multiple instruction, Single Data stream
6
1a jecompp
SISD
Exemplos: Estações de trabalho e Computadores pessoais com um único processador
7
1a jecompp
SIMD
Exemplos: ILIAC IV, MPP, DHP,
MASPAR MP-2 e CPU Vetoriais
8
1a jecompp
MIMD
Exemplos: Cosmic Cube, nCube 2, iPSC, FX-2000,Paragon XP/S e Redes de Computadores
Mais difundidaMemória CompartilhadaMemória Distribuída
9
1a jecompp
MISD
Exemplos: Array Sistólicos
10
1a jecompp
Resumo
• MIMD– Maioria dos sistemas paralelos existentes
– Mais adequado à computação paralela de “propósito geral”
• SIMD e MISD– Computação específica
• SISD– Computação Seqüencial
11
1a jecompp
Máquinas MIMD
• Multiprocessadores de Memória Compartilhada (shared-memory multiprocessors)
– UMA (Uniform-Memory-Access)
– NUMA (NonUniform-Memory-Access)
• Multicomputadores (message-passing multicomputers)
– Redes de Computadores
12
1a jecompp
Multiprocessadores - UMA
13
1a jecompp
Multiprocessadores - NUMA
14
1a jecompp
Multiprocessadores - NUMA
15
1a jecompp
Multicomputarores
16
1a jecompp
Interconexão
Anel Grafo Completo
17
1a jecompp
Interconexão
HiperCubo
18
1a jecompp
Interconexão
Árvore Estrela
19
1a jecompp
Interconexão
20
1a jecompp
Programação ParalelaExemplo
• Somar 16 valores, utilizando-se 16 processadores
• Quantas operações soma são realizadas?
• Qual o ganho em relação à solução usando um único processador?
21
1a jecompp
Programação ParalelaUma Solução
22
1a jecompp
Programação ParalelaSpeedup
• Somar 16 valores, utilizando-se 16 processadores
• Quantas operações soma são realizadas?– Solução seqüencial = 15 operações de Soma
– Solução paralela = 4 operações de Soma
• Qual o ganho em relação à solução usando um único processador?
75.34
15ganho OBS.: 15 Comunicações
23
1a jecompp
Desempenho
• Speedup - Ganho apresentado pela máquina paralela em relação a uma máquina seqüencial
• Qual o comportamento do speedup com o aumento do número de processadores?– Ideal: N
– Realidade: menor que N
24
1a jecompp
Lei de Ahmdahl
•
• Exemplo: Qual a fração paralelizável necessária para se alcançar um speedup de 200 usando-se 256 processadores?
Pf
fspeedup
)1(
1 Onde: f - fração melhorada (paralelizável)
P - número de processadores
2562562561
256)1(
1200
ffff
25
1a jecompp
Lei de Ahmdahl
256255256
1200
f
f255256
256200
%89.999989.0 f
26
1a jecompp
Multiprocessors
• Idea: create powerful computers by connecting many smaller ones
– good news: works for timesharing (better than supercomputer) vector processing may be coming back
– bad news: its really hard to write good concurrent programsmany commercial failures
Cache
Processor
Cache
Processor
Cache
Processor
Single bus
Memory I/ONetwork
Cache
Processor
Cache
Processor
Cache
Processor
Memory Memory Memory
27
1a jecompp
Questions
• How do parallel processors share data?— single address space (SMP vs. NUMA)— message passing
• How do parallel processors coordinate? — synchronization (locks, semaphores)— built into send / recieve primitives— operating system protocols
• How are they implemented?— connected by a single bus — connected by a network
28
1a jecompp
Some Interesting Problems
• Cache Coherency
• Synchronization— provide special atomic instructions (test-and-set,
swap, etc.)
• Network Topology
Cache tagand data
Processor
Single bus
Memory I/O
Snooptag
Cache tagand data
Processor
Snooptag
Cache tagand data
Processor
Snooptag
29
1a jecompp
Cache Coherency
• Most popular protocol - Snooping
• Multiple Copies– read - processors must have the most recent copy– write - exclusive access
• write-invalidate (write-back)• write-update (write-through)
30
1a jecompp
Cache Coherency
Invalid(not valid
cache block)
Read/Write(dirty)
Read Only(clean)
)tihfietadilavnidneS(
(Writ
e back dirty
block to
memory)
Processor read miss
Processor write
Processor write miss
Processorread miss
Processor write(hit or miss)
Cache state transitions using signals from the processora.
Invalid(not valid
cache block)
Read/Write(dirty)
Read Only(clean)Invalidate or
another processorhas a write miss
for this block(seen on bus)
Another processor has a readmiss or a write miss forthis block (seen on bus);
write back old block
Cache state transitions using signals from the busb.
31
1a jecompp
Synchronization using Coherency
Succeed?(= 0?)
Unlocked?(= 0?)
Load lockvariable
No
Yes
No
Try to lock variable using swap:read lock variable and then set
variable to locked value (1)
Begin updateof shared data
Finish updateof shared data
Unlock:set lock variable to 0
Yes
32
1a jecompp
Concluding Remarks
• Evolution vs. Revolution“More often the expense of innovation comes from being too
disruptive to computer users”
• “Acceptance of hardware ideas requires acceptance by software people; therefore hardware people should learn about software. And if software people want good machines, they must learn more about hardware to be able to communicate with and thereby influence hardware engineers.”
Cach
e
Virtu
al m
emor
y
RIS
C
Para
llel p
roce
ssin
g m
ultip
roce
ssor
Pip
elin
ing
Mass
ive
SIM
D
Mic
ropr
ogr
am
min
g
Tim
esha
red
multi
proce
ssor
CC
-UM
A m
ultip
roce
ssor
CC
-NU
MA
multi
proce
ssor
Not
-CC
-NU
MA
multi
proce
ssor
Mess
age
-pass
ing m
ultip
roce
ssor
Evolutionary Revolutionary