Processamento paralelo - PowerPoint PPT Presentation

About This Presentation
Title:

Processamento paralelo

Description:

Material preparado por Julio Cesar Torelli para apresenta o na disciplina 'Arquitetura de Computadores', no segundo semestre de 2004, no ICMC-USP. – PowerPoint PPT presentation

Number of Views:571
Avg rating:3.0/5.0
Slides: 80
Provided by: JulioCesa9
Category:

less

Transcript and Presenter's Notes

Title: Processamento paralelo


1
Processamento paralelo
Universidade de São Paulo - USP Instituto de
Ciências Matemáticas e de Computação ICMC SCE
188 - Arquitetura de Computadores
Docente Prof. Dr. Odemir Martinez Bruno
PAE Julio Cesar Torelli
2
Conteúdo
  • Processamento paralelo
  • Computadores paralelos taxonomia de Flynn
  • Computadores paralelos
  • Multiprocessadores simétricos (SMPs)
  • Acesso Não-Uniforme à Memória (NUMA)
  • Agregados de computadores (Clusters)

3
Conteúdo
  • Processamento paralelo
  • Computadores paralelos taxonomia de Flynn
  • Computadores paralelos
  • Multiprocessadores simétricos (SMPs)
  • Acesso Não-Uniforme à Memória (NUMA)
  • Agregados de computadores (Clusters)

4
Processamento paralelo
DefiniçãoÉ usar múltiplos (dois ou mais)
processadores, simultâneamente, para resolver um
mesmo problema. ObjetivoAumento de desempenho
(i.e. redução do tempo necessário para resolver
um problema) Motivação(i) Problemas cada vez
mais complexos e/ou maiores (ii) Clock dos
processadores se aproximando dos limites ditados
pela física
5
Conteúdo
  • Processamento paralelo
  • Computadores paralelos taxonomia de Flynn
  • Computadores paralelos
  • Multiprocessadores simétricos (SMPs)
  • Acesso Não-Uniforme à Memória (NUMA)
  • Agregados de computadores (Clusters)

6
Classificação dos computadores paralelos
A classificação de Flynn (1972) é a mais
utilizada. Ele se baseia nas possíveis unicidade
e multiplicidade dos fluxos de instruções e de
dados para definir quatro tipos de arquiteturas
  • SISD (Single Instruction Stream, Single Data
    Stream) computadores sequenciais
  • SIMD (Single Instruction Stream, Multiple Data
    Streams) computadores vetoriais e matriciais
  • MISD (Multiple Instruction Streams, Single Data
    Stream) não existem (HENNESSY et al., 2003
    STALLINGS, 2002)
  • MIMD (Multiple Instruction Streams, Multiple
    Data Streams) arquiteturas com múltiplos
    processadores independentes

7
Taxonomia de FlynnSISD
Em arquiteturas SISD um único fluxo de instruções
opera sobre um único fluxo de dados. Exemplo
PCs com um único processador
CPU
FD
FI
UC
EP
M
8
Taxonomia de FlynnSIMD
Em arquiteturas SIMD um único fluxo de instruções
opera sobre múltiplos fluxos de dados. Existe uma
única UC e múltiplos EP. Todos os EP executam
simultânea e sincronizadamente a mesma instrução
sobre conjuntos de dados distintos. Exemplo
Computadores vetoriais
FD1
EP1
M1
FD2
UC
EP2
M2
FI
...
EPn
Mn
FDn
9
Taxonomia de FlynnMISD
Em arquiteturas MISD múltiplos fluxos de
instruções operam sobre um único fluxo de
dados. Exemplo Nunca foi implementada
10
Taxonomia de FlynnMIMD
Na classe MIMD está a maioria das arquiteturas
paralelas da atualidade. De acordo com o método
de comunicação entre os processadores, a classe
MIMD pode ser divida em
MIMD compartilhada
MIMD distribuída
CPU
CPU
FI1
FD1
FD1
FI1
EP1
UC1
EP1
UC1
M1
FD2
FI2
FD2
FI2
EP2
UC2
EP2
UC2
M2
Memória compartilhada
Sistema de comunicação
FI3
FD3
FD3
FI3
EP3
UC3
EP3
UC3
M3
...
...
...
...
...
FDn
FIn
FDn
FIn
EPn
UCn
UCn
Mn
EPn
11
Taxonomia de FlynnMIMD
Atualmente, três tipos de arquiteturas MIMD são
bastante utilizadas
  • Multiprocessador Simétrico (SMP) arquitetura
    MIMD com memória compartilhada
  • Acesso Não-Uniforme à Memória (NUMA)
    arquitetura MIMD com memória compartilhada
  • Agregado de Computadores (Cluster)
    arquitetura MIMD com memória distribuída

