processamento paralelo pae: julio cesar torelli docente: prof. dr. odemir martinez bruno...

79
Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas e de Computação – ICMC SCE 188 - Arquitetura de Computadores

Upload: internet

Post on 17-Apr-2015

110 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Processamento paralelo

PAE: Julio Cesar Torelli

Docente: Prof. Dr. Odemir Martinez Bruno

Universidade de São Paulo - USP

Instituto de Ciências Matemáticas e de Computação – ICMC

SCE 188 - Arquitetura de Computadores

Page 2: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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)

Page 3: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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)

Page 4: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Processamento paralelo

Definição:

É usar múltiplos (dois ou mais) processadores, simultâneamente, para resolver um mesmo problema.

Objetivo:

Aumento 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;

Page 5: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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)

Page 6: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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

Page 7: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Taxonomia de Flynn

SISD

Em arquiteturas SISD um único fluxo de instruções opera sobre um único fluxo de dados.

Exemplo: PCs com um único processador

UC EP M

CPU

FI FD

Page 8: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Taxonomia de Flynn

SIMD

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

UC

EP1 M1

EP2 M2

EPn Mn

.

.

.

FI

FD1

FD2

FDn

Page 9: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Taxonomia de Flynn

MISD

Em arquiteturas MISD múltiplos fluxos de instruções operam sobre um único fluxo de dados.

Exemplo: Nunca foi implementada

Page 10: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Taxonomia de Flynn

MIMD

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:

FI1 FD1EP1

EP2

EP3

EPn

.

.

.

FD2

FD3

FDn

FI2

FI3

FIn

UC1

UC2

UC3

UCn

.

.

.

Memória compartilhada

FI1 FD1EP1

EP2

EP3...

FD2

FD3

FDn

FI2

FI3

FIn

UC1

UC2

UC3

UCn

.

.

.

Sistema de comunicação

M1

M2

M3

MnEPn

.

.

.

CPU

MIMD compartilhada MIMD distribuída

CPU

Page 11: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Taxonomia de Flynn

MIMD

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

Page 12: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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)

Page 13: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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

Page 14: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Multiprocessadores simétricos

Características:

Page 15: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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).

Multiprocessadores simétricos

Características (continuação):

Page 16: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos

Esquema simplificado do SMP Sun Enterprise Server (CULLER, 1999)

Exemplo: SMP Sun Enterprise Server

Page 17: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos

Esquemas de interconexão

CPU

CPU

CPU

CPU

Interconexão

Memória

Diagrama de blocos de um SMP

- Barramento- Crossbar- Redes MultiEstagio

Page 18: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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

Page 19: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão

Barramento de Tempo Compartilhado

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

Características:

Page 20: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão

Barramento de Tempo Compartilhado

CPU

CPU

CPU

CPU

Barramento compartilhado

Memória

SMP com barramento de tempo compartilhado e CPUs com cache

cache

Uso de cache melhora o tráfego no barramento e possibilita o uso de mais processadores.

Page 21: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

CPU

cache

palavra bloco

Relacionamento CPU, cache e memória RAM

Memória

Principal

Load (1000)

Multiprocessadores simétricos - Esquemas de interconexão

Barramento de Tempo Compartilhado

Características como localidade espacial e/ou temporal nos dizem que um programa tende a referenciar endereços de memória próximos em um intervalo de tempo, reduzindo significativamente o acesso a memoria principal.

Page 22: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão

Barramento de Tempo Compartilhado

Mais processadores podem ser utilizados: 16 ou 32 (TANENBAUM; GOODMAN, 1999).

Problema de coerência de cache

Conseqüências do uso de cache em SMPs:

Page 23: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

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;

Problema de coerência de cache:

Existem soluções implementadas em software (ex: sistema operacional e/ou compilador) e em hardware (= mais comuns).

Solução:

Page 24: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Coerência de Cache em hardware

Protocolos de diretório;

Protocolos de monitoração (snoopy protocols).

Existem duas categorias de soluções:

Page 25: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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

Barramento

Memória

Controlador

CPU2 CPU3 CPU4

Blo

cos

Load (1000)

Diretório

1

Page 26: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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

Barramento

Memória

CPU2 CPU3 CPU4

Blo

cos

Load (1000)

Diretório

1 3

Controlador

Page 27: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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

Barramento

Memória

CPU2 CPU3 CPU4

Blo

cos

Load (1005)

Diretório

1 3 2

Controlador

Page 28: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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

Barramento

Memória

CPU2 CPU3 CPU4

Blo

cos

Store (1005)

Diretório

1 3 2

Controlador

Page 29: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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

Barramento

Memória

CPU2 CPU3 CPU4

Blo

cos

Diretório

2

Controlador

Page 30: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolos de diretório

Observação:

Abordagens 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.

Page 31: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Page 32: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Page 33: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

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.

Definição:

Esse 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:

Page 34: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

