2_Arquit
Click here to load reader
-
Upload
celia-baldessar -
Category
Documents
-
view
214 -
download
0
description
Transcript of 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
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
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
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
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
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...)
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)
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)