12
Conteúdo
  • Processamento paralelo
  • Computadores paralelos taxonomia de Flynn
  • Computadores paralelos
  • Multiprocessadores simétricos (SMPs)
  • Acesso Não-Uniforme à Memória (NUMA)
  • Agregados de computadores (Clusters)

13
Multiprocessadores simétricos
Definição Consiste de múltiplos
processadores similares conectados entre si e
à memória por um barramento ou alguma outra forma
de circuito de conexão interno.
CPU
CPU
CPU
CPU
Interconexão
Memória
Diagrama de blocos de um SMP
14
Multiprocessadores simétricos
Características
  • Possuem dois ou mais processadores similares,
    com capacidade de processamento comparável
  • Todos os processadores compartilham uma mesma
    memória (i.e. existe um único espaço de
    endereçamento)
  • Todos os processadores compartilham acesso aos
    mesmos dispositivos de E/S, através de canais
    comuns, ou não
  • O sistema inteiro é controlado por um único
    sistema operacional que torna transparente ao
    usuário a existência de vários processadores.
    Windows e Linux estão preparados para rodar em
    sistemas SMP.

15
Multiprocessadores simétricos
Características (continuação)
  • Todos os processadores podem desempenhar as
    mesmas funções
  • O tempo de acesso tomado por um processador para
    o acesso a qualquer posição de memória é o mesmo,
    e ainda, todos os processadores experimentam o
    mesmo tempo de acesso à memória (i.e., é uma
    arquitetura UMA - Uniform Memory Access).

16
Multiprocessadores simétricos
Exemplo SMP Sun Enterprise Server
Esquema simplificado do SMP Sun Enterprise Server
(CULLER, 1999)
17
(No Transcript)
18
Multiprocessadores simétricos - Esquemas de
interconexão Barramento de Tempo Compartilhado
CPU
CPU
CPU
CPU
Barramento de tempo compartilhado
Memória
SMP com barramento de tempo compartilhado
19
Multiprocessadores simétricos - Esquemas de
interconexão Barramento de Tempo Compartilhado
Características
  • Estruturas e interfaces são praticamente as
    mesmas de um uniprocessador
  • Mecanismo de Tempo Compartilhado
  • Limitado a 2 ou 3 processadores, pois o
    barramento se torna um gargalo

20
Multiprocessadores simétricos - Esquemas de
interconexão Barramento de Tempo Compartilhado
Uso de cache melhora o tráfego no barramento e
possibilita o uso de mais processadores.
CPU
CPU
CPU
CPU
cache
Barramento compartilhado
Memória
SMP com barramento de tempo compartilhado e CPUs
com cache
21
(No Transcript)
22
Multiprocessadores simétricos - Esquemas de
interconexão Barramento de Tempo Compartilhado
Conseqüências do uso de cache em SMPs
  • Mais processadores podem ser utilizados 16 ou
    32 (TANENBAUM GOODMAN, 1999).
  • Problema de coerência de cache

23
Multiprocessadores simétricos Barramento de
tempo compartilhado Coerência de Cache
Problema de coerência de cache
  • Acontece porque podem existir várias cópias de
    um mesmo dado nas caches de diferentes
    processadores.
  • Um processador pode alterar um dado na sua cache
    tornando o conteúdo das memórias caches dos
    outros processadores incoerente/inválido

Solução
  • Existem soluções implementadas em software (ex
    sistema operacional e/ou compilador) e em
    hardware ( mais comuns).

