1 a jecompp 1 Computação de Alto Desempenho Tecnologias de Alta Velocidade de Operação...

Preview:

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

Recommended