37
1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

Embed Size (px)

Citation preview

Page 1: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

1

SSC114 Arquitetura de Computadores

Arquiteturas ParalelasAula 9

15/09/10 (Turmas 1 e 2)

Profa. Sarita

Page 2: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

2

Arquiteturas Paralelas

Níveis de paralelismo Instrução (granulosidade fina)

Paralelismo entre as instruções Arquiteturas Pipeline, Superescalar, VLIW

Tarefas (granulosidade média) Paralelismo entre as threads Arquiteturas SMT (Simultaneous MultiThreading)

Processos (granulosidade grossa) Paralelismo entre os processos Computação Paralela Arquiteturas multiprocessadores e multicomputadores

Page 3: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

3

Arquiteturas Paralelas

Computação Paralela – Conceitos Permite a execução das tarefas em menor tempo,

através da execução em paralelo de diversas tarefas.

O paralelismo pode ser obtido em diversos níveis, com ou sem o uso de linguagens de programação paralela.

Arquiteturas de diversos tipos, elaboradas para aplicações específicas, podem ser utilizadas para acelerar a execução dessas aplicações.

Page 4: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

4

Arquiteturas Paralelas

Computação Paralela – Conceitos Programação Seqüencial Programação Concorrente

Um servidor, atendendo vários clientes através de uma política de escalonamento no tempo

Programação Paralela Vários servidores, atendendo vários clientes

simultaneamente no tempo

Page 5: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

5

Arquiteturas Paralelas

Computação Paralela – Aplicações Genoma Humano Turbulência dos Fluidos Dinâmica de Veículos Circulação de Oceanos Dinâmica de Fluidos Viscosos Modelagem de Supercondutores Cromodinâmica Quântica Visão por Computador Farmacêutica Biologia Estrutural Previsão do Tempo (+ 72 hs)

Page 6: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

6

Arquiteturas Paralelas

Existem diversas classificações para as arquiteturas paralelas Devido a constante evolução, nenhuma classificação

consegue abranger todas as arquiteturas existentes Classificação de Flynn (1972):

“Some computer organizations and their effectiveness”, IEEE Transactions on Computers, vol. C-21, pp. 948-960, 1972.

Mais conhecida Baseia-se na unicidade e multiplicidade do fluxo de dados

e instruções

Page 7: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

7

Arquiteturas Paralelas

Classificação de Duncan (1990) “A survey of parallel computer architectures”,

IEEE Computer, pp. 5-16, Fevereiro, 1990 Classificação mais recente e abrangente Menos conhecida

Page 8: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

8

Arquiteturas ParalelasClassificação de Flynn

SISD

Single InstructionSingle Data

SIMD

Single InstructionMultiple Data

MISD

Multiple InstructionSingle Data

MIMD

Multiple InstructionMultiple Data

Único Múltiplo

Único

Múltiplo

Flu

xo d

e inst

ruçõ

es

Fluxo de dados

Page 9: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

9

Classificação de Duncan

Duncan, em sua classificação, exclui arquiteturas que apresentem apenas mecanismos de paralelismo de baixo nível, que já se tornaram lugar comum nos computadores modernos.

Exemplos desses mecanismos são: pipeline dos estágios de execução de uma instrução e unidades funcionais múltiplas em uma única UCP.

Page 10: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

10

Classificação de Duncan

Síncronas SIMD

Processadores Vetoriais

Arquiteturas Sistólicas

Processadores Matriciais

Memória Associativa

MIMD

Paradigma MIMD

MIMD/SIMD

Fluxo de Dados

Redução

Frente de Onda

Memória Distribuída

Memória Compartilhada

Assíncronas

Page 11: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

11

Classificação de Duncan

Arquiteturas Síncronas Arquiteturas paralelas síncronas coordenam suas

operações concorrentes sincronamente em todos os processadores, através de relógios globais, unidades de controle únicas ou controladores de unidades vetoriais

Tais arquiteturas apresentam pouca flexibilidade para a expressão de algoritmos paralelo

Page 12: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

12

Classificação de Duncan

Processadores Vetoriais Esquematicamente, a organização básica de um processador vetorial

apresenta: um processador escalar (para a execução do código não vetorizável do programa), uma unidade de processamento vetorial, e um processador de instruções (que define quais instruções serão executadas em qual dos processadores)

Exemplificando uma instrução vetorial, considere o código:for i = 1 to 100 ai = 0

Em uma máquina vetorial, apenas a estrutura ai:100 = 0 executa esta instrução, enquanto que, em uma máquina escalar, a busca e decodificação das instruções ocorrerá 100 vezes