24
Multiprocessadores simétricos Barramento de
tempo compartilhado Coerência de Cache em
hardware
Existem duas categorias de soluções
  • Protocolos de diretório
  • Protocolos de monitoração (snoopy protocols).

25
Multiprocessadores simétricos Barramento de
tempo compartilhado Protocolos de diretório
Funcionam com a utilização de um diretório e um
controlador central.
Load (1000)
CPU1
CPU2
CPU3
CPU4
Barramento
Controlador
Memória
Diretório
Blocos
1
26
Multiprocessadores simétricos Barramento de
tempo compartilhado Protocolos de diretório
Funcionam com a utilização de um diretório e um
controlador central.
Load (1000)
CPU1
CPU2
CPU3
CPU4
Barramento
Controlador
Memória
Diretório
Blocos
1
3
27
Multiprocessadores simétricos Barramento de
tempo compartilhado Protocolos de diretório
Funcionam com a utilização de um diretório e um
controlador central.
Load (1005)
CPU1
CPU2
CPU3
CPU4
Barramento
Controlador
Memória
Diretório
Blocos
1
3
2
28
(No Transcript)
29
Multiprocessadores simétricos Barramento de
tempo compartilhado Protocolos de diretório
Funcionam com a utilização de um diretório e um
controlador central.
CPU1
CPU2
CPU3
CPU4
Barramento
Controlador
Memória
Diretório
Blocos
2
30
Multiprocessadores simétricos Barramento de
tempo compartilhado Protocolos de diretório
ObservaçãoAbordagens baseadas em diretórios
resolvem o problema de coerência de cache, porém,
causam grande sobrecarga no sistema, já que a
comunicação entre os processadores e o
controlador central tem que ocorrer
freqüentemente.
31
Multiprocessadores simétricos Barramento de
tempo compartilhado Protocolos de monitoração
  • Características
  • São protocolos onde todos os processadores
    participam ativamente para resolver o problema da
    coerência de cache.
  • Para isso todos os processadores devem ficar
    monitorando o tráfego no barramento e atualizar o
    estado em que se encontra um determinado dado em
    sua cache. Por exemplo quando um processador
    alterar um dado em sua cache, ele deve enviar um
    broadcast para o barramento informando que o dado
    foi alterado. Os processadores que tem aquele
    dado devem reagir de forma adequada para manter a
    coerência.

32
Multiprocessadores simétricos Barramento de
tempo compartilhado Protocolos de monitoração
  • A coerência pode ser mantida de duas formas
  • Escrita com atualização (write-update) Quando
    um processador altera um dado em sua cache, tal
    dado é enviado para todos os outros
    processadores, para que estes atualizem os dados
    de suas caches.
  • Escrita com invalidação (write-invalidate)
    Quando um processador altera um dado em sua
    cache, ele manda uma mensagem por broadcast com a
    finalidade de invalidar esse mesmo dado contido
    em outras caches. Dessa forma o processador que
    deseja alterar o dado, fica com acesso exclusivo
    ao mesmo, podendo assim fazer as alterações
    desejadas. O MESI (Modified, Exclusive, Shared
    and Invalide) é um exemplo de tal protocolo.

33
Multiprocessadores simétricos Barramento de
tempo compartilhado Protocolo MESI
DefiniçãoEsse protocolo determina 4 estados
possíveis para um dado em cache. Para isso
utiliza 2 bits adicionais por linha de cache para
armazenar o estado. Os 4 estados são
  • Modificado (M) O dado na cache não é igual ao
    dado na memória principal e encontra-se somente
    nesta cache.
  • Exclusivo (E) O dado na cache é igual ao dado na
    memória principal e encontra-se somente nesta
    cache.
  • Compartilhado (S) O dado na cache é igual ao
    dado na memória, porém encontra-se em outra(s)
    cache(s).
  • Inválido (I) O dado na cache não é um dado
    válido.

