new patterson & hennessy – capítulo 9 arquitetura e organização … · 2015. 2. 22. ·...

19
Multiprocessamento Patterson & Hennessy – Capítulo 9 Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011

Upload: others

Post on 20-Apr-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Multiprocessamento

Patterson & Hennessy – Capítulo 9

Arquitetura e Organização de ComputadoresJuliano M. Vieira (c) 2011

Page 2: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Tópicos Abordados

Tipos comuns SMP (processamento paralelo) NUMA (placas de alto desempenho) Clusters (computação distribuída e nuvem)

Comunicação Memória Compartilhada Mensagens

Coerência de cache Multithreading

Page 3: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Symmetrical Multiprocessing (SMP)

Típico de Multicore Um chip, vários núcleos

Sem memória privada para o µP

Page 4: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

SMP

Taxonomia de Flynn SISD (Single Instruction Single Data) SIMD (Single Instruction Multiple Data) MIMD (Multiple Instruction Multiple Data) MISD (Multiple Instruction Multiple Data)

SIMD: típico de processamento paralelo Elementos idênticos

Mesmo programa em todos os µP

Algoritmos: O( O(single) / núm µP)

Page 5: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Algumas Topologias SIMD

Anel Grade 16 nós

Rede ômega

n-cubo (n=3)

Page 6: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

NUMA

Non-Uniform Memory Access Tempo de acesso à memória

Varia conforme a localização do dado

Um µP pode ter vantagens sobre outro

Típico de “multiprocessamento” Uma placa, mais de um chip

Rede de memória compartilhada distribuída Load/Store remotos: menos overhead que

send/receive

Page 7: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Exemplo de NUMA

Cada CPU tem uma memória local Acesso à memória de outro nó:

Indireto, via barramento Bem mais lento que acesso local

Page 8: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Cluster

Tipicamente, várias placas mãe Conexão via bus local ou rede

As placas possuem memórias privadas Comunicação via mensagens, usualmente

MotherBoard MotherBoard

MotherBoard MotherBoard MotherBoard

Bus Local ou Rede

Page 9: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Coerência de Cache

Quando um µP altera um dado, outro µP pode estar com uma cópia antiga

Problema de consistência dos dados

Protocolo MESI Modified, Exclusive, Shared, Invalid

Page 10: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Exemplo com Memória Compartilhada

sum[Pn] = 0;for (i = 1000*Pn; i < 1000*(Pn+1); i = i + 1)  sum[Pn]=sum[Pn]+A[i];/* soma áreas atribuídas*/

half = 100; /* 100 processadores */do{  synch(); /* espera conclusão da soma parcial */  if (half%2 != 0 && Pn == 0)    sum[0] = sum[0] + sum[half­1];    /* soma condicional necessária quando half é      ímpar; Processor0 obtém elemento ausente */  half = half/2; /* linha divisora ­ quem soma */  if (Pn < half)     sum[Pn] = sum[Pn] + sum[Pn+half];}while (half == 1); /* soma final em Sum[0] */

Page 11: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Exemplo com Troca de Mensagens

sum = 0;for (i = 0; i<1000; i = i + 1)  sum = sum + A1[i]; /* soma os arrays locais */

limit = 100; half = 100; /* 100 processadores */do{  half = (half+1)/2; /* linha divisória entre                             send e receive */  if (Pn >= half && Pn < limit)     send(Pn – half, sum);  if (Pn < (limit/2))     sum = sum + receive( );  limit = half; /* limite superior emissores */}while (half == 1); /* sai com a soma final */

Page 12: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Processador Cell (derivado do PowerPC)

Usado em videogames e supercomputação PPE: processador genérico, controla os outros SPE: processadores específicos, subtarefas

Page 13: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Multithreading

Um processo é um programa Memória privada, comunicação com outros

processos (IPC) “complexa” Vários processos simultâneos num Sist. Op.

Uma thread é um “processo light” Um processo pode ter várias threads Todos acessam a mesma área de memória Comunicação mais fácil Podem ser executadas em simultâneo

Várias formas de multihtreading (SW, HW)

Page 14: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Suporte do µP a Multithreading

Page 15: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

No Meu Laptop!

Intel Core i5-460M

Dois núcleos no encapsulamento (dois µP)

Intel Hyperthreading: Multithreading SMT Tanto Windows como Linux enxergam 4

processadores No chaveamento, o processo/thread vai para o

processador mais desocupado Threads são praticamente processos (Linux) Duas threads de um programa não

necessariamente acessam a mesma cache!

Page 16: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Benchmarking

Desempenho agora depende de: Quantidade de processadores Escalabilidade do algoritmo

Problema divisível? Memória compartilhada

Sistema operacional vs Processador vs Algoritmo Velocidade? Consumo? Trade off?

EEMBC (embassy) Consórcio para benchmarking de sistemas

embarcados

Page 17: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Dimensionamento vs. Algoritmo

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1Coluna 2Coluna 3

Page 18: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Dimensionamento vs. Processador

Benchmarks: coleção de tarefas Desempenho depende também do

processador!

Page 19: New Patterson & Hennessy – Capítulo 9 Arquitetura e Organização … · 2015. 2. 22. · processadores No chaveamento, o processo/thread vai para o processador mais desocupado

Futuro

A Intel e a Universidade da Califórnia prevêem aumento significativo

Centenas ou até milhares (!) de cores num PC comum

Exigirá algoritmos especializados Limites inerentes de paralelização?

A lei de Amdahl não tem extensão clara