É importante ressaltar que o paralelismo dessas arquiteturas é explorado em nível de compilação e não de programação. Exemplos de processadores vetoriais são: Cray 1 e CDC Cyber 205

Page 13: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

13

Classificação de Duncan

Arquiteturas SIMD Fads Arquiteturas SIMD apresentam múltiplos processadores, sob a

supervisão de uma unidade central de controle, que executam a mesma instrução sincronamente em conjuntos de dados distintos. Podem ser organizadas de duas maneiras: Processadores Matriciais: projetados especialmente para fornecer

estruturas para computação sobre matrizes de dados, são empregados para fins específicos. Fornecem acesso à memória via endereço, o que os diferencia do modelo associativo. Exemplos: Illiac IV e IBM GF11

Memória Associativa: relacionam arquiteturas SIMD cujo acesso à memória é feito de acordo com o seu conteúdo, em contraste ao método de acesso usual, via endereço. O esquema associativo visa permitir o acesso paralelo à memória, de acordo com certo padrão de dados. Exemplos: Goodyear Aerospace STARAN e Parallel Element Processing Esemble (PEPE)

Page 14: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

14

Classificação de Duncan

Arquiteturas Sistólicas Propostas no início da década de 80, por H.T. Kung na

Universidade de Carnegie Mellon, estas arquiteturas têm como principal objetivo fornecer uma estrutura eficiente para a solução de problemas que necessitem de computação intensiva junto a grande quantidade de operações de E/S

Essas arquiteturas se caracterizam pela presença de vários processadores, organizados de maneira pipeline, que formam uma cadeia na qual apenas os processadores localizados nos limites desta estrutura possuem comunicação com a memória

Desta maneira, o conjunto de dados percorre toda a cadeia de processadores, de maneira rítmica e sincronizada por um relógio global, não havendo armazenamento temporário em memória na comunicação entre os processadores

Page 15: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

15

Arquiteturas ParalelasClassificação de Flynn SISD: único fluxo de instrução, único fluxo de dados

classe que representa os computadores convencionais (seriais)

as instruções são executadas serialmente, porém os estágios (busca da instrução, decodificação, busca do operando e execução) podem ser sobrepostos (pipeline)

Pode-se saber o que está ocorrendo exatamente em cada instante de tempo e reproduzir o processo passo a passo mais tarde

Page 16: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

16

Arquiteturas ParalelasClassificação de Flynn – SISD

FI

FI FD

FI - Fluxo de instruçõesFD - Fluxo de dadosUP - Unidade de Processamento

UC UP M

M - MemóriaUC - Unidade de Controle

Page 17: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

17

Arquiteturas ParalelasClassificação de Flynn – SISD Exemplo (SISD)

LOAD A(I)

B(I)=A(I)*4 => MULT 4

STORE B(I)

TEMPO:

t1

t2

t3

LOAD A(1)

MULT 4

STORE B(1)

Processador P

Processador P

Processador P

t4

t5

t6

LOAD A(2)

MULT 4

STORE B(2)

Processador P

Processador P

Processador P

Page 18: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

18

Arquiteturas ParalelasClassificação de Flynn – MISD MISD: múltiplo fluxo de instruções, único fluxo

de dados vários processadores, onde cada um recebe

instruções distintas mas operam sobre o mesmo conjunto de dados

poucos exemplos Múltiplos filtros de freqüência operando sobre um

único fluxo de sinal Múltiplos algoritmos de criptografia para decodificar

uma mensagem

Page 19: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

19

Arquiteturas ParalelasClassificação de Flynn – MISD

M

M

M

......

..

Memória

UP

UP

UP

......

..

UC

UC

UC...

.....

FI

FI

FI

FI

FI

FI

FD

FD

Page 20: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

20

Arquiteturas ParalelasClassificação de Flynn – SIMD SIMD: único fluxo de instruções, múltiplo fluxo

de dados classe que representa os processadores

matriciais, paralelos e associativos uma única unidade de controle que envia um

fluxo de instruções para vários processadores os processadores recebem a mesma

instrução ao mesmo tempo e atuam sobre diferentes fluxos de dados

Cambridge Parallel Processing Gamma II Plus

Page 21: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

21

Arquiteturas ParalelasClassificação de Flynn – SIMD

FI

FI FD

UCUP

MUP

UP

M

M

FD

FD

......

..

......

..FI

FI

Memória

•1024 processadores em um array 32x32, ou 4096 em 64x64•processador de controle armazena instruções e dados são armazenados na memória de cada processador

Page 22: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

22

Arquiteturas ParalelasClassificação de Flynn – SIMD Exemplo (SIMD)

LOAD A(I)

B(I)=A(I)*4 => MULT 4

STORE B(I)

TEMPO:

t1

t2

t3

