Memória Compartilhada Distribuída (DSM) Prof. Dr. Norian Marranghello Grupo 12 César Eduardo Atílio Lionis de Souza Watanabe Visão Geral • Introdução • Algoritmos • Localização de Dados • Implementação de Sistemas DSM • Sistemas DSM a Objeto • Níveis de Implementação de Mecanismos de DSM • Granulosidade da Unidade de Coerência • Configurações de Arquiteturas Introdução Abstração do conceito de DSM Host 1 Host 2 Host N Memória Compartilhada Algoritmos Quatro algoritmos de memória distribuída Replicação Migração Não-Migração • Migração - exploração local no acesso a dados - diminui o acesso remoto • Replicação - acesso de leitura múltiplo Não-Replicação Algoritmo Central Server • • • Acessos remotos Leitura de dados: retorno dos dados Atualização de dados: retorno de ACK´s Problema •Servidor = gargalo = ponto fraco Como resolver? • Utilizar vários servidores • Localizar servidor apropriado para o acesso • Partição de dados, função de mapeamento Algoritmo Migration • • • • • Acesso subsequente a dados realizado localmente Protocolo de escrita/leitura único Migração de toda a página ou bloco, thrashing Parâmetro de ajuste para duração da possessão de dados Busca de dados - Servidor central - Pedido em broadcast Problema •Efeito pingue-pongue Algoritmo Full Replication • • • Múltiplos leitores/múltiplos escritores Manter consistência de dados replicados Operações de escrita seqüenciais - Sequenciador de escrita local - Falhas = retransmissão - Protocolo de NACK Algoritmo Read Replication • • • • • Replicação reduz custos médios Múltiplos leitores/Único escritor Um host lê/escreve cópias, outros hosts apenas lêem cópias Write invalidate -> invalida cópias Bastante utilizado em DSM Localização de dados • • • Estrutura de diretório distribuída Localizar proprietário do bloco Localizar e invalidar/atualizar cópias do bloco Retransmissão do pedido de escrita 2) Controlador de diretório (CD) retransmite pedido para proprietário 4) Nova entrada do bloco no diretório Solicitação de escrita 1) Solicita escrita para “home cluster” Atualização de propriedade dirty remote | cópia em B 5) CD envia reconhecimento para novo proprietário Home Cluster Dados 6) Completa escrita Solicitante Reconhecimento 3) CD envia dados para solicitante e atualização de propriedade para “home cluster” Proprietário Implementação de Sistemas DSM Nível de: • Hardware dedicado • Paginação de memória virtual • Middleware (camada para serviços de rede) Implementação de Sistemas DSM Estrutura: • Orientação a byte: memória desestruturada • Orientação a objeto: nível semântico mais alto • Dados imutáveis: não há atualização Sistemas DSM a Objetos Por quê? • • • • • Encapsulamento Modularidade Tratamento de concorrência: melhor implementação de consistência Nível semântico maior Melhor implementação de sincronização e acesso Níveis de Implementação do Mecanismo de DSM • Importante decisão na construção de sistemas DSM • Objetivo: Facilidade de programação e escalabilidade • Espaço de endereçamento compartilhado através das memórias locais • Pesquisas e ações podem ser realizadas em: • software (redes de computadores pessoais) • hardware (máquinas de alto desempenho) Implementação por Software • Pode ser alcançada: • a nível de usuário • rotinas de biblioteca em tempo de execução • sistema operacional • linguagem de programação • Maior flexibilidade • Condiciona mecanismos de consistência ao comportamento da aplicação Sistema Munin • Baseado em variáveis • integra a MMU (Memory Manage Unit) • consistência release • Tipos de variáveis: • Ordinárias • Partilhadas • Read-Only • Migratory • Write-Shared • Convencional • Sincronização Implementação por Hardware • Garantem: • replicação automática dos dados compartilhados nas memórias locais e chaches de processador • Coerência de caches • Pesquisas rápidas • Menor latência de memória DSM por hardware são utilizados principalmente em máquinas onde desempenho é mais importante do que custo RMS - Reflective Memory Systems • Pequeno número de minicomputadores • espaço de endereçamento fora dos segmentos da memória local • dados refletidos • unidade de replicação (8 Kbytes) • segmentos tratados como janelas • abertas • fechadas • um segmento replicado pode apontar para diferentes endereços em cada cluster Granulosidade Granulosidade da unidade de coerência determina o tamanho do bloco de dados gerenciado pelos protocolos de coerência • em sistemas de hardware •Reduz exigências de comunicação • em sistemas de software • Organiza os dados em grandes blocos • Falso Compartilhamento DESPERDÍCIO Configurações de Arquiteturas • Classificação de Flynn • SISD (single instruction stream over a single data stream) • SIMD (single instruction stream over multiple data streams) • MIMD (multiple instruction streams over multiple data streams) • MISD (multiple instruction streams and a single data stream) Computadores Paralelos • Computadores Paralelos (MIMD) I/O UC1 FI P1 FI FD MC I/O UCn FI Pn FD FI • multiprocessadores de memória compartilhada • multicomputadores de passagem de mensagem Computadores Vetoriais •Computadores Vetoriais (SIMD) P1 FD ML1 FD FI UC Conjunto de dados do host FI Pn FD MLn FD • arquitetura memória-a-memória • arquitetura registrador-para-registrador