Programação Paralela



Documentos relacionados
Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Máquinas Multiníveis

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

Introdução às arquiteturas paralelas e taxonomia de Flynn

Sistemas Operacionais

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES

Organização e Arquitetura de Computadores I. de Computadores

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

Organização de Computadores 2005/2006 Processamento Paralelo

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)

Ricardo Gonçalves 2013/2014. Arquitecturas Multicore

Sistemas Distribuídos Conceitos HW e SW. Edeyson Andrade Gomes

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores

Comparação SDs X Scs

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

slide 0 Algoritmos Paralelos

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN

Capítulo 8 Arquitetura de Computadores Paralelos

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Introdução aos Computadores

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

Introdução aos Sistemas Operativos

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Processamento de Dados

Memória compartilhada (shared memory): - o espaço de endereçamento é único; - comunicação através de load e store nos endereços de memória.

Everson Scherrer Borges João Paulo de Brito Gonçalves

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

HARDWARE GRÁFICO. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

O sucesso alcançado pelos computadores pessoais fica a dever-se aos seguintes factos:

Sistemas Distribuídos

Prof. Sandrina Correia

Arquitetura de Von Neumann e os Computadores Modernos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Capítulo 2 (Livro Texto*) - Notas de Aula - Parte II

Programação e Scheduling

Programação Paralela e Distribuída 2009/10. Fundamentos

Computação de Alta Perfomance com Software Livre (Clusters)

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

ARQUITETURA DE COMPUTADORES

Organização de Computadores 1

Memória Compartilhada Distribuída 1

SISTEMAS INFORMÁTICOS

Figura 1 - O computador

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Distribuídos. Aleardo Manacero Jr.

Tecnologia de Sistemas Distribuídos Capítulo 8: Sistemas de Ficheiros Distribuídos Paulo Guedes

Multiprogramação leve em arquiteturas multi-core

Sistemas Operacionais

FACULDADE PITÁGORAS PRONATEC

Sistemas Operativos I

Estrutura de um Computador

Programação de Sistemas para Tempo Real Capítulo 1. Luiz Affonso Guedes DCA-CT-UFRN

Memória. Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Processamento Paralelo

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Arquitectura de Computadores II. Multiprocessadores

Profs. Deja e Andrei

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Componentes de um Sistema de Operação

Sistemas Operativos. 4ª Geração (a partir de 70 )

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Introdução à Programação 2006/07. Computadores e Programação

Professores: Aula 10. Lúcia M. A. Drummond Simone de Lima Martins. Conteúdo: Arquiteturas Avançadas. - Arquiteturas RISC - Processamento Paralelo

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Sistemas Distribuídos: Conceitos e Projeto Classificação de Sistemas Distribuídos e Middleware

ARQUITETURA DE COMPUTADORES

Edeyson Andrade Gomes

Sistemas Operacionais

Introdução a Computação Paralela e a Montagem de Clusters.

Memória principal; Unidade de Controle U C P. Unidade Lógica e Aritmética

Sistema Operacional Correção - Exercício de Revisão

MODELO CLIENTE SERVIDOR

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

7-1. Parte 6 Otimizações da Arquitetura

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Introdução à Arquitetura de Computadores

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Sistemas Distribuídos Aula 1 Introdução

CPU - Significado CPU. Central Processing Unit. Unidade Central de Processamento

Visão do Usuário da DSM

Estruturas do Sistema de Computação

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Modelo de Von Neumann

Arquitetura de Computadores - Revisão -

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

5 Entrada e Saída de Dados:

Transcrição:

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