Processamento Paralelo

Documentos relacionados
Processamento Paralelo

Arquitetura de Computadores. Processamento Paralelo

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Caracterização de Sistemas Distribuídos

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

Multiprogramação leve em arquiteturas multi-core

SSC0611 Arquitetura de Computadores

Organização de Computadores II. Arquiteturas MIMD

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

Organização e Arquitetura de Computadores I

SIST706 Sistemas Distribuídos

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

Modelo de Von Neumann

SSC510 Arquitetura de Computadores. 8ª aula

Sistemas Operacionais. Tipos de SO

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

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

SSC510 Arquitetura de Computadores. 6ª aula

Arquiteturas Paralelas

SSC0611 Arquitetura de Computadores

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

Parte I Multiprocessamento

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

Quando Distribuir é bom

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

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

PARALELISMO NO NÍVEL DO PROCESSADOR

Barramento. Prof. Leonardo Barreto Campos 1

Sistemas de Memória Cache para Multiprocessadores

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

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

Curso: Redes de Computadores

Arranjo de Processadores

Sistemas distribuídos. Prof. Emiliano Monteiro

Sistemas Distribuídos

Quando Distribuir é bom

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

Processamento Paralelo & Multiprocessadores

Protocolos de Coerência de Memória Cache

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 04: PROCESSAMENTO PARALELO: MULTICOMPUTADOR

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Características de Sistemas Distribuídos

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

Tipos de Sistemas Operacionais

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

Computadores e Programação (DCC/UFRJ)

Características de Sistemas Distribuídos

Linguagem de Programação II

Tipos de Sistemas Operacionais. Professores : Jones - Wendell

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

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

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

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

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

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Unidade 12: Introdução ao Paralelismo:

William Stallings Arquitetura e Organização de Computadores 8 a Edição

SSC510 Arquitetura de Computadores. 7ª aula

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Arquitetura de Computadores

Sistemas Operacionais. Adão de Melo Neto

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

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

Sistemas Distribuídos

Arquitetura de Computadores

BARRAMENTOS DO SISTEMA FELIPE G. TORRES

Carlos Eduardo Batista Centro de Informática - UFPB

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

ORGANIZAÇÃO DE COMPUTADORES

Organização e comunicação em plataformas paralelas

Sistemas Operacionais Distribuídos

Prof a Andréa Schwertner Charão DELC/CT/UFSM

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

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

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

Universidade Federal do Maranhão

Arquitetura de Computadores Unidade Central de Processamento CPU

Disciplina de Arquitetura de Computadores

Introdução. Redes de Interconexão - Prof a Luiza Mourelle 1

Introdução aos Sistemas Operacionais

TIPOS DE SISTEMAS OPERACIONAIS. Ademar Alves Trindade

ARQUITETURA DE SISTEMAS OPERACIONAIS. VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI

Sistemas Distribuídos

William Stallings Arquitetura e Organização de Computadores 8 a Edição

ARQUITETURA DE COMPUTADORES

ESPECIFICAÇÕES DE UMA REDE DE AUTOMAÇÃO. Taxa de transmissão. Topologia física

Topologias de Arquiteturas de Comunicação

Sistema de Software Distribuído

Sistemas Multiprogramáveis/Multitarefa

Programação Concorrente

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Organização e Arquitetura de Computadores I

Prof. Gregorio Perez 2007

SSC0611 Arquitetura de Computadores

SSC0112 Organização de Computadores Digitais I

Organização e Arquitetura de Computadores I

Aula 3 Redes de Interconexão

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 9

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Transcrição:

Processamento Paralelo por Helcio Wagner da Silva

Introdução Tradicionalmente, o computador tem sido visto como uma máquina seqüencial Esta visão nunca foi completamente verdadeira No nível das µo, vários sinais de controle são gerados ao mesmo tempo A técnica de pipeline sobrepõe instruções, pelo menos durante as operações de busca e execução Em máquinas superescalares, várias instruções podem ser executadas paralelamente 2

Introdução Novas alternativas para o paralelismo Multiprocessadores simétricos (SMP) Clusters Maquinas com Acesso Não-uniforme a Memória (NUMA) Surgiram a partir de novas tecnologias e do barateamento do HW Objetivos 1. Melhoria do desempenho 2. Aumento da disponibilidade (tolerância a falhas) 3

Organizações de Múltiplos Processadores SISD (Única Instrução, Único Dado) Unidade de Controle (UC) fornece uma seqüência de instruções para a Unidade de Processamento (UP) UP opera sobre uma única Seqüência de Dados (SD) de uma única Unidade de Memória (UM) Exemplo: sistema uniprocessado SI SD UC UP UM 4

Organizações de Múltiplos Processadores SIMD (Única Instrução, Múltiplos Dados) UC alimenta várias UP Cada UP opera sobre uma única SD de uma UM Exemplo: Processadores vetoriais e matriciais SD 1 UP 1 UM 1 UC SI SD 2 UP 2 UM 2...... UP n SD n UM n 5

