new patterson & hennessy – capítulo 9 arquitetura e organização … · 2015. 2. 22. ·...
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/10.jpg)
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[half1]; /* 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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/612885c3e0097c407a6ec98d/html5/thumbnails/19.jpg)
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