• Nenhum resultado encontrado

5000(8SEMESTRE)04-MEMORIASCOMPARTILHADASEDISTRIBUIDAS

N/A
N/A
Protected

Academic year: 2021

Share "5000(8SEMESTRE)04-MEMORIASCOMPARTILHADASEDISTRIBUIDAS"

Copied!
33
0
0

Texto

(1)

CLASSIFICAÇÃO

Acesso às memórias

(2)

(3)

Arquitetura Genérica - Multiprocessador

A configuração deste tipo de arquitetura é variável. O número de processadores, por exemplo, pode oscilar da casa das dezenas a alguns milhares. Em alguns casos, o crescimento ocorre em potências de 2 (16, 32, 64, 128, etc.)

(4)

Arquitetura Genérica - Multiprocessador

• MIMD - Multiple instruction stream - Multiple Data Stream

• Multiplos fluxos de instruções atuando sobre múltiplos fluxos de dados; • Cada processador executa seu próprio programa sobre seus próprios

dados, de forma assícrona;

• EX.: Dual e quad, redes de estações, nCUBE, Intel paragon e Cray T3D;

fluxo de instruções fluxo de dados

Cada unidade de controle (C) recebe um fluxo de instruções (--->) próprio e repassa para a unidade processadora (P), para que seja executado sobre um fluxo de dados (--->) próprio.

C

P

M

P

P

... ...

M

M

C

C

...

(5)

Aspectos Positivos

• Tecnologia de compilação:

Cada nó da arquitetura é uma unidade de processamento autônoma.

É possível aproveitar toda esta tecnologia de compilação disponível para programação seqüencial, agregando à mesma os recursos de uma biblioteca para troca de mensagens entre os nós processadores. São propostas usuais que, utilizando desta premissa, exploram conhecidas linguagens seqüenciais como C ou FORTRAN para programação paralela.

(6)

Aspectos Positivos

• Possibilidade de emular outras arquiteturas:

Resguardadas as restrições inerentes ao desempenho, é possível à arquitetura de memória distribuída, emular outros paradigmas de controle e de organização de memória. Uma

possibilidade usual é o emprego de DSM

(Distributed Shared Memory), através da qual o software aplicativo tem a visão de uma memória comum a todos os nós processadores.

(7)

Aspectos Positivos

• Compartilhamento de uso:

Este tipo de arquitetura permite, de forma bastante flexível, o particionamento e a alocação de subgrupos de processadores à tarefas/usuários.

(8)

Aspectos Negativos

• Custo das comunicações: em função das características da rede de interconexão utilizada, alguns algoritmos podem ter seu desempenho diminuído.

• Custo de sincronização: apesar de poderem trabalhar freqüentemente de forma assíncrona, determinados momentos da execução paralela podem exigir um estado conhecido comum, para um grupo de processadores. Para minimizar o possível tempo de espera nos momentos de sincronização, o desenvolvimento de software deve contemplar uma distribuição de carga o mais equânime possível.

(9)

Aspectos Negativos

Uso ineficiente da memória:

Três aspectos concorrem para a sobre-ocupação da memória em arquiteturas de memória distribuída.

1. O primeiro decorre da necessidade de armazenamento temporário das mensagens recebidas até que o processo responsável pela computação possa fazer o devido tratamento. Dependendo do tamanho e da freqüência destas mensagens, um considerável volume de memória terá de ser destinado para isto.

2. O segundo é conseqüência da necessidade de cópia local do código executável.

3. O terceiro decorre, em função da busca de desempenho, de se fazer a cópia local também das estruturas de dados globais que o algoritmo possa necessitar.

(10)

(11)

Memória Compartilhada

• Todos os nós têm acesso uniforme a uma única memória comum • São também denominados de multiprocessadores simétricos

• Cada processador da arquitetura pode ser visto como uma máquina seqüencial tradicional; a existência de outros processadores, bem como da memória comum, pode ser abstraída. Uma conseqüência desta característica é a possibilidade de utilizar o software seqüencial já existente, praticamente sem nenhuma modificação. Deste modo, o paralelismo além de ser utilizado para melhorar o desempenho de um determinado programa, também pode ser empregado para executar simultaneamente diversos programas seqüenciais do usuário.

(12)

Memória Compartilhada

• Como a memória é um recurso compartilhado, para que a mesma não se transforme em um ponto de estrangulamento da operação da arquitetura, o número de processadores varia, tipicamente, entre 4 e 20.

(13)

Memória Compartilhada

• Uma estratégia para aumentar o desempenho do sistema de memória compartilhada é o uso de uma memória cache entre o processador e a memória comum. A busca de um sistema eficiente para manutenção da coerência de memória neste tipo de arquitetura é um tema complexo e originou diversos trabalhos de pesquisa.

(14)

Aspectos Positivos

Abstração da localidade do processador: neste tipo de arquitetura o

