Multi-processamento Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores Arquitecturas MIMD de memória distribuída Massive Parallel Computers Sistemas distribuídos
Ainda os GPUs Intel Larrabee Arquitectura baseada em cores x86 Extendidos com funções específicas de GPUs Sem execução fora de ordem cores mais pequenos Desenho inspirado no Cell CPUs ligados em anel Comunicação feita através de memórias L2 coerentes Disponível em 2009? 2010? Arquitectura de Computadores (2008/2009): Multi-processamento 776
Multi-cores heterogéneos CPUs compostos por cores com funcionalidades distinctas Conceito introduzido pela IBM com o processador Cell A AMD está a desenvolver o Fusion Arquitectura de Computadores (2008/2009): Multi-processamento 777
Cell (IBM, Sony e Toshiba) Processador com: 1 Power Processor Element (PPE) PowerPC que faz o processamento principal Vários Synergistic Processor Element (SPE) processamento SIMD LS Memória local Usado em máquinas IBM e na PlayStation 3 Arquitectura de Computadores (2008/2009): Multi-processamento 778
Cell Arquitectura interna Arquitectura de Computadores (2008/2009): Multi-processamento 779
Cada SPE contem: Um SPU Cell O SPU Com um ISA especializado composto essencialmente por instruções SIMD 256K de memória Uma unidade de DMA Quase toda a comunicação entre SPEs e entre o PPE e qualquer SPE é feita por DMA A excepção são umas mailboxes (caixas de correio) com pouca capacidade que permitem apenas o envio de dados até 32 bits Os SPUs estão ligados por dois bus em anel Comunicação em ambas as direcções Portanto é mais rápido comunicar do SPE1 para o SPE2 do que, por exemplo, para o SPE6 Arquitectura de Computadores (2008/2009): Multi-processamento 780
Cell Programação Existe um espaço de endereçamento único para PPE e SPEs A memória de cada SPE é mapeada nesse espaço único (a memória central) Portanto toda a comunicação é feita usando endereços desse espaço A IBM oferece uma extensão à linguagem de programação C Mas a programação continua a ser de muito baixo nível Além disso não é simétrico O interface é diferente na programação do PPE e do SPE Arquitectura de Computadores (2008/2009): Multi-processamento 781
Cell Comunicação Existem 2 operações DMA possíveis: Put enviar um valor da memória de um SPE para um endereço da memória central Get ler um valor da memória de um endereço da memória central para o SPE Todas as operações de DMA são feitas pelos SPEs Uma operação DMA desencadeada pelo PPE é na realidade realizada pelo SPE alvo Arquitectura de Computadores (2008/2009): Multi-processamento 782
AMD Fusion CPUs + GPU + aceleradores especializados A ideia é especializar o computador para certas tarefas Transacções comerciais Reconhecimento de imagens Segurança Arquitectura de Computadores (2008/2009): Multi-processamento 783
Sistemas multi-processador Um sistema computacional pode ter mais do que um processador Estes podem estar organizados de diversas formas, apresentando diferentes topologias Arquitectura de Computadores (2008/2009): Multi-processamento 784
Computadores multi-processador Até 2004 todos os processadores partilhavam o Front- Side Bus O modelo em vários processadores do mesmo modelo partilham uma memória dá-se o nome de SMP (Symmetric MultiProcessing) Arquitectura de Computadores (2008/2009): Multi-processamento 785
SMP Vantagens Todos os CPU partilham o programa e os dados Fácil e eficiente partilhar as alterações nos dados O SO tira partido destas arquitecturas Desvantagens Congestionamento no acesso à memória As caches podem aliviar esse problema, mas colocam o problema das escritas poderem tornar as caches incoerentes Impraticável para grande escala (muitos CPUs) Arquitectura de Computadores (2008/2009): Multi-processamento 786
Coêrencia de caches CPU x++; Cache L1 Write-back x = 10 Cache L2 Write-back partilhada CPU y = x; Cache L1 Write-back x = 0 y = 0? Arquitectura de Computadores (2008/2009): Multi-processamento 787
Coêrencia de caches É necessário ter um protocolo para garantir a coerência das caches Estes protocolos são normalmente protocolos de invalidação que invalidam as cópias dos blocos alterados É implementado em hardware Arquitectura de Computadores (2008/2009): Multi-processamento 788
Coêrencia de caches CPU x++; Cache L1 Write-back x = 10 Cache L2 Write-back partilhada CPU y = x; Cache L1 Write-back Invalid x = 10 y = 1 Arquitectura de Computadores (2008/2009): Multi-processamento 789
Computadores multi-processador (2005) Com o surgimento dos multi-core foi necessário diminuir o congestionamento no acesso ao bus Dois FSB, cada um dedicado a dois processadores Se cada processador tiver 2 cores, são 4 cores por bus Arquitectura de Computadores (2008/2009): Multi-processamento 790
Computadores multi-processador (2007) FSB dedicados Arquitectura de Computadores (2008/2009): Multi-processamento 791
Computadores multi-processador (2009) Quick-path Proposta da Intel onde cada processador tem a sua memória dedicada Não é uma arquitectura SMP, é sim NUMA (Non- Uniform Memory Access) O tempo de acesso a memória não é uniforme Aceder a dados na memória de outro processador é mais lento do que aceder a dados na própria memória Arquitectura de Computadores (2008/2009): Multi-processamento 792
MIMD memória distribuída Cada unidade processadora tem a sua própria memória Dois tipos, por vezes difíceis de distinguir: MPP (Massively Parallel Processors) Interligação CPU Memória CPU Memória Sistemas distribuídos CPU Memória Arquitectura de Computadores (2008/2009): Multi-processamento 793
MPP O foco está na computação paralela, onde o que se pretende é ter plataformas eficientes Os vários nós estão próximos e ligados por redes muito rápidas Gigabit Infiniband Myrinet Interligação local e rápida CPU Memória CPU Memória CPU Memória Arquitectura de Computadores (2008/2009): Multi-processamento 794
Exemplo: Roadrunner Cada nó é composto por uma junção de 3 blades 2 x 2 Cells + 1 x 2 AMD Opteron Dual-core Todos com memórias dedicadas Os nós são ligados por Inifiband Arquitectura de Computadores (2008/2009): Multi-processamento 795
Exemplo: Roadrunner Arquitectura de Computadores (2008/2009): Multi-processamento 796
Sistema Distribuído O foco é mais na cooperação de vários sistemas computacionais distribuídos geograficamente na obtenção do resultado final Exemplo: Reservar uma viagem através de um browser O resultado é obtido a partir da interacção entre o cliente (o browser) e o servidor (a aplicação de reserva de bilhetes) Interligação rede normal, pode ser mesmo Internet CPU Memória CPU Memória CPU Memória Arquitectura de Computadores (2008/2009): Multi-processamento 797
Vantagens Memória distribuída Podemos conseguir arquitecturas com milhares de CPUs Permite a ligação de equipamentos fisicamente distribuídos Desvantagens Interligações lentas e de grande latência Não suportam bem muitas dependências entre dados Difícil tirar o melhor partido, usar e gerir, estes sistemas Arquitectura de Computadores (2008/2009): Multi-processamento 798
Usando arquitecturas MIMD Se o problema pode ser decomposto: Dividimos as várias sequências de instruções e dados pelos vários processadores Estes executam em paralelo Speedup será proporcional ao paralelismo conseguido Mas nem todos os problemas podem ser facilmente decompostos Existem partes que são sempre sequenciais Existem dependências entre dados (os vários componentes têm de partilhar dados ou comunicar alterações) Há que distribuir o código e os dados pelos vários processadores e coligir os resultados Etc Arquitectura de Computadores (2008/2009): Multi-processamento 799
Top500.org 1. IBM Roadrunner Pertence ao Departamento de Energia dos EUA Cores: 122240 6120 AMD Opteron 12240 cores 12240 Cell 12240 PPE cores 97920 SPE cores FLOPS (Floating-Point Operations Per Second) peak: 1465704 1º a ultrapassar a barreira do TeraFLOPS Arquitectura de Computadores (2008/2009): Multi-processamento 800
2. Jaguar Top500.org Pertence a um laboratório de investigação do Departamento de Energia dos EUA Cores: 150152 Blades Cray XT5 com cores AMD Opteron Quad-core FLOPS peak: 1381400 3. Pleiades Pertence à NASA Cores: 51200 12800 blades SGI Altix ICE 8200EX com Intel Xeon Quad-core FLOPS peak: 608829 Arquitectura de Computadores (2008/2009): Multi-processamento 801