rogramação aralela FEU 2. Arquitecturas de omputadores e rogramação aralela Arquitecturas de omputadores Taxonomia de Flynn (extra livro recomendado) Base da Taxonomia: D: data stream (fluxo de acesso a dados) S: single I: 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 ontrol Unit Instruction Stream rocessing Unit Data Stream Memory Unit 2.1 rogramação aralela, FEU
Arquitecturas de omputadores 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 U IS U 1 LM 1 U 2 LM 2 U n LM n Data Sets carregados pelo Hospedeiro (Host) 2.2 rogramação aralela, FEU Arquitecturas de omputadores MIMD - Multiple Instruction/Multiple Data: cada elemento de processamento executa uma cadeia de instruções diferente, sobre cadeias de dados também diferentes. odem ser: Multiprocessadores (fortemente ligados ou de memória partilhada) Multicomputadores (fracamente ligados ou de memória distribuída) Multicomputador: 1 LM 1 Rede de Interligação 2 LM 2 n LM n 2.3 rogramação aralela, FEU
Arquitecturas de omputadores 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: IS IS IS U 1 U 2 U n Memória (prog. & dados) U 1 U 2 U n Ranking: 1. MIMD (versáteis; multiprocessadores ou multicomputadores) 2. SIMD 3. MISD (para finalidades específicas, não de uso geral) 2.4 rogramação aralela, FEU Multiprocessadores Memória é partilhada pelos processadores omunicaçã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 eriféricos Symmetric Multiprocessor Igual acesso a todos os periféricos,, OS Kernel, etc... Asymmetric Multiprocessor Subconjunto de processadores tem o exclusivo daqueles acessos lassificação quanto à arquitectura: UMA: Uniform Memory Access NUMA: Non Uniform Memory Access OMA: ache Only Memory Access 2.5 rogramação aralela, FEU
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 odem existir caches locais Infraestruturas comuns (memória, interligação...) 1 2 n Sistema de Interligação (Bus, rossbar,...) Forte contenção de memória (Atrasos nos acessos a memória) Fraca scalability SM1 SM2 SMn 2.6 rogramação aralela, FEU 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 artilhadas LM1 LM2 LMn 1 2 n Sistema de Interligação 2.7 rogramação aralela, FEU
Multiprocessadores NUMA - Non Uniform Memory Access (cont.) NUMA - Modelo luster Hierárquico Memória Distribuída + Memória Global artilhada Acesso a 3 Níveis: Local (mais rápido) Global Remoto (mais lento) GSM GSM GSM GIN I N I N I N LUSTER, composto por UMA ou NUMA 2.8 rogramação aralela, FEU Multiprocessadores OMA - ache Only Memory Access aso especial de NUMA, na qual as memórias distribuídas são convertidas em ache 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 Sistema de Interligação D D D 2.9 rogramação aralela, FEU
Multicomputadores Memória é local aos processadores, NÃO ARTILHADA omunicaçã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: rocessador Memória local privada apacidade de MULTIOMUTADOR: ada um dos múltiplos nós constitui-se do essencial para poder ser considerado um computador M M M M Rede de Interligação (omunicação de Mensagens) 2.10 rogramação aralela, FEU 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 ontenção de Memória entralizada Soluções: Memória ache roblema: oerência da ache Memória Distribuída, artilhada roblema: acessos lentos a memória remota Multicomputadores Melhor Scalability omunicaçã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.11 rogramação aralela, FEU
MIMD - Síntese final MULTIROESSADORES MULTIOMUTADORES Mais Fácil Diferentes Modelos de rogramação Mais omplexo (mensagens) Menor Diferentes Scalability Maior Tendências actuais para máquinas general purpose: Memória Distribuída, Globalmente artilhada Endereços Virtuais Sistemas VSM - Virtual Shared Memory 2.12 rogramação aralela, FEU omputação aralela: Terminologia Data-arallelism (modelo de programação) grande número de itens de dados, sujeitos a processos idênticos, todos em paralelo. (Ex.: anterior Rank Sort) Data artitioning (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 rocessos sem necessidade de sincronização (Ex.: anterior Rank Sort) 2.13 rogramação aralela, FEU
omputação aralela: Terminologia Replicated Workers (Farm de rocessadores) Farmer Gestão de uma ool de Tarefas ompilação de Resultados (usualmente) Worker Execução das tarefas Farmer W1 (Workers) W2 W3 Wn ipelined omputation rocessos 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) 2.14 rogramação aralela, FEU roblemas que Limitam o Desempenho de Sistemas aralelos ontenção de Memória Diferentes processadores tentam usar os mesmos recursos de acesso a memória ódigo Sequencial Excessivo ódigo que não se consegue paralelizar... Tempo de riação de rocessos (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 omunicação (multicomputadores) principalmente em redes complexas, mensagem atravessa vários processadores Atrasos de Sincronização rocesso aguarda sinal de sincronização de outro processo Desiquilíbrio no Balanceamento de arga omputacional Alguns processadores trabalham muito... Outros não! (desaproveitamento das capacidades de processamento) 2.15 rogramação aralela, FEU