LOAD A(3)

MULT 4

STORE B(3)

P3

P3

P3

LOAD A(2)

MULT 4

STORE B(2)

P2

P2

P2

LOAD A(1)

MULT 4

STORE B(1)

P1

P1

P1

Page 23: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

23

Arquiteturas ParalelasClassificação de Flynn – MIMD MIMD: múltiplo fluxo de instruções, múltiplo

fluxo de dados vários processadores, cada um controlado por

uma unidade de controle processadores recebem instruções diferentes

e operam sob fluxo de dados diferentes podem ser síncronos ou assíncronos

Page 24: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

24

Arquiteturas ParalelasClassificação de Flynn – MIMD

......

..

M

M

M

......

..

Memória

FI

FI

FI

FD

FD

FI

FI

FI

UP

UP

UP...

.....

UC

UC

UC

......

..

FD

Page 25: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

25

Arquiteturas ParalelasClassificação de Flynn – MIMD Exemplo (MIMD)

TEMPO:

InicializaDispara tarefa A

Dispara tarefa B

Espera por processador

Dispara tarefa C

Espera por processador

Dispara tarefa D

Espera fim de todas as tarefas

Junta resultadosFim

P1Programa principal

P2 P3

Tarefa B

Fim

Tarefa A

Fim

Tarefa D

Fim

Tarefa C

Fim

Page 26: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

26

Modelos de acesso à memória Um computador convencional consiste de um

processador executando um programa armazenado na memória:

Memória principal

Processador

Instruções para o processadorDados para ou do processador

Page 27: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

27

Modelos de acesso à memória Cada lugar da memória possui um endereço que

inicia em 0 e vai até 2n - 1, onde n é o número de bits do endereço

Em computação paralela, pode-se ter: memória compartilhada (multiprocessadores) memória distribuída (multicomputadores)

Page 28: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

28

MIMD com Memória compartilhada A mesma memória é acessada pelos múltiplos

processadores Sincronização entre tarefas é feita por escrita/leitura

na/da memória compartilhada e usuário é responsável por sua especificação

Um lugar da memória não pode ser modificado por uma tarefa enquanto outra o estiver acessando

Page 29: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

29

MIMD com Memória compartilhada Comunicação entre tarefas é rápida Escalabilidade limitada pelo número de caminhos

entre memória e processadores

UC1

UC2

UCn

Page 30: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

30

MIMD com Memória compartilhada Usuário é responsável pela sincronização Programação:

Linguagens de programação paralela Construções e instruções paralelas permitem

declarações de variáveis compartilhadas e seções paralelas de código

Compilador responsável pela geração do código final executável

Threads Seqüências de código escritas em alto nível para

processadores individuais que podem acessar localidades compartilhadas

Page 31: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

31

MIMD com Memória compartilhada Exemplos:

SMP (Symetric MultiProcessors) SGI Power Chalenge máquinas da Sun Microsystems Silicon Graphics

NUMA (NonUniform Memory Access)

Page 32: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

32

MIMD com Memória distribuída Memória fisicamente distribuída entre os

processadores e cada memória local só pode ser acessada pelo seu processador

Tarefas se comunicam através de troca de mensagens e a sincronização entre as tarefas é feita através dessa troca

Page 33: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

33

MIMD com Memória distribuída Programação:

Bibliotecas com rotinas para passagem de mensagens que são ligadas a programas seqüenciais convencionais são bastante utilizadas

Problema dividido em um número de tarefas que se comunicam

Page 34: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

34

MIMD com Memória distribuída

UC1

UC2

UCn

Page 35: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

35

MIMD com Memória distribuída MPP (Massively Parallel Processors)

interconectadas por rede de alta velocidade boa escalabilidade (podem ser formadas por uma grande

quantidade de máquinas) complicadas de programar alto custo (em torno de US$ 1.000.000) Exemplos:

Intel Paragon Cray T3E Thinking Machines CM-5

Page 36: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

36

MIMD com Memória distribuída COW (Cluster of Workstations)

utilização de estações de trabalho em uma rede local de processamento

baixo custo boa relação custo/benefício

Page 37: 1 SSC114 Arquitetura de Computadores Arquiteturas Paralelas Aula 9 15/09/10 (Turmas 1 e 2) Profa. Sarita

37

Arquiteturas Paralelas

Fonte: A. Tanenbaum Structured Computer Organization

A rqu ite turas P ara le las

S ISD S IM D M IS D M IM D

(V on N eum ann)

VectorProcessor

M ulti-P rocessors

ArrayProcessor

M ulti-C om puters

U M A C O M A N U M A M PP C O W

Bus SwitchedC C -

N U M AN C -

N U M AG rid

?