Exemplo: A CPU 1 lê/escre um endereço de memória. Assim, o bloco que contém este endereço é armazenado na sua cache e marcado como E (as próximas leituras a endereços de memória deste bloco, pela CPU 1, serão satisfeitas pelo acesso a cache, sem o uso do barramento);

CPU1

Barramento

Memória

CPU2 CPU3 CPU4

E

Load (1005)

Page 35: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

CPU1

Barramento

Memória

CPU2 CPU3 CPU4

E

Load (1005)

Exemplo: A CPU 2 referencia um endereço do mesmo bloco. Assim, este bloco é copiado para a cache desta CPU. Neste caso, o bloco em ambas as cache é marcado como S, o que significa que a memória está atualizada e que ambas as CPUs podem ter suas requisições a endereços deste bloco atendidas pelas respectivas caches;

Page 36: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

CPU1

Barramento

Memória

CPU2 CPU3 CPU4

S

Load (1005)

S

Exemplo: A CPU 2 referencia um endereço do mesmo bloco. Assim, este bloco é copiado para a cache desta CPU. Neste caso, o bloco em ambas as cache é marcado como S, o que significa que a memória está atualizada e que ambas as CPUs podem ter suas requisições a endereços deste bloco atendidas pelas respectivas caches;

Page 37: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

CPU1

Barramento

Memória

CPU2 CPU3 CPU4

S

Store (1005)

S CPU2: Sinaliza alteração

Exemplo: A CPU 2 escreve na cache, no bloco compartilhado. Neste caso, ela coloca um sinal nas linhas de controle do barramento dizendo às outras CPUs que descartem suas cópias. O estado do bloco na CPU 2 é alterado para M. A CPU 2 pode agora ler e escrever neste bloco porque só ela o possui;

Page 38: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

CPU1

Barramento

Memória

CPU2 CPU3 CPU4

M

Exemplo: A CPU 2 escreve na cache, no bloco compartilhado. Neste caso, ela coloca um sinal nas linhas de controle do barramento dizendo às outras CPUs que descartem suas cópias. O estado do bloco na CPU 2 é alterado para M. A CPU 2 pode agora ler e escrever neste bloco porque só ela o possui;

Store (1005)

Page 39: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

CPU1

Barramento

Memória

CPU2 CPU3 CPU4

Load (1007)

M

Exemplo: A CPU 3 solicita um endereço do mesmo bloco. A CPU 2 detecta este evento e sabendo que a cópia da memória é inválida, coloca sinais no barramento dizendo a CPU 3 que aguarde.

CPU2: Sinais de controle

Page 40: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

CPU1

Barramento

Memória

CPU2 CPU3 CPU4

M

Exemplo: Enquanto a CPU 3 aguarda ela escreve de volta para a memória principal o bloco que foi modificado em sua cache.

Load (1007) - aguardando

Write back

Page 41: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

CPU1

Barramento

Memória

CPU2 CPU3 CPU4

Exemplo: Enquanto a CPU 3 aguarda ela escreve de volta para a memória principal o bloco que foi modificado em sua cache.

Load (1007) - aguardando

M

Write back

Page 42: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

CPU1

Barramento

Memória

CPU2 CPU3 CPU4

Exemplo: Finalizado o processo (write-back) ambas as CPUs obtêm uma cópia deste bloco de memória em sua cache; ambas o marcam como S e podem utilizá-lo;

S S

Load (1007) - aguardando

Page 43: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos – Barramento de tempo compartilhado

Protocolo MESI

CPU1

Barramento

Memória

CPU2 CPU3 CPU4

Exemplo: Finalizado o processo (write-back) ambas as CPUs obtêm uma cópia deste bloco de memória em sua cache; ambas o marcam como S e podem utilizá-lo;

S S

Load (1007) – é executado

Page 44: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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)

Page 45: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão Crossbar

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;

Características:

Page 46: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Page 47: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Crossbar

Crosspoints

Diagrama de um crosspoint

Page 48: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão Crossbar

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);

Observações:

Page 49: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão

Redes multiestágio

Rede multiestágio Omega (switches 2x2)

CPU 01

CPU 02

CPU 03

CPU 04

CPU 05

CPU 06

CPU 07

CPU 08

Page 50: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio

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 22 e um padrão de conexão conhecido como perfect shuffle (ALMASI; GOTTLIEB, 1994; HWANG, 1993; TANENBAUM; GOODMAN, 1999)

Características:

Page 51: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio

Exemplo: Assumiremos um sistema com 512 MB de RAM (= endereços de 29 bits) divididos em 8 módulos de memória (= módulos de 64 MB). Portanto, os 3 primeiros bits especificam o módulo de memória, os outros 26 especificam um endereço dentro do módulo.

CPU 01

CPU 02

CPU 03

CPU 04

CPU 05

CPU 06

CPU 07

CPU 08

Rede multiestágio Omega

Page 52: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio

Exemplo: CPU 03 executa instrução LOAD (11000000000000000000000000001), i.e., para um endereço que está “contido” no módulo 110.

