Arquitetura de Computadores. Processamento Paralelo

Documentos relacionados
AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Processamento Paralelo

SSC0611 Arquitetura de Computadores

Caracterização de Sistemas Distribuídos

Multiprogramação leve em arquiteturas multi-core

SSC510 Arquitetura de Computadores. 6ª aula

Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary

Organização de Computadores II. Arquiteturas MIMD

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Sistemas distribuídos. Prof. Emiliano Monteiro

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

Introdução à Computação: Sistemas de Computação

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano

SIST706 Sistemas Distribuídos

Microarquiteturas Avançadas

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

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

Sistemas Operacionais. Tipos de SO

Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Curso: Redes de Computadores

Modelo de Von Neumann

Organização e Arquitetura de Computadores I

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva

Carlos Eduardo Batista Centro de Informática - UFPB

Disciplina de Arquitetura de Computadores

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

Sistemas Distribuídos

Unidade 12: Introdução ao Paralelismo:

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Computadores e Programação (DCC/UFRJ)

COMPUTADORES. Arquiteturas de Computadores Paralelos. Prof.: Agostinho S. Riofrio

Estrutura da Apresentação. Introdução ao Processamento Paralelo e Distribuído. Conceitos em PPD. Conceitos em PPD 4/26/09.

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Multiprocessamento. Patterson & Hennessy Capítulo 9. Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011

Arquitetura de Computadores. Prof. João Bosco Jr.

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Parte I Multiprocessamento

SSC0611 Arquitetura de Computadores

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

Desafios do Mapeamento de Processos em Arquiteturas Many-Core

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

Sistemas Multiprogramáveis/Multitarefa

SSC0510 Arquitetura de Computadores

Processamento Paralelo

Sobre Projeto no Nível RT: Bloco de controle: Bloco operativo:

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Linguagem de Programação II

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

Arquitetura de Computadores Aula 11 - Multiprocessamento

Disciplina: Sistemas Operacionais

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Arquiteturas Paralelas

Organização de Computadores 2005/2006 Processamento Paralelo

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Processadores. Principal função é executar programas armazenados na memória principal.

Programação Concorrente

Barramento. Prof. Leonardo Barreto Campos 1

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

Sistemas Operacionais

SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento

Sistemas operacionais INTRODUÇÃO

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

Computação Distribuída

Sistemas Operacionais. Adão de Melo Neto

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Arquiteturas de Computadores

SSC510 Arquitetura de Computadores. 7ª aula

Sistemas Operacionais Distribuídos

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Introdução a Sistemas Operacionais. Adão de Melo Neto

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Arquitetura de Computadores Unidade Central de Processamento CPU

Modelos para Concorrência

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Arranjo de Processadores

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Tipos de Sistemas Operacionais

Sistemas Distribuídos

Introdução à Ciência da Computação

Threads. Sistemas Operacionais. Charles Tim Batista Garrocho. Instituto Federal de São Paulo IFSP Campus Campos do Jordão. charles.garrocho.

Programação Distribuída e Paralela. Jorge Barbosa

Organização de Computadores

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Sistemas Operacionais

Programação Paralela e Distribuída

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Arquitetura de Computadores

Ferramentas para Programação em Processadores Multi-Core

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues

Prof. Gregorio Perez 2007

Infraestrutura de Hardware. Processamento Paralelo Multicores, Multi-Threading e GPUs

Transcrição:

Arquitetura de Computadores Processamento Paralelo 1

Multiprogramação e Multiprocessamento

Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple data stream - SIMD Multiple instruction, single data stream - MISD Multiple instruction, multiple data stream- MIMD

Single Instruction, Single Data Stream - SISD Único fluxo de instrução Dado armazenado numa única memória Uni-processador

Single Instruction, Multiple Data Stream - SIMD Única instrução Controla execuções simultâneas Vários elementos de processamento Cada elemento de processamento possui sua memória de dados associada Cada instrução é executada sobre diferente conjunto de dados por diferentes processadores Processadores em Vetor e Array

Multiple Instruction, Single Data Stream - MISD Sequência de dados Transmitida para conjunto de processadores Cada processador executa uma sequência diferente de instruções Nunca foi implementado

Multiple Instruction, Multiple Data Stream- MIMD Conjunto de processadores Simulteamente executa diferentes sequências de instruções Diferente conjunto de dados Ex: sistemas SMPs, clusters e NUMA

MIMD - Overview Usado em processadores de propósito geral Cada processador pode processar qualquer instrução necessária É também ser subdivida pelo método de comunicação entre processadores e memória

MIMD: fortemente acoplado - SMP Processadores compartilham memória Se comunicam através de memória compartilhada Symmetric Multiprocessor (SMP) Compartilha memória única ou um pool Compartilham barramento para acessar memória Tempo de acesso a memória a uma dada memória é o mesmo (aprox.) para cada processador

MIMD fortemente acoplada - NUMA Nonuniform Memory Access Tempo de acesso a diferentes regioes de memória pode diferenciar

MIMD Fracamente acoplada - Clusters Coleção de processadores independetes ou SMPs Interconectados para formar um cluster Comunicação por caminho fixo ou conexão de rede

Multiprocessadores simétricos (SMP) Um computador com as seguintes características: Dois ou mais processadores similares de capacidade comparável Processadores compartilham mesma memória e E/S Processadores conectados por barramento ou outra conexão interna Tempo de acesso à memória é aproximadamente o mesmo para todos processadores Todos processadores compartilham acesso a E/S Ou através dos mesmos canais ou dedicados para o mesmo dispositivo Todos processadores podem executar as mesmas funções (simétrico) Sistema controlado por SO integrado

