Capítulo 9 Multi-processadores

Slides:



Advertisements
Apresentações semelhantes
Vitor Fiorotto Astolfi Orientador: Jorge Luiz e Silva
Advertisements

Coerência de Cache em Multiprocessadores
Paralelismo em Máquinas Multiprocessadas
Ch Morgan Kaufmann Publishers Paulo C. Centoducatte – MC542 - IC/Unicamp- 2004s2 Desempenho.
PIPELINE (continuação).
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Modos de Transferência Acesso Direto à Memória (DMA)
Classificação Moderna de Máquinas Paralelas
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Operacionais - 3
Aula 16: Memória Principal e Memória Virtual
ARQUITETURA DE COMPUTADORES II
Multithreading e multiprocessamento
Modelos de Comunicação em Sistemas Distribuídos
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
MC542 Organização de Computadores Teoria e Prática
Coerência de Memórias Cache e Modelos de Consistência de Memória
Coerência de Cache MC722 - Projeto de Sistemas Computacionais Prof Rodolfo Jardim de Azevedo André Costa Felipe Sodré Davi Barbosa
Arquiteturas Diferentes
Computação de Alto Desempenho
MC542 Organização de Computadores Teoria e Prática
MC542 Organização de Computadores Teoria e Prática
Algoritmos Distribuídos Professora: Lúcia Drummond
Processador s processadores (ou CPUs, de Central Processing Unit) são chips responsáveis pela execução de cálculos, decisões lógicas e instruções que.
Memória Compatilhada Distribuída
Modelos de Computadores Paralelos
SSC114 Arquitetura de Computadores Arquiteturas Paralelas
Aulas 11 e 12 08/10/10 (Turma 1 e 2) Profa. Sarita
Estudo da aplicação “jogos” em sistemas embarcados
Rganização de Computadores Multiprocessadores Capítulo 9 – Patterson & Hennessy Organização de Computadores Multiprocessadores Capítulo 9 – Patterson &
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Componentes do Computador e noções de Arquitetura de Computadores
Professor Victor Sotero
Sincronização e Comunicação entre Processos
Experiments with Strassen’s Algorithm: from sequential to parallel
1 Felipe L. Severino Geração de Cenários para Desktop Computing Felipe L. Severino paralela e.
Visão Geral de Equipamentos de Rede
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Visão Geral de Equipamentos de Rede
Prof. André Leon S. Gradvohl, Dr.
Airam J. Preto , Celso L. Mendes
CUDA vs OpenCL Introdução.
Fundamentos de programação CUDA
Tópicos em redes e sistemas distribuídos B
Tópicos em redes e sistemas distribuídos B
Sistemas Distribuídos
Carlos Oberdan Rolim Ciência da Computação
Arquitetura de computadores
Arquitetura de Sistemas Operacionais – Machado/Maia 13/1 Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 13 Sistemas.
Sistemas Operacionais I
Aveiro, 28 de Abril de Arquitectura de Computadores II Ano lectivo 2003/2004 Nuno
Aula19: Desempenho de SSM Large-Scale MP Sincronização
ARQUITETURA DE COMPUTADORES DEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG Aula 17: Introdução às Arquiteturas Paralelas.
Computação de Alto Desempenho Utilizando Placas Gráficas Divino César S. Lucas Universidade Católica de Goiás
TELP: Aplicações Paralelas em Ambientes de Passagem de Mensagens
ARQUITETURA DE COMPUTADORES II
Paralelismo em Máquinas Multiprocessadas
CMP 167– Programação com Objetos Distribuídos Prof. Cláudio Geyer
Multiprocessadores e Paralelismo nível de Thread
MO MO Revisado 2006 Prof. Paulo Cesar Centoducatte MO401 Arquitetura de Computadores I.
Linux em Máquinas Paralelas
Programação Paralela Simone de Lima Martins Março-Julho/2001 Universidade Federal do Mato Grosso do Sul.
Estrutura de Interconexão
Multiprocessadores e Paralelismo nível de Thread
Sistemas de Memória Cache em Multiprocessadores
Algoritmos Paralelos.
Arquitetura de computadores
Conceituação e Classificação
Transcrição da apresentação:

Capítulo 9 Multi-processadores

Introdução (9.1) Processamento paralelo: programa sendo executado por múltiplos processadores simultaneamente Questões básicas no projeto de sistemas multiprocessados: Compartilhamento de dados Coordenação entre os processadores Quantidade de processadores Processadores com um único espaço de endereçamento = Processadores de memória compartilhada (comunicação via variável comum) UMA – uniform memory access ou SMP – symmetric multiprocessors NUMA – nonuniform memory access Processadores de memória não compartilhada (private) Comunicação entre processos via troca de mensagens send e receive

Número de processadores Processadores em rede Modelo de paralelismo mais recente clusters computadores ligados por uma rede Categoria Tipo Número de processadores Modelo de Comunicação Troca de Mensagens 8-256 Endereçamento compartilhado NUMA UMA 2-64 Conexão Física Rede Bus 2-32

Aceleração com multiplrocessamento e lei de Amdhal (9.2) Exemplo (p.715): Achar o speedup linear com 100 processadores. Que fração da computação original pode ser seqüencial ? Tempo de execução após melhora = (tempo de execução afetado pela melhora / quantidade de melhora) + tempo de execução não afetado se buscamos aceleração linear  Tempo de execução após melhora / 100 = (tempo de execução afetado pela melhora / 100) + tempo de execução não afetado Tempo de execução não afetado = zero conclusão: para alcançar aceleração (speedup) linear com 100 processadores nenhuma operação original pode ser sequencial ou para alcançar aceleração de 99 em 100 processadores, qtd de operações lineares < 0,01%

Aceleração via execução paralela Exemplo (p. 716) Fazer duas somas: duas variáveis escalares duas matrizes 1000 X 1000. Qual o speedup para 1000 processadores ? Assumindo tempo para uma soma = t 1 soma não afetada pelo paralelismo e 1.000.000 afetadas tempo antes = 1.000.001 t Tempo de execução depois do paralelismo = (tempo de execução afetado pela melhora / quantidade de melhora) + tempo de execução não afetado Tempo de execução depois melhora = (1.000.000/1000)t + 1t = 1.001t Aceleração = 1.000.001/1.001 = 999

Multiprocessadores conectados por um barramento simples Nome # max. de proc Nome do proc. CK MHz Max. mem /sist MB Bw max/sist MB/seg Compaq Proliant 5000 4 Pentium Pro 200 2.048 540 Digital AlphaServer 8400 12 Alpha 21164 440 28.672 2.150 HP 9000 K460 PA-8000 180 4.096 960 IBM RS/6000 R40 8 PowerPC 604 112 1.800 SGI Power Challenge 36 MIPS R10000 195 16.384 1.200 Sun Enterprise 6000 30 UltraSPARC1 167 30.720 2.600

Programa paralelo Exemplo (p.718): Somar 100.000 números em um computador com 10 processadores ligados em um único barramento Pn é o processador n (de 0 a 9) 1. Somar 10.000 números em cada processador (definir faixas de endereços de memória) sum[Pn] = 0; for (i = 10000*Pn; i < 10000*(pn+1); i = i + 1;) sum[Pn] = sum[pn] + A[i] ; /* soma as regiões alocadas ao processador*/ 2. Somar as 10 sub-somas; metade dos processadores somam pares de somas parciais, um quarto somam pares das novas somas parciais ,etc., etc., etc.. half = 10; repeat synch(); /* primitiva de sincronização; espera a soma do bloco anterior*/ if (half%2 != 0 && Pn ==0) sum[0] = sum[0] + sum[half –1]; half = half/2; if (Pn < half) sum[Pn] = sum[Pn] + sum[Pn+half]; until (half ==1);

Coerência de caches (snooping) t g n d P r o s S i l b u M m y I / O p Snoop: controlador monitora o barramento para determinar se existe ou não uma cópia de um bloco compartilhado Manutenção da coerência: problema só na escrita Processador tem que ter acesso exclusivo na escrita Todos os processadores tem que ter a cópia mais recente após uma escrita

