17
Arquiteturas de Computadores Fontes dos slides : Livro Patterson e Hennessy, Quantitative Approach e nas notas de aula do Prof. Yonghong Yan do curso CSCE 513 Computer Architecture Paralelismo no nível de threads

Arquiteturas de Computadores - Instituto de Computação

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arquiteturas de Computadores - Instituto de Computação

Arquiteturas de Computadores

Fontes dos slides: Livro Patterson e Hennessy, Quantitative Approach e nas notas de aula do Prof. Yonghong Yan do curso CSCE 513 Computer Architecture

Paralelismo no nível de threads

Page 2: Arquiteturas de Computadores - Instituto de Computação

Lei de Moore

Tendência a longo prazo da densidade de transistores por circuito integrado

Número de transistores / in2 dobra a cada ~ 18-24 meses

Page 3: Arquiteturas de Computadores - Instituto de Computação

O que fazer com tantos transistores? Otimização da execução de um único fluxo de instruções através

de: Pipelining

Sobrepõe a execução de várias instruções Exemplo: todas as arquiteturas RISC; Intel x86

Execução fora de ordem: Permite que as instruções ultrapassem umas às outras na ordem de

execução de acordo com dependências de código (RAW, WAW, WAR) Exemplo: todos os processadores comerciais (Intel, AMD, IBM,Oracle)

Previsão de desvios e execução especulativa: Reduz o número de ciclos de paralisação da CPU devido a desvios não

resolvidos Exemplo: (quase) todos os processadores comerciais

Page 4: Arquiteturas de Computadores - Instituto de Computação

O que fazer com tantos transistores? Processadores de múltiplas emissões:

Permitem que várias instruções iniciem a execução por ciclo de relógio

Arquiteturas superescalares (Intel x86, AMD,…) vs. VLIW Arquiteturas VLIW / EPIC:

Permitem que os compiladores indiquem instruções independentes em cada pacote emitido

Exemplo: Intel Itanium Unidades SIMD:

Permitem a expressão e execução eficientes de operações com vetores

Exemplo: VSIM, SSE - SSE4, GPU

Page 5: Arquiteturas de Computadores - Instituto de Computação

Limitações para otimizar a execução de um único fluxo de instruções Problema: dentro de um único fluxo de instruções,

não encontramos instruções independentes suficientes para executar simultaneamente devido a dependências de dados limitações da execução especulativa em muitos ramos dificuldades para detectar dependências de acesso à

memória entre as instruções (análise de alias) Consequência: número significativo de unidades

funcionais podem ficar ociosas a qualquer momento Pergunta: Podemos talvez executar instruções de

outro fluxo de instruções Outra thread? Outro processo?

Page 6: Arquiteturas de Computadores - Instituto de Computação

Copyright © 2012, Elsevier Inc. All rights reserved.

Paralelismo no nível de threads Problemas para executar instruções de vários threads ao mesmo

tempo As instruções em cada thread podem usar os mesmos registradores Cada thread tem seu próprio contador de programa

O gerenciamento de memória virtual permite a execução de várias threads e compartilhamento da memória principal

Quando alternar entre as diferentes threads: Multithreading de granularidade fina: alterna entre todas as

instruções Multithreading de granularidade grossa: alterna apenas em paradas

caras (por exemplo, falta de cache do nível 2)

Page 7: Arquiteturas de Computadores - Instituto de Computação

Potência e paralelismo no nível de instrução A frequencia do relógio da CPU começou a

não subir tão rápido a partir de 2000 Limitação de paralelismo no nível de instrução Consumo de potência e dissipação de calor

Page 8: Arquiteturas de Computadores - Instituto de Computação

Taxonomia de Flynn

https://en.wikipedia.org/wiki/Flynn%27s_taxonomy

Page 9: Arquiteturas de Computadores - Instituto de Computação

Exemplos de máquinas MIMD Multiprocessador de memória

compartilhada simétrica (SMP) Vários processadores em caixa

comunicação através de memória compartilhada

Chips multicores atuais possuem esta arquitetura

Todo processador executa uma cópia do SO

Multiprocessador de memória compartilhada Distribuída/ Não Uniforme Vários processadores

Cada um com memória local Rede escalável

“SO” extremamente leve no nó que fornece serviços simples Escalonamento / sincronização Host acessível pela rede para E / S

Cluster Muitas máquinas independentes

conectadas em rede Comunicação através de

mensagens

Page 10: Arquiteturas de Computadores - Instituto de Computação

Symmetric Multiprocessors (SMP) Pequeno número de núcleos

Normalmente oito ou menos, e não mais que 32 na maioria dos casos

Todos os processadores compartilham uma única memória e tem o mesmo tempo de acesso a ela Daí o termo simétrico.

Todos os multicores atuais são SMPs

Também chamados de multiprocessadores com acesso uniforme à memória (UMA) Todos os processadores

têm latência uniforme

Page 11: Arquiteturas de Computadores - Instituto de Computação

Multiprocessadores com memória compartilhada centralizada Processadores multinúcleo (multicore)

Normalmente conectados por um cache, Sistemas SMP anteriores eram tipicamente conectados através da

memória principal Intel X7350 quad-core (Tigerton)

Cache L1 privado: instrução de 32 KB, dados de 32 KB Cache L2 compartilhado: cache unificado de 4 MB

Page 12: Arquiteturas de Computadores - Instituto de Computação

Multiprocessadores com memória compartilhada centralizada• Configuração do Intel X7350 quad-core (Tigerton)

Page 13: Arquiteturas de Computadores - Instituto de Computação

Multiprocessadores com memória compartilhada distribuída (DSM) Grande número de processadores

64 a 1000 Memória distribuída

Memória remota vs local Latência longa vs curta

Rede de interconexão Largura de banda, topologia, etc

Acesso à memória não uniforme (NUMA) Cada processador pode possuir E / S local

Page 14: Arquiteturas de Computadores - Instituto de Computação

Multiprocessadores com memória compartilhada distribuída Reduz o gargalo de memória em comparação com

SMPs Mais difícil de programar com eficiência

Por exemplo, política do primeiro toque: o item de dados estará localizado na memória do processador que usa um item de dados primeiro

Para reduzir os efeitos do acesso não uniforme àmemória, caches são frequentemente usados ccNUMA: arquiteturas com acesso à memória não

uniforme coerente O maior exemplo atual: SGI Origin com 512

processadores

Page 15: Arquiteturas de Computadores - Instituto de Computação

Multiprocessadores com memória compartilhada SMP e DSM são todos multiprocessadores

de memória compartilhada UMA ou NUMA

Multicores são SMPs com memória compartilhada

A maioria das máquinas com várias CPUs éDSM NUMA

Page 16: Arquiteturas de Computadores - Instituto de Computação

Métrica de desempenho

Aceleração (Speedup): quanto mais rápido um problema éexecutado em p processadores em comparação com 1 processador?

Aceleração ótima: S (p) = p (aceleração linear) Eficiência Paralela: Aceleração normalizada pelo

número de processadores

Ótimo: E (p) = 1,0

Page 17: Arquiteturas de Computadores - Instituto de Computação

Desafios da programação paralela

Paralelização limitada dos programas Suponha que desejamos uma aceleração de

80 utilizando 100 processadores. Qual deve ser a fração sequencial deste programa?

0,25% pode ser sequencial