1
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
1a jecompp
Paralelismo no Nível de Programas e
Processos
2
• Arquiteturas de Processamento com Diversos
Processadores (máquinas paralelas)
• Arquiteturas de Processamento com Diversos
Computadores (rede de computadores)
1a jecompp
Paralelismo no Nível de Instruções
3
(ILP - Instruction Level Parallelism)
• Processador que Executam Instruções em Paralelo
–
–
–
–
–
–
Pipelining
Superpipelining
Superscalar
VLIW - Very long Instruction Word
Vetorial
etc.
1a jecompp
4
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
1a jecompp
5
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
SIMD
MIMD
MISD
-
Single Instruction, Single Data stream
Single Instruction, Multiple Data stream
Multiple Instruction, Multiple Data stream
Multiple instruction, Single Data stream
1a jecompp
6
SISD
Exemplos: Estações de trabalho e Computadores
pessoais com um único processador
1a jecompp
7
SIMD
Exemplos: ILIAC IV, MPP, DHP,
MASPAR MP-2 e CPU Vetoriais
1a jecompp
8
MIMD
Exemplos: Cosmic Cube,
nCube 2, iPSC, FX-2000,
Paragon XP/S e Redes de
Computadores
Mais difundida
Memória Compartilhada
Memória Distribuída
1a jecompp
9
MISD
Exemplos: Array Sistólicos
1a jecompp
10
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
1a jecompp
11
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
1a jecompp
12
Multiprocessadores - UMA
1a jecompp
13
Multiprocessadores - NUMA
1a jecompp
14
Multiprocessadores - NUMA
1a jecompp
15
Multicomputarores
1a jecompp
16
Interconexão
Anel
Grafo Completo
1a jecompp
17
Interconexão
HiperCubo
1a jecompp
18
Interconexão
Árvore
Estrela
1a jecompp
19
Interconexão
1a jecompp
Programação Paralela
20
Exemplo
• 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?
1a jecompp
Programação Paralela
21
Uma Solução
1a jecompp
Programação Paralela
22
Speedup
• 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?
ganho 
15
 3.75
4
OBS.: 15 Comunicações
1a jecompp
23
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
1a jecompp
24
Lei de Ahmdahl
•
speedup
Onde: f - fração melhorada (paralelizável)
1
(1  f ) 
f
P
P - número de processadores
• Exemplo: Qual a fração paralelizável necessária para se
alcançar um speedup de 200 usando-se 256 processadores?
1
1
200 

f
256 256 f  f
(1  f ) 
256
256
1a jecompp
25
Lei de Ahmdahl
1
200 
256 255 f
256
256
200 
256 255 f
f  0.9989 99.89%
1a jecompp
26
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 programs
many commercial failures
Processor
Processor
Processor
Cache
Cache
Cache
Processor
Processor
Processor
Cache
Cache
Cache
Memory
Memory
Memory
Single bus
Memory
I/O
Network
1a jecompp
27
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
1a jecompp
28
Some Interesting Problems
• Cache Coherency
Processor
Snoop
tag
Cache tag
and data
Processor
Snoop
tag
Cache tag
and data
Processor
Snoop
tag
Cache tag
and data
Single bus
Memory
I/O
• Synchronization
— provide special atomic instructions (test-and-set,
swap, etc.)
• Network Topology
1a jecompp
29
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)
1a jecompp
30
Cache Coherency
Invalid
(not valid
cache block)
Processor read miss
Processor write miss
Read Only
(clean)
Processor write
(hit or miss)
Processor
read miss
Invalid
(not valid
cache block)
Another processor has a read
miss or a write miss for
this block (seen on bus);
write back old block
Invalidate or
another processor
has a write miss
for this block
(seen on bus)
Read Only
(clean)
Read/Write
(dirty)
Read/Write
(dirty)
Processor write
a.
Cache state transitions using signals from the processor
b. Cache state transitions using signals from the bus
1a jecompp
31
Synchronization using Coherency
Load lock
variable
No
Unlocked?
(= 0?)
Yes
Try to lock variable using swap:
read lock variable and then set
variable to locked value (1)
No
Succeed?
(= 0?)
Yes
Begin update
of shared data
Finish update
of shared data
Unlock:
set lock variable to 0
1a jecompp
32
Concluding Remarks
Evolutionary
Parallel processing multiprocessor
Massive SIMD
Message-passing multiprocessor
Not-CC-NUMA multiprocessor
CC-NUMA multiprocessor
CC-UMA multiprocessor
RISC
Virtual memory
Cache
Timeshared multiprocessor
Pipelining
Microprogramming
• Evolution vs. Revolution
“More often the expense of innovation comes from
being too disruptive to computer users”
Revolutionary
• “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
1a
engineers.”
jecompp
Download

ch9a