Você está na página 1de 32

Computação de Alto

Desempenho

Classificação de Computadores
Prof. Ricardo Augusto Pereira Franco

Baseado no material do prof. Wellington Santos Martins


Sumário
● Revisão

● Organizações paralelas

● Multiprocessadores Simétricos

● Clusters

● Acesso Não Uniforme à Memória


2
Revisão
● Evolução da Arquitetura Sequencial

3
Revisão
● Relógio do Computador (clock)
○ Geralmente, os sinais de clock são gerados por um cristal de quartzo, que gera
uma onda de sinal constante enquanto uma tensão é aplicada
■ Essa onda é convertida em um stream de pulsos de voltagem digital
■ Ex.: um processador de 1 GHz recebe 1 bilhão de pulsos por segundo
■ A taxa de pulsos é conhecida como frequência do clock ou velocidade de clock
■ Um incremento (ou pulso) do clock é conhecido como um ciclo de clock ou um período
do clock

4
Revisão

5
Revisão
● Evolução da GPU moderna
○ Replicou-se a unidade, gerando as GPUs modernas
○ Mais unidades, têm-se mais paralelismo
○ Memória interna comum a todas as unidades

6
Revisão
● Comparação entre CPU e GPU

Multicore Manycore

7
Organizações paralelas
● Classificação de Flynn
○ Proposta por J. L. Flynn em 1972
○ Ainda é válida e muito difundida
○ Diferencia o fluxo de instruções (instruction stream) e o fluxo de dados (data stream)

8
Organizações paralelas
● Na classe SISD (Single Instruction, Single Data), um único fluxo de
instruções atua sobre um único fluxo de dados

9
Organizações paralelas
● Na classe MISD (Multiple Instruction, Single Data), múltiplos fluxos de
instruções atuam sobre um único fluxo de dados
○ Não é utilizado comercialmente

10
Organizações paralelas
● Na classe SIMD (Single Instruction, Multiple Data), uma única
instrução é executada ao mesmo tempo sobre múltiplos dados

11
Organizações paralelas
● Em uma máquina MIMD (Multiple Instruction, Multiple Data), cada
unidade de controle C recebe um fluxo de instruções próprio e
repassa-o para sua unidade processadora P

Memória compartilhada Memória


distribuída

12
Organizações paralelas
● Memória compartilhada: existe um único espaço de endereçamento
que será usado de forma implícita para comunicação entre
processadores
● Memória não compartilhada: existem múltiplos espaços de
endereçamento privados, um para cada processador

● Memória distribuída: refere-se a localização física da memória, se a


memória for implementada em vários módulos, e cada módulo é
colocado próximo a um processador
● Memória centralizada: a memória encontra-se a mesma distância de
todos os processadores, independente de ter sido implementada em
um ou vários módulos
13
Organizações paralelas
● Uma taxonomia de arquiteturas de processadores paralelos:

14
Multiprocessadores simétricos
● Um SMP pode ser definido como um sistema de computação independente
com as seguintes características:
a. Há dois ou mais processadores semelhantes de capacidade comparável
b. Esses processadores compartilham a mesma memória principal e os recursos de
E/S, e são interconectados por um barramento (conexão interna), de forma que o
tempo de acesso à memória é aproximadamente igual para cada processador
c. Todos os processadores compartilham acesso aos dispositivos de E/S
d. Todos os processadores desempenham as mesmas funções (simétrico)
e. O sistema é controlado por um sistema operacional integrado que fornece interação
entre os processadores e seus programas

15
Multiprocessadores simétricos
● Uma organização SMP possui um número de vantagens potenciais em relação
a uma organização de uniprocessador, incluindo o seguinte:
○ Desempenho - execução do trabalho em paralelo
○ Disponibilidade - a falha de um processador não ‘trava’ a máquina
○ Crescimento incremental - pode-se acrescentar processadores adicionais
○ Escalabilidade - são oferecidos produtos com diferentes configurações e preços

16
Multiprocessadores simétricos
● A memória usada nessas máquinas é centralizada e encontra-se a
mesma distância de todos os processadores
○ Acesso uniforme à memória - UMA

● Memória cache para amenizar a diferença de velocidade entre


processador e memória

17
Multiprocessadores simétricos
● Organização de um multiprocessador simétrico:

18
Multiprocessadores simétricos
● Considerações sobre projeto de SMP
○ Escalonamento: qualquer processador pode efetuar escalonamento, portanto os
conflitos devem ser evitados
○ Sincronização: com múltiplos processos ativos tendo acesso potencial a espaços da
memória compartilhada ou a recursos de E/S compartilhados, cuidados devem ser
tomados para fornecer uma sincronização eficiente
○ Gerenciamento de memória: o gerenciamento de memória em um multiprocessador
precisa lidar com todas as questões encontradas em máquinas de um único
processador
○ Confiabilidade e tolerância a falhas: o sistema operacional deve proporcionar uma
degradação sutil perante uma falha do processador

19
Multiprocessadores simétricos
● Problema: várias cópias do mesmo dado podem existir em caches
diferentes simultaneamente e pode resultar em uma imagem
inconsistente da memória - coerência de cache

