1 / 21

Multithreading e multiprocessamento

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.

ksena
Download Presentation

Multithreading e multiprocessamento

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multithreading e multiprocessamento

  2. 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

  3. 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

  4. Speedup no Power5 com e sem SMT SPECint = 1,23 SPECfp SPECfp = 1,16 SPECint perda ganho

  5. Características de 4 processadores SMT

  6. Desempenho para SPECint2000

  7. Desempenho para SPECft2000

  8. Eficiência em termos de área de silício e potência

  9. 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

  10. 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.

  11. Multiprocessador de memóriacompartilhada centralizada

  12. Multiprocessador de memóriadistribuída

  13. 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?

  14. 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.

  15. 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

  16. 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

  17. Single Threaded SMP (Symmetric Multiprocessor) Os diferentes programas são executados em CPUs distintos. Programa vermelho numa CPU amarelo em outra

  18. 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

  19. 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

  20. Chips de um único CORE SMT Superescalar

  21. 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.

More Related