Load

110

CPU 01

CPU 02

CPU 03

CPU 04

CPU 05

CPU 06

CPU 07

CPU 08

Rede multiestágio Omega

Page 53: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio

Exemplo: O switch 1C verifica o 1º digito do campo módulo (um switch no 1º estágio da rede verifica o 1º dígito do campo módulo), neste caso 1. Um valor 1 indica que a requisição de leitura deve prosseguir pela saída inferior do switch, neste caso indo para o switch 2B.

110

CPU 01

CPU 02

CPU 03

CPU 04

CPU 05

CPU 06

CPU 07

CPU 08

110

Rede multiestágio Omega

Page 54: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio

Exemplo: O switch 2B, no estágio 2 da rede, analisa o segundo dígito do campo módulo, que também é 1, e a requisição prossegue através do switch 3D.

110

CPU 01

CPU 02

CPU 03

CPU 04

CPU 05

CPU 06

CPU 07

CPU 08

110

110

Rede multiestágio Omega

Page 55: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio

Exemplo: O switch 3D, no estágio 3 da rede, verifica o terceiro dígito do campo módulo, que é 0 (zero). Um valor 0 indica que a operação deve prosseguir pela a saída superior do switch. Então, o módulo 110 é “alcançado”.

110

CPU 01

CPU 02

CPU 03

CPU 04

CPU 05

CPU 06

CPU 07

CPU 08

110

110

Rede multiestágio Omega

Page 56: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Multiprocessadores simétricos - Esquemas de interconexão Redes multiestágio

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.

Observações:

Page 57: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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)

Page 58: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Page 59: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

NUMA

Diagrama de uma arquitetura NUMA

Page 60: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Page 61: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Page 62: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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)

Page 63: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

NC-NUMA

NC-NUMA Carnegie-Mellon Cm

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.

Page 64: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

NC-NUMA

NC-NUMA Carnegie-Mellon Cm

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.

Page 65: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

NC-NUMA

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ó.

Observações:

Page 66: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Page 67: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

CC-NUMA

Diagrama de um sistema CC-NUMA

Exemplo:

A figura abaixo ilustra um sistema CC-NUMA com 256 nós, 1 processador por nó, 16 MB por nó (256 x 16 = 4GB RAM = endereços de 32 bits). A memória dos nós é acessada em blocos de 64 bytes.

0 – 16 MB 16 – 32 MB

Page 68: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

CC-NUMA

Coerência baseada em diretórios

Mem. 16 MB

Bloco 0

Bloco 1

64 bytes

Diretório

Bloco 218

.....

Blo

co

1

0

2

21

8.....

3

4

nó (8 bits)

NÓ 89

17

214

Page 69: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

(1) CPU 20 executa a instrução LOAD 0x24000108

(2) MMU converte endereço lógico emfísico.

Nó Bloco/Linha de Cache Offset

8 bits 18 bits 6 bits

36 4 8

(3) Verifica sua memória cache

(4) Não encontrando envia requisição para nó 36 solicitando bloco 4

CC-NUMA

Coerência baseada em diretórios

Page 70: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Diretório nó 36

Blo

co

1

0

2

21

8.....

3

4

nó (8 bits)

82

(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 20

CC-NUMA

Coerência baseada em diretórios

Page 71: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Diretório nó 36

Blo

co

1

0

2

21

8.....

3

4

nó (8 bits)

82

(1) 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

2045

CC-NUMA

Coerência baseada em diretórios

Page 72: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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)

Page 73: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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

Page 74: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Page 75: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Page 76: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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)

Page 77: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

A escolha de uma rede depende entre outros fatores:

Agregados de computadores (Clusters)

Redes de interconexão

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);

Page 78: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

Alguns tipos/padrões de redes utilizados:

Agregados de computadores (Clusters)

Redes de interconexão

10.7 MB/s89.8 usec3Com 3C905B 33MHz 32bit PCI, P2 400MHz, Intel 440BX, Linux 2.2.12.

118.9 MB/s34.2 usecIntel PRO1000/T Gigabit Ethernet on 66MHz 64bit PCI P3 800MHz, Serverworks ServerSet III HE, Linux 2.4.15.

913.2 MB/s14.6 usecInfiniBand 4x Fujitsu HCA on 133 MHz 64bit PCI-XXeon 2.8GHz, Serverworks GC-LE, Linux 2.4.21.

465.9 MB/s8.3 usecMyrinet 2XP Fiber on 133 MHz 64bit PCI-XXeon 2.8GHz, ServerWorks GC-LE, Linux 2.4.20.

Largura de banda

LatênciaRede

Fonte: http://www.pccluster.org/faq/en/overview/pm-perf.html

Page 79: Processamento paralelo PAE: Julio Cesar Torelli Docente: Prof. Dr. Odemir Martinez Bruno Universidade de São Paulo - USP Instituto de Ciências Matemáticas

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.

Bibliografia