2_Arquit

8

Click here to load reader

description

Conteúdo complementar, de estudos

Transcript of 2_Arquit

Page 1: 2_Arquit

Programação ParalelaFEUP

A. Augusto de Sousa

2. Arquitecturas de Computadores e Programação Paralela

2.1 Programação Paralela, FEUPA. Augusto de Sousa

Arquitecturas de Computadores

• Taxonomia de Flynn (extra livro recomendado)– Base da Taxonomia:

D: data stream (fluxo de acesso a dados) S: singleI: instruction stream (fluxo de instruções) M: multiple

– SISD - Single Instruction Stream, Single Data Stream– SIMD - Single Instruction Stream, Multiple Data Stream– MIMD - Multiple Instruction Stream, Multiple Data Stream– MISD - Multiple Instruction Stream, Single Data Stream

•SISD - Single Instruction/Single Data:•corresponde à máquina sequencial de von Neumann•uma instrução é descodificada numa unidade de tempo•a cadeia de instruções manipula uma cadeia de dados

ControlUnit

ProcessingUnit

MemoryUnit

InstructionStream

DataStream

Page 2: 2_Arquit

2.2 Programação Paralela, FEUPA. Augusto de Sousa

Arquitecturas de Computadores

•SIMD - Single Instruction/Multiple Data:•uma operação é desencadeada simultaneamente em várias unidades de processamento•cada unidade de processamento acede a diferentes cadeias de dados

CU

PU1 LM1

IS

DS

PU2 LM2DS

PUn LMnDS

DS

DS

DS

Data Setscarregados peloHospedeiro(Host)

2.3 Programação Paralela, FEUPA. Augusto de Sousa

Arquitecturas de Computadores

•MIMD - Multiple Instruction/Multiple Data:•cada elemento de processamento executa uma cadeia de instruções diferente,•sobre cadeias de dados também diferentes.•Podem ser:

•Multiprocessadores (fortemente ligados ou de memória partilhada)•Multicomputadores (fracamente ligados ou de memória distribuída)

Multicomputador:

P1 LM1

P2 LM2

Pn LMn

Redede

Interligação

Page 3: 2_Arquit

2.4 Programação Paralela, FEUPA. Augusto de Sousa

Arquitecturas de Computadores

•MISD - Multiple Instruction/Single Data:•pouco intuitiva...•cadeia de processadores•dados flúem de processador em processador, sendo modificados em cada um deles•Vectores Sistólicos de processadores:

Memória(prog. & dados)

CU1

IS

PU1DS

CU2

PU2

CUn

PUn

IS IS

DS

•Ranking:1. MIMD (versáteis; multiprocessadores ou multicomputadores)2. SIMD3. MISD (para finalidades específicas, não de uso geral)

2.5 Programação Paralela, FEUPA. Augusto de Sousa

Multiprocessadores

• Memória é partilhada pelos processadores– Comunicação inter-processadores realiza-se através de variáveis partilhadas

(MIMD Fortemente Ligadas ou de memória partilhada)

– Not Scalable (contenção de memória)

• Quanto aos Periféricos– Symmetric Multiprocessor

• Igual acesso a todos os periféricos, I/O, OS Kernel, etc...

– Asymmetric Multiprocessor• Subconjunto de processadores tem o exclusivo daqueles acessos

• Classificação quanto à arquitectura:– UMA: Uniform Memory Access– NUMA: Non Uniform Memory Access– COMA: Cache Only Memory Access

Page 4: 2_Arquit

2.6 Programação Paralela, FEUPA. Augusto de Sousa

Multiprocessadores UMA - Uniform Memory Access

• Memória física é UNIFORMEMENTE partilhada pelos processadores– Todos os processadores têm igual tempo de acesso a memória– Podem existir caches locais

P1 P2 Pn

Sistema de Interligação(Bus, Crossbar, ...)

SM1 SM2 SMnI/O

Infraestruturas comuns (memória, interligação...)

Forte contenção de memória(Atrasos nos acessos a memória)

Fraca scalability

2.7 Programação Paralela, FEUPA. Augusto de Sousa

Multiprocessadores NUMA - Non Uniform Memory Access

• Blocos de Memória Locais– Memória é fisicamente distribuída pelos vários processadores– A colecção de memórias locais constitui um espaço de endereçamento único (mem. partilhada)

• Endereçamento local = acesso mais rápido• Endereçamento remoto = acesso mais lento

• NUMA - Modelo de Memórias Locais Partilhadas

P1

Sistema de Interligação

LM1

P2

LM2

Pn

LMn

Page 5: 2_Arquit

2.8 Programação Paralela, FEUPA. Augusto de Sousa

Multiprocessadores NUMA - Non Uniform Memory Access (cont.)

• NUMA - Modelo Cluster Hierárquico– Memória Distribuída + Memória Global Partilhada– Acesso a 3 Níveis:

• Local (mais rápido)• Global• Remoto (mais lento)

P

P

P

CSM

CSM

CSM

CIN

P

P

P

CSM

CSM

CSM

CIN

P

P

P

CSM

CSM

CSM

CIN

GIN

GSM GSM GSM

CLUSTER, composto porUMA ou NUMA

2.9 Programação Paralela, FEUPA. Augusto de Sousa

Multiprocessadores COMA - Cache Only Memory Access

• Caso especial de NUMA, na qual as memórias distribuídas são convertidas em Cache• Todas as caches funcionam como um espaço global• Não existe hierarquia de memória em cada processador• Acessos a caches remotas efectuados por meio de directórios de caches, distribuídos pelos processadores

D

C

P

D

C

P

D

C

P

Sistema de Interligação

Page 6: 2_Arquit

2.10 Programação Paralela, FEUPA. Augusto de Sousa

Multicomputadores

• Memória é local aos processadores, NÃO PARTILHADA– Comunicação inter-processadores realiza-se através de passagem de mensagens

(MIMD Fracamente Ligadas ou de memória distribuída)

– Scalable

• Um nó constitui-se de:– Processador– Memória local privada– Capacidade de I/O

MULTICOMPUTADOR:

Cada um dos múltiplos nós constitui-se do essencial para poder ser consideradoum computador

M

P

I/O

M

P

I/O

M

P

I/O

M

P

I/O

Rede de Interligação(Comunicação de Mensagens)

2.11 Programação Paralela, FEUPA. Augusto de Sousa

MIMD - Síntese final

• Multiprocessadores– Adequados a aplicações:

• General purpose• Onde o (pouco) esforço de programação é a

principal preocupação– Scalability Baixa devido a Contenção de

Memória Centralizada– Soluções:

• Memória Cache– Problema: Coerência da Cache

• Memória Distribuída, Partilhada

– Problema: acessos lentos a memória remota

• Multicomputadores– Melhor Scalability– Comunicação através de Mensagens

Difícil acesso a memória remota

– Dispendioso realizar ligações permanentes entre todos os processadores

• Solução (?):Ligações parciais, topologias várias(hipercubo, malha, toro, anel, etc...)

Page 7: 2_Arquit

2.12 Programação Paralela, FEUPA. Augusto de Sousa

MIMD - Síntese final

• Tendências actuais para máquinas general purpose:– Memória Distribuída,– Globalmente Partilhada– Endereços Virtuais

Sistemas VSM - Virtual Shared Memory

MULTIPROCESSADORES MULTICOMPUTADORES

Mais Fácil Mais Complexo(mensagens)

Menor MaiorDiferentes Scalability

Diferentes Modelos de Programação

2.13 Programação Paralela, FEUPA. Augusto de Sousa

Computação Paralela: Terminologia

• Data-Parallelism (modelo de programação)– grande número de itens de dados,– sujeitos a processos idênticos,– todos em paralelo.

(Ex.: anterior Rank Sort)

• Data Partitioning (caso especial do modelo anterior)– Dados repartidos,– Regiões adjacentes,– Operadas por processadores diferentes

• Iteração Síncrona (de um processo)– O resultado da iteração é necessário noutros processos– Necessidade de sincronizar processos,– Trocando informação necessária

(requer comunicações)

• Relaxed Algorithm– Processos sem necessidade de sincronização

(Ex.: anterior Rank Sort)

Page 8: 2_Arquit

2.14 Programação Paralela, FEUPA. Augusto de Sousa

Computação Paralela: Terminologia

• Replicated Workers (Farm de Processadores)– Farmer

• Gestão de uma Pool de Tarefas• Compilação de Resultados (usualmente)

– Worker• Execução das tarefas

• Pipelined Computation– Processos em sequência (pipeline);– Os resultados de um processo...– São os dados do processo seguinte.

(problemas específicos, velocidade limitada pelo processo mais demorado)

Farmer

W1

W2

Wn

W3

(Workers)

2.15 Programação Paralela, FEUPA. Augusto de Sousa

Problemas que Limitam o Desempenho de Sistemas Paralelos

• Contenção de Memória– Diferentes processadores tentam usar os mesmos recursos de acesso a memória

• Código Sequencial Excessivo– Código que não se consegue paralelizar...

• Tempo de Criação de Processos (overheads, sistema operativo)– Alocação da memória necessária ao novo processo– Adição do novo processo na lista de processos (scheduling)– etc...

• Atrasos de Comunicação (multicomputadores)– principalmente em redes complexas,– mensagem atravessa vários processadores

• Atrasos de Sincronização– Processo aguarda sinal de sincronização de outro processo

• Desiquilíbrio no Balanceamento de Carga Computacional– Alguns processadores trabalham muito...– Outros não!

(desaproveitamento das capacidades de processamento)