34
(No Transcript)
35
(No Transcript)
36
(No Transcript)
37
(No Transcript)
38
(No Transcript)
39
(No Transcript)
40
(No Transcript)
41
(No Transcript)
42
(No Transcript)
43
(No Transcript)
44
Multiprocessadores simétricos - Esquemas de
interconexão Crossbar
CPU01
CPU02
CPU03
CPU16
Sistema C.mpp rede crossbar 16 ? 16 (16 proc.
PDP11 e 16 módulos de memória) (HWANG, 1993)
45
Multiprocessadores simétricos - Esquemas de
interconexão Crossbar
Características
  • CPUs são ligadas aos módulos de memórias por
    meio de crosspoints (switches que são
    eletronicamente abertos/fechados para conectar um
    par processador-memória)
  • Acessos à memória em paralelo, desde que para
    módulos de memória distintos

46
Multiprocessadores simétricos - Esquemas de
interconexão Crossbar
CPU01
CPU02
CPU03
CPU16
Sistema C.mpp rede crossbar 16 ? 16 (16 proc.
PDP11 e 16 módulos de memória) (HWANG, 1993)
Na rede Crossbar da figura, até 16 acessos à
memória podem acontecer simultaneamente.
47
Multiprocessadores simétricos -
Crossbar Crosspoints
Diagrama de um crosspoint
48
Multiprocessadores simétricos - Esquemas de
interconexão Crossbar
Observações
  • Embora seja possível construir SMPs com um
    número grande de processadores, na prática isto
    não acontece porque o custo de construção é muito
    algo (porque crosspoints são complexos e o número
    de crosspoints cresce quadraticamente)

49
(No Transcript)
50
Multiprocessadores simétricos - Esquemas de
interconexão Redes multiestágio
Características
  • São construídas a partir de switches A ? B, ou
    seja, switches com A entradas e B saídas
  • Diferentes tipos/classes de redes multiestágio
    podem ser construídas. O que varia de uma classe
    para a outra é o tipo de switch utilizado e o
    padrão de conexão entre os estágios a rede do
    slide anterior utiliza switches 2?2 e um padrão
    de conexão conhecido como perfect shuffle
    (ALMASI GOTTLIEB, 1994 HWANG, 1993 TANENBAUM
    GOODMAN, 1999)

51
(No Transcript)
52
(No Transcript)
53
(No Transcript)
54
(No Transcript)
55
(No Transcript)
56
Multiprocessadores simétricos - Esquemas de
interconexão Redes multiestágio
Observações
  • Para a construção da rede anterior foram
    utilizados 12 switches (para uma rede n ? n
    utilizam-se log2 n estágios e n/2 switches por
    estágio, num total de (log2 n) n/2 switches).
    Para a construção de uma rede crossbar seriam
    necessários n2 switches.
  • A desvantagem de uma rede multiestágio em
    relação à crossbar, é que nem sempre dois acessos
    podem ocorrer em paralelo, mesmo que sejam para
    módulos diferentes.

57
Conteúdo
  • Processamento paralelo
  • Computadores paralelos taxonomia de Flynn
  • Computadores paralelos
  • Multiprocessadores simétricos (SMPs)
  • Acesso Não-Uniforme à Memória (NUMA)
  • Agregados de computadores (Clusters)

58
NUMA
Definição Assim como em SMPs, neste tipo de
arquitetura existem dois ou mais processadores,
que compartilham uma memória global ( um único
espaço de endereçamento). Em um sistema NUMA os
processadores são organizados em nós. Cada nó
possui 1 ou mais processadores, com sua(s)
própria(s) memória(s) cache (um, dois, ou mais
níveis) e alguma memória principal conectados por
um barramento ou outro sistema de interconexão.
59
NUMA
Diagrama de uma arquitetura NUMA
60
NUMA
  • Características
  • A principal característica de uma arquitetura
    NUMA é o acesso não uniforme à memória, ou seja,
    embora todos os processadores possam acessar
    todas as posições de memória, os tempos de acesso
    variam de acordo com o endereço acessado.
  • O acesso a uma posição de memória local (memória
    no mesmo nó do processador que está realizando o
    acesso) é mais rápido do que o acesso a uma
    posição de uma memória remota.
  • Assim, o sistema operacional de uma máquina NUMA
    deveria, sempre que possível, escalonar as
    threads de um processo entre os processadores do
    nó da memória usada pelo processo.

61
NUMA
  • Características (continuação)
  • O programador usando uma arquitetura NUMA também
    deveria explorar a localidade. O sistema
    operacional Windows, por exemplo, oferece uma
    série de funções através da API Win32 para
    programação em sistemas NUMA.

62
NUMA
  • Existem dois tipos de arquiteturas NUMA
  • NC-NUMA NUMA que não utiliza cache
  • CC-NUMA (Cache Coherent NUMA)
  • NUMA com cache (e coerência de cache)

63
NC-NUMA
Exemplo Uma das primeiras máquinas NC-NUMA
foi a Carnegie-Mellon Cm. Era composta por uma
coleção de CPUs LSI-11 (uma versão em chip único
do PDP-11), cada uma com uma memória acessível
diretamente através de um barramento local. Os
nós eram interconectados por um barramento de
sistema.
NC-NUMA Carnegie-Mellon Cm
64
NC-NUMA
Exemplo A MMU em cada referência à memória
verificava se o endereço pertencia à memória
local. Se sim, a requisição era feita à memória
local, via barramento local. Caso contrário era
feita ao nó remoto, através do barramento de
sistema.
NC-NUMA Carnegie-Mellon Cm
65
NC-NUMA
Observações
  • A coerência dos dados em máquinas NC-NUMA é
    garantida porque não existe caching
  • Porém, um dado no lugar errado gera muitas
    penalidades. Se forem feitas três referências
    seguidas a uma posição de memória remota, são
    necessárias três buscas através do barramento de
    sistema.
  • Para amenizar este problema, usam-se esquemas
    implementados em software. Por exemplo um daemon
    pode fazer estatísticas de uso do sistema. Se for
    verificado que uma página parece estar no lugar
    errado, ele remove esta página da memória para
    que da próxima vez ocorra uma page fault ela
    possa ser alocada em um novo nó.

66
CC-NUMA
Um sistema NUMA com coerência de cache é chamado
CC-NUMA. A existência de cache requer algum
protocolo de coerência. O método mais popular
para a coerência de cache em sistema CC-NUMA é
baseado no conceito de diretório. O diretório
funciona como uma espécie de banco de dados que
indica a localização das várias porções de
memória, assim como o status das caches.
67
(No Transcript)
68
CC-NUMACoerência baseada em diretórios
Mem. 16 MB
NÓ 89
Bloco 218
.....
Diretório
218
.....
Bloco 1
Bloco
4
17
3
2
64 bytes
Bloco 0
1
214
0
nó (8 bits)
69
(No Transcript)
70
CC-NUMACoerência baseada em diretórios
Diretório nó 36
(5) Hardware do nó 36 verifica diretório (6)
Entrada do bloco 4 vazia, portanto, ele não se
encontra em cache (7) Hardware do diretório 36
envia o bloco 4 à CPU 20 e atualiza o
diretório
218
.....
Bloco
20
4
3
2
82
1
0
nó (8 bits)
71
CC-NUMACoerência baseada em diretórios
Diretório nó 36
  • CPU 45 requisita leitura do bloco 4do nó 36
  • (2) Hardware do nó 36 verifica que o bloco está
    na cache do nó 20
  • (3) Hardware do diretório enviarequisição ao
    nó 20 solicitando que envie o bloco 4 ao nó 45
  • (4) Hardware atualiza entrada dobloco 4
    indicando que agora estána cache do nó 45

218
.....
Bloco
20
4
45
3
2
82
1
0
nó (8 bits)
72
Conteúdo
  • Processamento paralelo
  • Computadores paralelos taxonomia de Flynn
  • Computadores paralelos
  • Multiprocessadores simétricos (SMPs)
  • Acesso Não-Uniforme à Memória (NUMA)
  • Agregados de computadores (Clusters)

