210 likes | 462 Views
Multithreading e multiprocessamento. Multithreading simultâneo. Thread é um trecho de instruções de um programa Comparação: Superescalar sem suporte para multithreading Superescalar com multithreading grosso Superescalar com multithreading fino Superescalar com multithreading simultâneo.
E N D
Multithreading simultâneo • Thread é um trecho de instruções de um programa • Comparação: • Superescalar sem suporte para multithreading • Superescalar com multithreading grosso • Superescalar com multithreading fino • Superescalar com multithreading simultâneo
Execução de Threads em paralelo Slots de emissão (despacho) tempo Horizontal – capacidade de emissão de instrução a cada ciclo Vertical – sequência de ciclos de clock Caixa branca – slot de emissão não usado naquele ciclo de clock Cores diferentes de branco – threads diferentes
Speedup no Power5 com e sem SMT SPECint = 1,23 SPECfp SPECfp = 1,16 SPECint perda ganho
Taxonomia das arquiteturas paralelas(Flynn, 1966) • SISD – fluxo de instrução único, fluxo de dados único • SIMD – fluxo de instrução único, fluxo de dados múltiplo • MISD – fluxo de instrução múltiplo, fluxo de dados único • MIMD – fluxo de instrução múltiplo, fluxo de dados múltiplo
MIMDs (Multiprocessadores) • Os MIMDs oferecem flexibilidade. Focaliza alto desempenho, para uma ou várias aplicações, executando muitas tarefas simultaneamente. • Podem se basear nas vantagens de custo-desempenho dos processadores de prateleira – os mesmos processadores usados nas estações de trabalho e servidores. • Os chips multicore aproveitam o investimento de projeto de um núcleo (core) de um processador fazendo a replicação.
Desafios do processamento paralelo • Queremos alcançar um ganho de velocidade de 80 com 100 processadores. Que fração da computação original pode ser sequencial?
Latência de acesso remoto à memória • Supor uma aplicação executada em um multiprocessador com 32 processadores, que possui tempo de 200 ns para memória remota. • Considerar que todas as referências, exceto às referentes à comunicação, atingem a memória local. • Os processadores são protelados numa solicitação remota, e a taxa de clock é de 2GHz. • Se o CPI de base (considerando que todas as referências atingem o cache) é 0.5, quanto mais rápido é o multiprocessador se não houver comunicação versus se 0.2% das instruções envolvem uma referência de comunicação remota? Solução: CPI = CPI base + Taxa de solicitação remota x Custo de solicitação remota = 0.5 + 0,2% x Custo de solicitação remota Portanto CPI = 0.5 + 0,8 =1.3 e o speedup = 1.3/0.5 = 2.6.
Multiprocessador Simétrico (Symmetric Multiprocessor - SMP) Todos os processadores são iguais Na falha de um, um outro processador pode substitui-lo Usa sincronismo por memória compartilhada centralizada
CPU de um único thread RAM - quatro programas em execução Front end – busca até 4 instruções paralelas 7 Pipelines, sendo apenas o programa de cor vermelha em execução Nota-se os espaços em branco dos estágios pipeline ociosos
Single Threaded SMP (Symmetric Multiprocessor) Os diferentes programas são executados em CPUs distintos. Programa vermelho numa CPU amarelo em outra
Superthreading ou multithreading • CPU com capacidade para executar mais de um thread simultaneamente, • porém, cada estágio do pipeline deve conter instruções de apenas um thread • Não se pode emitir instruções de threads distintos num mesmo instante
Simultaneous multithreading (SMT)ou Hyper-threading (HT) • Não existe restrição de • emissão de instruções • para threads diferentes • em cada ciclo de clock. • Compara-se ao single-threaded SMP Single-threaded SMP
Chips de um único CORE SMT Superescalar
Processadores Multi-Core • Um único chip com múltiplos cores (CPUs), cada um executando threads distintos como em single-threaded SMP • Compatível em softare a uma arquitetura SMT porém tecnologicamente mais interessante, • pois pode ser usada uma tecnologia que consome menos energia, e o desempenho aumenta com o número de CORES.