Organizações de Múltiplos Processadores MIMD (Múltiplas Instruções, Múltiplos Dados) Há múltiplas UC, cada qual alimentando sua própria UC com uma SI diferente UC 1 UC 2 UC n SI 1 UP 1 SD 1 SI 2 UP 2 SD 2... SI n SD n UP n Memória compartilhada 6

Organizações de Múltiplos Processadores MIMD (Múltiplas Instruções, Múltiplos Dados) Há múltiplas UC, cada qual alimentando sua própria UC com uma SI diferente UC 1 UC 2 UC n SI 1 SD 1 UP 1 UM 1 SI 2 SI n SD 2 UP 2 UM 2... UP n SD n... UM n Rede de Interconexão 7

Organizações de Múltiplos Processadores Classificação Única Instrução, Único Dado (SISD) Única Instrução, Múltiplos Dados (SIMD) Múltiplas Instruções, Único Dado (MISD) Múltiplas Instruções, Múltiplos Dados (MIMD) Uniprocessadores Processadores Vetorais Processadores Matriciais Memória Compartilhada (fortemente acoplados) Memória Distribuída (fracamente acoplados) Clusters Multiprocessadores Simétricos (SMP) Sistemas com Acesso Não-uniforme à Memória (NUMA) 8

Multiprocessadores Simétricos... Processador Processador Processador Rede de Interconexão... Memória Principal 9

Multiprocessadores Simétricos Vantagens potenciais sobre uma arquitetura uniprocessador 1. Desempenho 2. Disponibilidade 3. Crescimento incremental 4. Personalização do fornecimento 10

Multiprocessadores Simétricos Processo 1 Tempo Processo 2 Processo 3 (a) Tempo compartilhado (multiprogramação) Processo 1 Processo 2 Processo 3 (b) Tempo compartilhado e sobreposição (multiprocessamento) bloqueado Em execução 11

Multiprocessadores Simétricos Classificação da organização 1. Tempo compartilhado ou barramento comum 2. Memória com múltiplas portas 3. Unidade de controle central 12

Tempo Compartilhado ou Barramento Comum Processador Processador... Processador Cache L1 Cache L1 Cache L1 Cache L2 Cache L2 Cache L2 Memória Principal Subsistema de Adaptador de Adaptador de... Adaptador de 13

Tempo Compartilhado ou Barramento Comum Vantagens Simplicidade Flexibilidade Confiabilidade Desvantagem Desempenho relativamente ruim Toda referência à memória passa pelo barramento Alternativa de projeto: uso de memórias cache Problema: estabelecimento da coerência de cache 14

Memória com Múltiplas Portas... M 1 M 2 M k P 1 1...... P n m 15

Memória com Múltiplas Portas Vantagem Desempenho melhorado Cada processador tem agora seu caminho dedicado para cada módulo de memória Desvantagem Abordagem relativamente mais complexa Uma grande quantidade de circuitos lógicos deve ser adicionada ao sistema de memória Resolução de conflitos de acesso se dá de acordo com um esquema de prioridades 16

Unidade de Controle Central UC central comanda fluxos de dados e desempenha funções de arbitração e temporização Vantagem Simplicidade Toda a lógica de coordenação está na UC central Desvantagem Pouca tolerância a falhas e desempenho potencialmente ruim UC central pode vir a se tornar o gargalo do sistema Raramente utilizada atualmente 17

Políticas de Escrita na Cache Escrita Direta (write through) Toda operação de escrita é feita tanto na cache quanto na memória principal Coerência da cache fácil de se estabelecer Tráfego potencialmente desnecessário Escrita de Volta (write back) Memória principal somente e atualizada quando a linha da cache é removida Tráfego relativamente menor Coerência de cache difícil de ser mantida Soluções para a coerência de cache Baseadas em SW Baseadas em HW 18

Soluções Baseadas em SW Procuram evitar a necessidade de circuitos e lógica adicional no HW Confiam no compilador e no SO para tratar o problema da coerência de cache Problema é transferido do tempo de execução para o tempo de compilação Mecanismos usa marcação de variáveis compartilhadas, para evitar que elas não sejam armazenados na cache nunca ou em determinados períodos Decisões tendem a ser conservativas 19

Soluções Baseadas em HW Denominadas protocolos de coerência de cache Possibilitam reconhecimento, em tempo de execução, de potenciais condições para a incoerência de cache Transparentes para o programador e para o compilador Categorias: Protocolos de diretório Protocolos de monitoração 20

Protocolos de Diretório Baseados no conceito de um Controlador Geral (CG), que é parte do controlador da MP O CG mantém, na MP, um diretório que contém informações globais sobre o conteúdo de várias caches locais Desvantagens Desempenho relativamente baixo Baixa tolerância a falhas 21