programador pode abstrair a localidade do processador. Deste modo, a troca de mensagens é sincronizada por um mecanismo de escrita em variáveis comuns. Como a memória é fisicamente compartilhada, isto pode ser feito com elevado desempenho.

Semelhante às arquiteturas convencionais: os multiprocessadores de memória compartilhada usualmente oferecem um ambiente de programação e um sistema operacional bastante semelhante aos das máquinas seqüenciais, o que facilita a adoção da arquitetura enquanto o software está sendo adequado para uma execução efetivamente paralela.

(15)

Aspectos Positivos

Facilidade de uso múltiplo: os processadores podem ser

alocados individualmente ou em grupos, para diferentes programas/usuários.

Maior compartilhamento dos recursos: a memória comum

facilita o compartilhamento de estruturas de dados globais. Por sua vez, os recursos de entrada/saída e de memória virtual podem ser aproveitados por todos os nós processadores.

(16)

Aspectos Negativos

Pouca escalabilidade, a política de acesso uniforme à memória faz com que

este tipo de arquitetura, tenha como limite um número de processadores em torno de 20. O constante aumento do poder computacional dos processadores, e a conseqüente necessidade destes de maior banda-passante com a memória, contribui para potencializar este aspecto. Esta arquitetura também está sujeita ao custo de sincronização, que afeta as arquiteturas de memória distribuída.

Entretanto, como o número típico de processadores não é grande, e as comunicações tem um desempenho elevado, a sincronização como um todo pode ser melhor administrada.

(17)

MULTICOMPUTADORES

MULTIPROCESSADORES

(18)

MULTICOMPUTADORES

A arquitetura de multicomputadores é conhecida como fracamente acoplada, uma vez que os processadores têm suas próprias memórias locais. Essa arquitetura é caracterizada por ter até milhares de processadores.

Não há um compartilhamento forte, sendo as comunicações entre os processos feitas por troca de mensagens entre os processos que estão sendo executados nos processadores.

(19)

MULTIPROCESSADORES

A arquitetura de multiprocessadores é conhecida como fortemente acoplada, uma vez que os processadores e a memória estão interligados através de um sistema local de interconexão.

Essa arquitetura é caracterizada pelo compartilhamento global de memória pelos diversos processadores do ambiente e é esse compartilhamento global de memória que se torna o gargalo da escalabilidade do ambiente. A escalabilidade em uma configuração multiprocessada varia até algumas centenas de processadores.

(20)

MULTIPROCESSADORES SMP

Estes ambientes são conhecidos como arquiteturas de compartilhamento total, são caracterizadas por até dezenas de processadores compartilhando os mesmos recursos computacionais e rodando um único sistema operacional.

Os processadores são considerados simétricos porque têm os mesmos custos para acesso à memória principal.

(21)

MULTIPROCESSADORES SMP

Um problema desta arquitetura é sua escalabilidade, pois com o aumento do número de processadores a taxa de colisão de acesso à memória também cresce, sendo necessário a utilização de soluções de memórias de cache e globais

(22)

TAXONOMIA - MEMÓRIAS

• Quanto a Comunicação:

• Memória Compartilhada (Shared Memory)

– Único espaço de endereçamento usado de forma implícita para comunicação entre os processadores (Load/Store)

• Múltiplos espaço de endereçamento privados

– Memória não é compartilhada e processadores se comunicam explicitamente através de troca de mensagens (Send/Receive)

• Quanto à localização física da memória

• Memória distribuída (distributed Memory)

– Memória implementada em vários módulos, próximos a um determinado processador.

• Memória Centralizada (centralized memory)

– Memória está a mesma distância de todos os processadores, com um ou vários módulos.

(23)

MULTIPROCESSADOR

Classificação Memórias

Classificação dos multiprocessadores quanto ao tipo de acesso à memória;

• acesso uniforme à memória (uniform memory access -

UMA)

• acesso não uniforme à memória (non-uniform memory

(24)

MULTIPROCESSADOR

Classificação Memórias

• Acesso uniforme à memória (UMA)

• Memória centralizada - mesma distância de todos os processadores;

• Latência de acesso a memória, igual para todos os processadores; • Conexão - barramento ou switch (garantido o tempo de acesso a

memória uniforme para se enquadrar nessa categoria)

P P P P

P P P P

Rede de Interconexão

(25)

MULTIPROCESSADOR

Classificação Memórias

CPU cache CPU cache CPU cache Memória

• Problema - diferença de velocidade entre processador e memória principal e congestionamento do barramento;

• Solução: uso de memória cache;

• Problema: Várias cópias da mesma posição podem existir em caches diferentes (coerência de cache)

(26)

MULTIPROCESSADOR

Classificação Memórias

• Acesso não uniforme à memória - NUMA

• Memória distribuída, com múltiplos módulos, um para cada processador;

• Cada processador pode endereçar toda a memória do sistema, ou seja, espaço de endereçamento único;

• Tempo de acesso ao módulo local de memória (ligada ao processador) é menor do que o acesso a um módulo ligado a outro processador (módulo de memória remoto); Por isso, possuem acesso não uniforme a memória;

P P P P

P P P P

Rede de Interconexão

(27)

MULTIPROCESSADOR

Classificação Memórias

• Subdividido conforme o tratamento do problema de coerência de

cache e desse tratamento ser feito em hw ou sw;

• NUMA sem coerência de cache (NCC - NUMA) – não há coerência de cache garantida em hw; • NUMA com coerência de cache (CC - NUMA)

– coerência de cache garantida em hw

• NUMA com coerência de cache garantido em sw (SC - NUMA)

– coerência de cache garantida em sw, transparente ao usuário; • Arquitetura de memória somente com cache (cache-only memory

(28)

MULTIPROCESSADOR

Classificação Memórias

• NUMA com coerência de cache garantido em sw (SC - NUMA)

FORMAS DE TRATAMENTO

• Modificação do mecanismo de gerenciamento de memória do Sistema Operacional para suportar coerência de cache - Não são necessárias alterações nas aplicações;

• Uso de compiladores e bibliotecas para converter o código desenvolvido para um espaço de endereçamento único em um código que roda em múltiplos espaços de endereçamento; Código original deve ser modificado para incluir compartilhamento de dados, sincronização e primitivas de coerência. Não é necessário alterar o SO.

(29)

MULTIPROCESSADOR

Classificação Memórias

• Arquitetura de memória somente com cache (COMA)

• Todas as memórias são estruturadas como caches especiais chamadas de COMA caches;

– Maior capacidade do que uma cache tradicional;

• Suporte de hw para replicação do mesmo bloco de cache em múltiplos nós; • HW deve integrar gerência das caches e gerência de memória.

• Arquiteturas complexas tornam essas máquinas mais caras de implementar do que as NUMA;

P P P P

P P P P

Rede de Interconexão

(30)

MULTICOMPUTADORES

Classificação Memórias

• Multicomputadores (message passing systems)

• Cada processador possui uma memória local. Só ele tem acesso • Não é possível o uso de variáveis compartilhadas;

• Troca de informações entre processadores é feita através do envio de mensagem pela rede;

• Replicação de arquiteturas convencionais (não apenas do processador, como nos multiprocessadores) daí o nome múltiplos computadores;

P P P P

P P P P

Rede de Interconexão

(31)

MULTICOMPUTADORES

Classificação Memórias

Classificação de multicomputadores, em relação ao tipo de acesso às memórias do sistema:

• Sem acesso a variáveis remotas (non-remote memory

access, NORMA)

– como uma arquitetura tradicional foi replicada, os registradores de endereçamento de cada nó só conseguem endereçar a sua memória local;

(32)

CLASSIFICAÇÃO GERAL

MIMD UMA (memória central) NUMA (memória distribuída) NORMA NCC-NUMA CC-NUMA COMA SCC-NUMA Multiprocessadores (espaço de endereçamento único) Multicomputadores (múltiplos espaços de endereçamento)

Classes NCC-NUMA e NORMA pode ser transformadas em SC-NUMA através da inclusão de uma camada de sw que implemente coerência de cache;

(33)

MEMORIA CACHE

Memória cache - memória especial, mais rápida que a

memória principal. Funciona como área intermediária de armazenamento;

Hierarquia de memória

Processor registers – acesso super rápido, limitado a centenas de bytes

Level 1 (L1) cache – acesso rápido, dezenas de kilobytes

Level 2 (L2) cache –2× to 10× mais lenta que L1, 512KB ou mais Level 3 (L3) cache – (opcional) mais lenta que L2, alguns MB's

RAM – centenas de ciclos, gigabytes

Referências

Documentos relacionados

5.2 Importante, então, salientar que a Egrégia Comissão Disciplinar, por maioria, considerou pela aplicação de penalidade disciplinar em desfavor do supramencionado Chefe

As dimensões de TI estudadas nessa pesquisa buscou identificar e relação entre Tecnologia da Informação e a entrega da Proposta de Valor Social pela Empresa estudada. A

A Lei nº 2/2007 de 15 de janeiro, na alínea c) do Artigo 10º e Artigo 15º consagram que constitui receita do Município o produto da cobrança das taxas

Detectadas as baixas condições socioeconômicas e sanitárias do Município de Cuité, bem como a carência de informação por parte da população de como prevenir

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

Coeficiente de partição n-octanol/água Não determinado por ser considerado não relevante para a caracterização do produto Temperatura de auto-ignição Não determinado por

Os autores relatam a primeira ocorrência de Lymnaea columella (Say, 1817) no Estado de Goiás, ressaltando a importância da espécie como hospedeiro intermediário de vários parasitos

Apesar da longa distância dos grandes centros urbanos do país, Bonito destaca- se, regionalmente, como uma área promissora dentro do Estado de Mato Grosso do Sul. Bonito,