Buscar

aula17



Continue navegando


Prévia do material em texto

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
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
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
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
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?
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)
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
Taxonomia de Flynn
https://en.wikipedia.org/wiki/Flynn%27s_taxonomy
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
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
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
Multiprocessadores com memória 
compartilhada centralizada
• Configuração do Intel X7350 quad-core (Tigerton)
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
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
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
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
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