Title: Processamento paralelo
1Processamento 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
2Conteú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)
3Conteú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)
4Processamento 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
5Conteú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)
6Classificaçã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
7Taxonomia 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
8Taxonomia 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
9Taxonomia de FlynnMISD
Em arquiteturas MISD múltiplos fluxos de
instruções operam sobre um único fluxo de
dados. Exemplo Nunca foi implementada
10Taxonomia 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
11Taxonomia 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
12Conteú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)
13Multiprocessadores 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
14Multiprocessadores 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.
15Multiprocessadores 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).
16Multiprocessadores simétricos
Exemplo SMP Sun Enterprise Server
Esquema simplificado do SMP Sun Enterprise Server
(CULLER, 1999)
17(No Transcript)
18Multiprocessadores 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
19Multiprocessadores 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
20Multiprocessadores 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)
22Multiprocessadores 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
23Multiprocessadores 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).
24Multiprocessadores 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).
25Multiprocessadores 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
26Multiprocessadores 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
27Multiprocessadores 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)
29Multiprocessadores 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
30Multiprocessadores 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.
31Multiprocessadores 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.
32Multiprocessadores 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.
33Multiprocessadores 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)
44Multiprocessadores 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)
45Multiprocessadores 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
46Multiprocessadores 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.
47Multiprocessadores simétricos -
Crossbar Crosspoints
Diagrama de um crosspoint
48Multiprocessadores 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)
50Multiprocessadores 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)
56Multiprocessadores 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.
57Conteú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)
58NUMA
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.
59NUMA
Diagrama de uma arquitetura NUMA
60NUMA
- 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.
61NUMA
- 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.
62NUMA
- 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)
63NC-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
64NC-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
65NC-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ó.
66CC-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)
68CC-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)
70CC-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)
71CC-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)
72Conteú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)
73Agregados 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
74Agregados 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.
75Agregados 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.
76Agregados 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)
77Agregados 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)
79Bibliografia
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.