20
Multiprocessadores simétricos
● Problema: várias cópias do mesmo dado podem existir em caches
diferentes simultaneamente e pode resultar em uma imagem
inconsistente da memória - coerência de cache
● Abordagens de software - tempo de compilação
○ Decisões conservadores, utilização ineficiente da cache
○ Abordagem mais simples: evitar que quaisquer variáveis de dados compartilhadas
sejam colocadas na cache
● Abordagens por hardware - tempo de execução
○ Protocolos de diretório - há um controlador central que controla a leitura e escrita dos
dados na cache
○ Protocolos de monitoração - distribuem a responsabilidade de manter a coerência de
cache entre todos os controladores de cache em um multiprocessador

21
Multiprocessadores simétricos
● Problema: várias cópias do mesmo dado podem existir em caches
diferentes simultaneamente e pode resultar em uma imagem
inconsistente da memória - coerência de cache
● Protocolo MESI (Modified/Exclusive/Shared/Invalid)
○ Pode haver vários leitores, mas apenas um escritor ao mesmo tempo
○ Cada linha pode ser compartilhada entre várias caches (para leitura)
○ Quando uma cache deseja escrever na linha, ela emite um aviso que invalida essa
linha em outras caches (linha exclusiva para a cache que está escrevendo)
○ Após a linha ser atualizada na memória, ela pode ser usada pelas outras caches
○ A cache de dados inclui dois bits de estado para cada linha:
■ Modificada
■ Exclusiva
■ Compartilhada
■ Inválida 22
Multiprocessadores simétricos
● Estado das linhas da cache MESI:

23
Clusters
● Podemos definir um cluster como um grupo de computadores
completos interconectados trabalhando juntos, como um recurso
computacional unificado que pode criar a ilusão de ser uma única
máquina
● Quatro benefícios que podem ser conseguidos com o agrupamento de
computadores:
○ Escalabilidade absoluta - é possível criar clusters que ultrapassam o poder das
máquinas que trabalham sozinhas
○ Escalabilidade incremental - é possível adicionar novos sistemas ao cluster em
pequenos incrementos
○ Alta disponibilidade - cada nó é independente e uma falha não significa a perda do
serviço
○ Preço/desempenho superior - é possível montar um cluster com poder computacional
igual ou maior do que uma única máquina de grande porte

24
Clusters
● Ex.: servidor secundário sem disco compartilhado:

25
Clusters
● Arquitetura de um cluster
computacional
○ Os computadores individuais são
conectados por alguma LAN de alta
velocidade
○ Cada computador é capaz de operar
independentemente
○ Uma camada intermediária é instalada
em cada computador para possibilitar a
operação do cluster
○ O middleware do cluster fornece uma
imagem unificada do sistema para o
usuário
○ O middleware também é responsável
por fornecer a alta disponibilidade
(balanceamento de carga) e resposta a
falhas em componentes individuais

26
SMP e Clusters
● Tanto clusters quanto SMP fornecem uma configuração com múltiplos
processadores
○ As duas soluções estão disponíveis comercialmente
● Um SMP é mais fácil de gerenciar e configurar do que um cluster
○ Modelo mais próximo ao modelo com processador único
○ Mudança em função do escalonamento de processos
○ Ocupa menos espaço físico e consome menos energia do que o cluster
● Cluster tem vantagens no mercado de servidores de alto desempenho
○ Clusters são superiores em escalabilidade incremental e absoluta
○ São superiores em termos de disponibilidade (alta redundância)

27
Acesso Não Uniforme à Memória
● Acesso não uniforme à memória (NUMA): todos os processadores têm acesso
a todas as partes da memória principal usando leituras e escritas
○ O tempo de acesso à memória de um processador difere dependendo de qual região
da memória está sendo acessada
○ A memória utilizada é distribuída, implementada com vários módulos que são
associados um a cada processador
○ O espaço de endereçamento é único, e cada processador pode acessar toda a
memória do sistema
○ Ex.: cluster

28
Acesso Não Uniforme à Memória
● O sistema SMP há um limite prático do número de processadores que podem
ser usados
○ O uso do barramento para a coerência de cache gera gargalo no desempenho do
sistema
○ Há uma degradação do sistema ao aumentar o número de processadores
● O limite de processadores em um SMP é um dos principais motivos para o
desenvolvimento de sistemas cluster
○ No entanto, em um cluster, cada nó possui sua memória principal privada (as
aplicações não enxergam uma memória global maior)
○ A coerência é mantida a nível de software
● O objetivo da abordagem NUMA é manter uma memória endereçável através
do sistema, permitindo ao mesmo tempo vários nós multiprocessadores
○ Um sistema NUMA com coerência de cache é chamado de CC-NUMA
○ Comunicação por meio de mensagens 29
Acesso Não Uniforme à Memória
● Organização CC-NUMA

● Vantagem:
○ CC-NUMA pode permitir
desempenho eficiente em níveis mais
altos de paralelismo do que SMP
● Desvantagem:
○ Se muitos dos acessos forem para
nós remotos, o desempenho começa
a degradar
30
Dúvidas?

31
Obrigado pela atenção

e-mail: ricardofranco@ufg.br 32

Você também pode gostar