Protocolos de Diretório cache P 1 666 2. Invalidar cópia local diretório 666 P1,P2,P3 CG 3. ok! 1. Requisita acesso exclusivo a linha 666 4. Acesso exclusivo (deseja alterar linha 666) P 2 666 cache 2. Invalidar cópia local 5. Linha 666 é alterada 3. ok! cache P 3 666 22

Protocolos de Diretório cache diretório 666 P1,P2,P3 CG 1. Falha ao ler linha 666 2. Escrever de volta a linha 666 P 1 666 4. Linha 666 atualizada é transferida (deseja alterar linha 666) P 2 666 cache 3. Linha 666 (atualizada) escrita de volta na MP 5. Linha 666 é alteradac cache P 3 666 23

Protocolos de Monitoração Distribuem a responsabilidade de manter a coerência de cache entre todos os controladores de cache Quando uma linha de cache compartilhada é alterada, isso é anunciado a todos os demais controladores de cache Adequada à topologia em barramento Há de se ter cuidado para que o tráfego no barramento não anule o efeito de se utilizar memória cache Duas abordagens básicas Escrita com invalidação Escrita com atualização 24

Escrita com Invalidação P 1 1. Invalidar linha 666 666 3. Alterar linha 1. Invalidar linha 666 1. Invalidar linha 666... P 2 P 3 P n 666 2. Linha invalidada 666 2. Linha invalidada 666 2. Linha invalidada 25

Escrita com Atualização P 1 2. distribuir linha 666 atualizada 2. distribuir linha 666 atualizada 666 1. Alterar linha 2. distribuir linha 666 atualizada... P 2 P 3 P n 666 3. Atualizar linha 666 666 3. Atualizar linha 666 666 3. Atualizar linha 666 26

Clusters Grupo de computadores completos interconectados, que: Trabalham em conjunto Criam a ilusão de constituir uma única máquina Benefícios (ou requisitos de projeto): Escalabilidade absoluta Escalabilidade incremental Alta disponibilidade Melhor relação custo/desempenho 27

Classificação (Simples) dos Clusters P P M Ligação de alta velocidade para troca de mensagens M (a) Servidores independentes, sem compartilhamento de discos P Ligação de alta velocidade para troca de mensagens RAID P M M (b) Discos compartilhados 28

Classificação Mais Elaborada Servidor secundário passivo Somente entra em operação em caso de falha Servidor secundário ativo Servidores separados Discos independentes: os dados de um são continuamente copiados para o outro para prover tolerância a falhas Servidores conectados a discos São ligados aos mesmos discos, mas cada servidor acessa seus respectivos volumes Servidores compartilhando discos Todos os servidores acessam simultaneamente os mesmos volumes 29

Questões de Projeto de SO Gerência de falhas Recuperação de falhas (failover) Troca de aplicação e transferência de recursos de um sistema falho para outro em operação no cluster Retorno de falhas (failback) Restabelecimento de aplicações e retorno de recursos para o sistema outrora falho, após restabelecimento Balanceamento de carga Importante durante o crescimento incremental do cluster 30

Máquinas NUMA Motivação Há um limite entre 16 e 64 para o número de processadores embarcados em uma máquina SMP Power Challenge (Silicon Graphics): 64 µp R10000 Clusters não enxergam uma grande MP global Objetivos Permitir um número grande de processadores Origin (Silicon Graphics): 1024 µp R10000 NUMA-Q (Sequent): 252 µp Pentium II Manter, de forma transparente, uma visão de uma grande e única MP 31

P 1-1 P 1-m P 2-1 P 2-m Cache L1 Cache L1 Cache L1 Cache L1 Cache L2 Cache L2 diretório Cache L2 Cache L2 diretório Memória Principal 1 Memória Principal 2 P N-1 Cache L1 P N-m Cache L1 Rede de interconexão Cache L2 Cache L2 Memória Principal N diretório 32

P 1-1 P 1-m P 2-1 P 2-m Cache L1 Cache L1 comporta -se como um µp 1 Cache L1 5 Cache L1 Posição localizada no nó 1 Cache L2 Cache L2 diretório Cache L2 Cache L2 diretório 3 4 4 2 3 2 4 2 1 2 4 5 Memória Principal 1 2 2 4 4 Memória Principal 2 P N-1 P N-m Rede de interconexão Cache L1 Cache L1 Cache L2 Cache L2 Exemplo: P2-1 requisita acesso à posição de memória 798, que está localizada no nó 1 Memória Principal N diretório 33

Redes de Interconexão 34

Sumário de Termos Acesso Uniforme à Memória (UMA) Tempo de acesso é o mesmo para todas as regiões da memória Todos processadores experimentam o mesmo tempo de acesso Acesso Não-uniforme à Memória (NUMA) Tempo de acesso depende da região da memória Processadores experimentam tempos de acesso diferentes NUMA com Coerência de Cache (CC-NUMA) Máquina NUMA onde se mantém coerência de cache 35