Taxonomia de Arquitetura de Processadores Paralelos

SISD

SIMD

MIMD Memória compartilhada

MIMD memória distribuída

Vantagens do SMP Desempenho Se alguma tarefa puder ser executada em paralelo Disponibilidade Se um processador falhar, outro pode substituir Crescimento incremental Desempenho pode ser melhorado adicionando processadores Escalabilidade Fornecedores oferem diversas soluções baseado na quantidade de processadores

Multiprocessador fortemente acoplado

Classificação pela organização Tempo compartilhado ou barramento único Memória de múltiplas portas Unidade de controle central

Barramento de tempo compartilhado Forma mais simples Estrutura e interface são similares a um processador único Funcionalidades: Endereçamento diferentes módulos no barramento Arbitragem cada módulo é master por um tempo Compartilhamento do tempo se um módulo tem acesso ao barramento, os outros são suspensos Múltiplos processadores com múltiplos módulos de E/S

Organização de um SMP

Vantagens de Barramento de Tempo Compartilhado Simplicidade Flexibilidade Confiabilidade

Desvantagens de Barramento de Tempo Compartilhado Desempenho limitado pelo tempo de ciclo do barramento Cada processador deve ter sua cache local Para reduzir número de acesso ao barramento Leva a problemas de coerência de cache Solucionado em hardware

Atribuições do SO Processos simultâneos e concorrentes Escalonamento Sincronização Gerência de memória Confiabilidade e tolerância a falhas

Aumento de desempenho Pode ser medido pela taxa de execução de instruções MIPS = f / CPI f: clock do processador em MHz CPI: média de ciclos por instruções Aumenta-se desempenho aumentando instruções que completam naquele ciclo (CPI) Pode estar alcançando o limite Complexidade Consumo de energia Solução pode ser ter vários computadores para uma mesma tarefa

Multithread e Chips de Multiprocessadores Fluxo de instruções dividido em streams menores (threads) Executados em paralelo Há uma ampla variedade de implementação multithreading

Definições de Threads e Processos Thread em processadores multithread pode, ou não, ser o mesmo de thread em software Processo: Instância do programa rudando num computador Propriedade de recursos Espaço virtual de endereçamento para manter imagem do processo Escalonamento troca de processo mais custosa Thread: unidade despachável de trabalhodentro do processo Contexto: inclui PC, SP e área de pilha Interrompível: processador pode mudar para outra thread Troca de threads Troca de threads dentro de um mesmo processo Menos custo que troca de processo

Multithread implícito e explícito Todos processadores comerciais usam multithread explícito Executa instruções concorrentemente de diferentes threads explícitas Intercala instruções de diferentes threads em pipeline compartilhado Ou executa em paralelo em pipelines paralelos Multithread implícito é execução concorrente de threads extraídos de programa sequencial Threads implícitas definidas estaticamente pelo compilador ou dinamicamente pelo hardware

Técnicas para multithreading explícito Intercalado Granularidade fina Processador lida com dois ou mais contextos de thread por vez Troca de threads em cada ciclo de clock Se thread for bloqueada ela é removida da fila Bloqueio Granularidade grossa Thread é executada até que um evento cause delay Ex: cache miss Efetivo para processador com execução em ordem Evita stall de pipeline Multithread Simultâneo (SMT) Instruções simultâneas buscadas de múltiplos threads para unidades de execução de superescalar Chip de Multiprocessamento (Multi Core) Processador replicado num único chip Cada processador executa threadas separadas

Técnicas de processadores superescalares Escalar mono-thread Pipeline simples Sem multithread Escalar com multithread intercalado Forma mais fácil de implementar multithread Troca de thread a cada ciclo de clock Estágios de pipeline próximos de ocupação total Hardware precisa troca contexto de thread entre ciclos Escalar com multithread com Bloqueio Thread executada até evento ocorra Pode parar pipeline Processador troca entre threads

Diagramas de Modelos Escalares

Modelos de entrega de instruções Superescalar Sem multithread Multithread escalar intercalado: A cada ciclo, o máximo possível de instruções entregues Atrasos causados por troca de thread são eliminados Número de instruções entregues por ciclo é limitado por dependências Multithread superescalar com bloqueio Instrução de uma thread Multithread com bloqueio

Entrega de múltiplas instruções

Processadores com entrega múltipla de instruções Very Long Instruction Word (VLIW) Ex: IA-64 Múltiplas instruções numa única palavra Tipicamente construído pelo compilador Operações que podem ser executadas na mesma palavra Pode carregar com instrução vazia (nop) Multithread VLIW intercalado Eficiência semelhante com multithread intercalado em arquitetura superescalar Multithread VLIW com bloqueio Eficiência semelhante com multithread com bloqueio em arquitetura superescalar

Entrega de Múltiplias instruções

Execução de múltiplas threads Multithread Simultâneo (SMT) Entrega múltiplas instruções por vez Uma thread pode preencher todas janelas horizontais Intruções de dois ou mais threads podem ser entregues Com threads suficientes, pode entregar máximo de instruções a cada ciclo Chip com multiprocessadores Múltiplos processadores Cada núcleo com processador superscalar Threads são passadas para cada processador Pode entregar até 2 instruções por ciclo, por thread

Paralelismo

Clusters Alternativo aos SMPs Alta performance Alta disponibilidade Formado por um grupo heterogêneo de computaros interconectados Trabalham em conjunto como se fossem um único computador

Cluster de dois computadores sem disco compartilhado

Discos compartilhados