Protocolo snooping write-invalidate ( o t c h e b k ) R / W r y O f S m P s w C u g p A ; . write-invalidate escrita  todas as cópias em outras caches tornem-se inválidas até a atualização O processador que irá escrever manda um sinal de inválido no barramento e todas as caches verificam para ver se tem uma cópia se sim, tornam o bloco que contem a palavra inválido write-update (write-broadcast) processador que escreve propaga o novo dado no barramento e todas as caches com cópia são atualizadas

Sincronização usando coerência ? ( = ) U n l o k L a v r i b N Y s T y t g w p : h 1 B f F

Multiprocessadores conectados em rede

Programa paralelo em rede Exemplo (p.729) – Programação paralela e troca de mensagens: somar 100.000 números em um computador com 100 processadores (com espaços de endereçamento privados) ligados a uma rede distribuir os 100 conjuntos de dados nas memórias locais e somar sum = 0; for (i = 0; i < 1000; i = i + 1;) sum = sum + A[i] ; /* soma arrays locais*/   Somar as 100 sub-somas  send (x,y) onde x = processador Pn e y o valor half = 100; repeat half = (half+1)/2; if (Pn >= half && Pn < limit) send (pn – half, sum) if (Pn < limit/2 -1) sum = sum + receive(); limit = half; until (half ==1);

Addressing in large-scale parallel processors t o y M m C a h P s N w k . b Coerência no nível de cache usando diretórios; dados originais na memória e cópias replicadas apenas nas caches Coerência no nível de memória usando diretórios; cópias replicadas em memória remota (cor) e nas caches

Desempenho de sistemas C o s t 3 2 1 6 8 4 N u m b e r f p c w k B P a n i Custo, desempenho e custo/desempenho em processadores conectados via barramento ou rede

N máquinas têm N memórias independentes e N cópias do SO Clusters N máquinas têm N memórias independentes e N cópias do SO Nome N° max proc. Proc. CK (MHz) Max MemSize / Syst (MB) BW / link Nó N° max Nós HP 9000 EPS21 64 PA-8000 180 65.356 532 MB/s 4-way SMP 16 IBM RS/6000 HACMP R40 PowerPC 604 112 4.096 12 MB/s 8-way SMP 2 IBM RS/6000 SP2 512 Power2 SC 135 1.048.576 150 MB/s 16-way SMP 32 SUN Enterprise 6000 HA 60 Ultra SPARC 167 61.440 100 MB/s 30-way SMP Tandem NonStop Himalaya S70000 4096 MIPS R10000 195 40 MB/s 256

Topologia de redes Dois extremos: single bus totalmente conectado Rede: grafo, links são bidirecionais, podem existir chaves (switches) Exemplo: Anel, mais de uma transação simultânea

Medidas de desempenho de rede: Total Network Bandwidth = soma dos bandwidths de todos links single bus = 1 anel = N fully connected = N (N - 1) / 2 Bisection Bandwidth; dividir a rede em duas sub-redes com N/2 nós (da maneira mais pessimista); Medida = BW entre as sub-redes anel = 2 fully connected = (N/2)2

Duas formas: Mesh e Cubo . 2 D g r i d o m e s h f 1 6 n b - c u t 8 ( = 3 )

Bandwidths para uma rede com 64 nós Barramento Anel Grade 2D Cubo-6 Fully Connected Desempenho Total BW 1 64 112 192 2016 Bisection BW 2 8 32 1024 Custo Ports / switch na 3 5 7 Total # links 128 176 256 2080

Topologia multi-estágio c . O m e g a n t w o r k s i h b x A B C D P 1 2 3 4 5 6 7

Classificação de Michael Flynn SISD: Single Instruction (stream) Single Data (stream) processador único single = o que? soma paralela? pipeline? referência para Flynn: single hoje = MIPS dos capítulos 5 e 6 SIMD:Single Instruction Multiple Data operam sobre vetores de dados MISD: Multiple Instruction Single Data difícil de relacionar com sistemas práticos (ver “elaboration” p. 752) MIMD: Multiple Instruction Multiple Data multiprocessadores conectados via barramento ou rede: