Arquiteturas paralelas

Download Report

Transcript Arquiteturas paralelas

Tolerância a Falhas
Carlos Oberdan Rolim
Ciência da Computação
Arquiteturas paralelas
Arquiteturas computacionais
Taxonomia de Flynn: 1972 - 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 Streams Single Data Streams ): Fluxo
único de instruções sobre um único conjunto de dados .
Computadores sequenciais
SIMD (Single Instruction Streams Multiple Data Streams ): Fluxo
único de instruções em múltiplos conjuntos de dados
.Computadores vetoriais e matriciais
MISD (Multiple Instruction Streams Single Data Streams ): Fluxo
múltiplo de instruções em um único conjunto de dados .Não
existem computadores
MIMD (Multiple Instruction Streams Multiple Data Streams ): Fluxo
múltiplo de instruções sobre múltiplos conjuntos de dados.
.Arquiteturas com múltiplos processadores independentes
Classificação de Flynn
SISD (Single Instruction Single Data)
Máquinas von Neumann tradicionais:
microcomputadores pessoais e estações de trabalho
Classificação de Flynn
SIMD (Single Instruction Multiple Data)
Máquinas array: CM-2, MasPar
Classificação de Flynn
MISD (Multiple Instruction Single Data)
Não existe!
Classificação de Flynn
MIMD (Multiple Instruction Multiple Data)
Multiprocessadores e multicomputadores:
nCube, Intel Paragon, Cray T3D
Multiprocessadores e multicomputadores
MIMD
Computadores
Paralelos e
Distribuídos
Fortemente Acoplado
Multiprocessadores
(memória compartilhada)
Barramento
Switched
Sequent, Encore
Ultracomputer,
RP3
Fracamente Acoplado
Multicomputadores
(memória privada)
Barramento
Estações de
Trabalho
Switched
Transputer,
Hypercube
Multiprocessadores
Baseado em barramento
CPU
CPU
CPU
cache
cache
cache
Memória
Multiprocessadores
Baseado em switch
M
M
M
M
C
M
C
C
M
C
C
M
C
C
M
C
crossbar switch
omega switching network
Multicomputadores
Baseado em barramento
Estação de
Trabalho
Estação de
Trabalho
Estação de
Trabalho
Memória
Local
Memória
Local
Memória
Local
CPU
CPU
CPU
Rede
Multicomputadores
Baseado em switch
grid
hypercube
Compartilhamento de memória
Multiprocessadores (espaço de endereçamento único)
UMA (uniform memory access) - memória central
NUMA (non-uniform memory access) - memória distribuída
COMA (cache-only memory architecture)
CC-NUMA (cache-coherent non-uniform memory access)
NCC-NUMA (non-cache-coherent non-uniform memory access)
Multicomputadores (múltiplos espaços de endereçamento)
NORMA (non-remote memory access)
SC-NUMA (software-coherent non-uniform memory access)
DSM (Distributed shared memory)
Compartilhamento de memória
UMA
P
P
P
P
P
Rede de Interconexão
M
Coerência de cache resolvida em HW.
P
P
P
Acesso Não-Uniforme à Memória (NUMA)
NUMA
Dois ou mais processadores compartilham a 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.
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
Acesso local mais rápido que acesso remoto
Dois tipos: ncNUMA (NUMA sem cache) e ccNUMA (NUMA com cache)
Compartilhamento de memória
NUMA
espaço de endereçamento
M
M
M
M
M
M
M
M
P
P
P
P
P
P
P
P
Rede de Interconexão
Compartilhamento de memória
NORMA
P
P
P
P
P
P
P
P
M
M
M
M
M
M
M
M
Rede de Interconexão
Arquiteturas paralelas
Serie: N módulos conectados um após o outro. Falha de um módulo
ocasiona falha o sistema todo
Paralelo: N módulos conectados entre si. O sistema falha somente
se todos os módulos falharem
Arquiteturas paralelas
Confiabilidade pode ser calculada através das fórmulas
Série
Paralelo
Regra: Todos os módulos podem ser percorridas da esquerda para
a direita
ADF funciona
BCDF não funciona
Quando não pode percorrer todos os caminhos usar a fórmula:
Arquiteturas paralelas e distribuídas
Cray T90
Cray SX6
Arquiteturas paralelas e distribuídas
Multiprocessadores simétricos (SMP)
Múltiplos processadores similares conectados entre si e à
memória por um barramento ou alguma outra forma de circuito de
conexão interno
Compartilhamento total
Sistema operacional controla tudo
P/C
P/C
P/C
P/C
Barramento / Matriz de chaveamento
MC
MC
MC
Baixa escalabilidade – gargalo no barramento.
Exemplos: IBM R50, SGI Power Challenge, SUN Ultra Enterprise 10000,
HP/Convex Exemplar X-Class, DEC Alpha Server 8400
Arquiteturas paralelas e distribuídas
HP Integrity rx8620-32 Server
Intel Quad Xeon 7400 Server
Arquiteturas paralelas e distribuídas
Máquinas maciçamente paralelas (MPP)
P/C
P/C
P/C
M
M
M
Rede de interconexão de baixa latência
Rede de interconexão proprietária.
Comunicação através de troca de mensagens.
Exemplos: Intel Paragon, Connection Machine CM-5, IBM SP-2
Arquiteturas paralelas e distribuídas
Intel Paragon
IBM SP2
Connection Machine CM-5
Arquiteturas paralelas e distribuídas
Blue Gene da IBM
Arquiteturas paralelas e distribuídas
Máquinas com memória compartilhada distribuída (DSM)
P/C
P/C
P/C
M
M
M
Rede de interconexão de baixa latência
NUMA / NORMA
Os processadores podem acessar todas as memórias. (único espaço de endereçamento)
DSM implementado em SW, HW ou misto.
Exemplos: Stanford DASH, Cray T3D, estações de trabalho rodando TreadMarks
Arquiteturas paralelas e distribuídas
Cray T3D
Clusters - Motivação
Processamento de alto desempenho
⌐ milhares de aplicações ao mesmo tempo
⌐ tarefas paralelas
Ao longo dos anos uso de arquiteturas massivamente paralelas
(MPP) e de memória compartilhada (SMP)
Custo elevado desses tipos de máquinas
Computadores pessoais custo menor
O que é cluster ?
“Cluster é um sistema distribuído que consiste na coleção de
computadores interconectados, usados como um sistema único” (Gregory F.
Pfister – In search of cluster)
Sistema de processamento de dados paralelo ou distribuído
Agregar computadores pessoais
Computadores conectados de forma cooperativa
Visão de sistema único para usuários e aplicações
Execução de aplicações específicas de uma organização
Arquitetura de cluster
Parallel Applications
Parallel Applications
Parallel Applications
Sequential Applications
Sequential Applications
Sequential Applications
Parallel Programming Environment
Cluster Middleware
(Single System Image and Availability Infrastructure)
PC/Workstation
PC/Workstation
PC/Workstation
PC/Workstation
Communications
Communications
Communications
Communications
Software
Software
Software
Software
Network Interface
Hardware
Network Interface
Hardware
Network Interface
Hardware
Network Interface
Hardware
Cluster Interconnection Network/Switch
Classificação dos clusters
Limite geográfico
Métricas para
Utilização dos nodos
classificação
dos clusters
Tipo de topologia
-Pequena (sala, laboratório)
-Média (departamento)
-Grande (organização)
-Dedicados
-Não dedicados
-NOW (Network of Workstations)
-COW (Cluster of Workstations)
-Clumps (Cluster de SMPs)
Aplicações alvo
-Alto desempenho
-Alta disponibilidade
Tipos de nós
-Homogêneo
-Heterogêneo
Classificação dos clusters
Limite geográfico: área de atuação do cluster
Pequena (sala, laboratório)
Média (departamento)
Grande (organização)
Classificação dos clusters
Utilização dos nós: define quais políticas de gerenciamento,
segurança, alta disponibilidade, qual tipo de middleware
usar
Dedicados
Não dedicados
Classificação dos clusters
Tipo de topologia: qual hardware usar
NOW (Network of Workstations): estações de trabalho normais
COW (Cluster of Workstations): heterogêneas, usadas em aplicações específicas
Clumps (Cluster de SMPs): composto por máquinas SMP
NOW
Redes de estações de trabalho (NOW)
P/C
P/C
P/C
M
M
M
Rede padrão (Ethernet,ATM)
Compartilhamento de recursos.
Utiliza rede convencional.
Exemplos: estações de trabalho interligadas por Ethernet
NOW
COW
Máquinas agregadas (COW)
P/C
P/C
P/C
M
M
M
Rede padrão ou de alto desempenho
Aplicações paralelas, alta disponibilidade, balanceamento de carga.
Pode utilizar rede convencional ou de alto desempenho.
Otimizações em software.
Exemplos: iCluster HP Labs (Grenoble), Primergy Server do PC2 (Paderborn),
cluster Amazônia (CPAD-PUCRS/HP)
Clusters
Clusters Amazônia e Ombrófila
CPAD-PUCRS/HP
Clusters
HP i-cluster
Grenoble