73
Agregados de computadores (Clusters)
Definição É um grupo de computadores
completos/autônomos (usualmente chamados nós)
interconectados, que podem
trabalhar juntos, como um recurso de computação
unificado, criando a ilusão de uma máquina
única. Os nós são geralmente conectados através
de uma porta de E/S (geralmente interfaces de
rede) de alto desempenho. Atualmente eles são
utilizados com sistemas gerenciadores de bancos
de dados, com servidores WEB e, principalmente,
para proc. paralelo.
Cluster do Grupo de Instrumentação e Informática
do IFSC-USP
74
Agregados de computadores (Clusters)
Características
  • Configuração dos nós Os nós podem ser PCs ou
    mesmo SMPs (neste caso ele é chamado um cluster
    de SMPs)
  • Escalabilidade absoluta É possível construir
    clusters muito grandes, cuja capacidade de
    computação ultrapassa várias vezes a capacidade
    da maior máquina individual
  • Escalabilidade incremental Um cluster pode ser
    configurado de maneira que seja possível
    adicionar novos nós, expandindo-o de forma
    incremental
  • Disponibilidade Como cada nó de um cluster é um
    computador independente, uma falha em um nó não
    implica necessariamente na perda total de serviço.

75
Agregados de computadores (Clusters)
Características (continuação)
  • Melhor Relação custo/desempenho devido à
    facilidade de construir um cluster a partir de
    elementos (PCs ou SMPs) comercialmente
    disponíveis, é possível obter um cluster com
    poder de computação igual ou maior que uma única
    máquina paralela de grande porte, por um custo
    muito menor.
  • A relação custo/benefício tem influenciado
    pesadamente a utilização dos clusters. Os
    Beowulfs são clusters compostos por
    microcomputadores de baixo custo (padrão IBM/PC)
    interligados por uma rede como Fast Ethernet e/ou
    Gigabit Ethernet, rodando um s.o. livre é uma
    ótima opção para instituições que precisam de
    desempenho, mas não têm recursos suficientes para
    comprar uma única máquina com vasto poder de
    processamento nem um cluster pronto de algum
    fabricante ou integrador de soluções.

76
Agregados de computadores (Clusters)
Clusters podem ser utilizados de diversas formas
  • Pode-se desenvolver aplicações específicas para
    resolver problemas de maneira concorrente que
    cuidam de todos os aspectos de processamento,
    balanceamento de carga, comunicação e
    sincronização. Para isto são utilizadas várias
    linguagens de programação e extensões/bibliotecas
    concorrentes como MPI, HPF (High Performance
    Fortran) e outros.
  • Pode ser utilizado como um recurso único, de
    maneira transparente para os usuários. Para isto,
    é necessário a utilização de escalonadores que
    cuidam da distribuição de carga entre os
    servidores. Dentre estes escalonadores
    destacam-se o OpenMosix. O OpenMosix é um kernel
    capaz de distribuir os processos em execução
    entre o nós do cluster (ele mantém estatísticas
    sobre o balanço de carga dos nós e, se necessário
    faz a migração de processos entre os nós)

77
Agregados de computadores (Clusters)Redes de
interconexão
A escolha de uma rede depende entre outros
fatores
  • Capital disponível
  • Do tipo de aplicação que será executada no
    cluster. Aplicações badwidth-bound necessitam de
    redes de alto desempenho (ex Myrinet).
    Aplicações CPU-bound podem utilizar redes mais
    lentas (ex Fast Ethernet)

78
(No Transcript)
79
Bibliografia
ALMASI, G. S. GOTTLIEB, A. Highly parallel
computing. 2ed. Redwood City Benjamin/Cummings,
1994. CULLER, D. E. SINGH, J. P. GUPTA, A.
Parallel computer architecture a
hardware/software approach. San Francisco Morgan
Kaufmann Publishers, c1999. FLYNN, M. J. Some
Computer Organizations and Their Effectiveness.
IEEE Transactions on Computers, v.C-21, n.9,
p.948-960, Set. 1972. HWANG, K. Advanced computer
architecture parallelism, scalability,
programmability. New York Mcgraw-Hill, 1993.
TANENBAUM, A. S. GOODMAN, J. R. Structured
computer organization. 4ed. Upper Saddle River,
N.J. Prentice Hall, c1999.
Write a Comment
User Comments (0)
About PowerShow.com