Buscar

IAC12 - Paralelismo 5 - Computadores multicore

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

25/05/2020 1
Computadores 
Multicore
Slides elaborados pelo Prof. Anderson Oliveira da Silva
Paralelismo
Organização Paralela –
Computadores Multicore
Índice
 Questões sobre Desempenho de Hardware
 Questões sobre Desempenho de Software
 Organização Multicore
 Organização Multicore Heterogênea
 Arquitetura de conjunto de instruções diferentes
 CPU combinada com GPU
 Arquitetura de conjunto de instruções equivalentes
 Core de Alto Desempenho combinado com Core de Baixo 
Consumo de Energia
 Intel Core I7-990X
 ARM Cortex-A15 MPCore
Organização Paralela –
Computadores Multicore
Questões sobre Desempenho de Hardware:
 Aumento no paralelismo e na complexidade:
 Pipeline: com mais estágios, há necessidade de mais lógica, 
mais interconexões e mais sinais de controle.
 Superescalar: com mais pipelines paralelos, mais lógica é 
necessária para gerenciar os hazards e para organizar os 
recursos de instruções.
 Multithreading simultâneo (SMT): limita o número de threads 
e o número de pipelines que podem ser usados 
efetivamente.
 O aumento na complexidade para lidar com todas as 
questões de lógica de controle significa que uma grande 
área do chip é ocupada com lógica de coordenação e 
transferência de sinais.
Organização Paralela –
Computadores Multicore
Questões sobre Desempenho de Hardware
 Consumo de energia:
 Uma maneira de controlar o consumo de energia é usar 
mais área do chip para a memória cache pois os 
transistores de memória são menores e possuem uma 
densidade de energia em ordem de magnitude menor 
do que os da lógica.
Questões sobre Desempenho de Hardware
 Organizações alternativas de chip: Superescalar
Organização Paralela –
Computadores Multicore
Questões sobre Desempenho de Hardware
 Organizações alternativas de chip: Multithreading
SMT (Simultaneous multithreading)
Organização Paralela –
Computadores Multicore
 Questões sobre Desempenho de Hardware
 Organizações alternativas de chip: Multicore
Organização Paralela –
Computadores Multicore
Questões sobre 
Desempenho de 
Software
 Lei de Amdhal
 Mesmo uma quantidade 
pequena de código 
serial tem um impacto 
evidente. Por exemplo, 
para 10% de código 
serial, f=0,9 e 
speedup=4,7 para 8 
processadores.
 Softwares e SO 
precisam ser reescritos 
para que se possa 
usufruir dos benefícios
da arquitetura multicore.
Organização Paralela –
Computadores Multicore
Questões sobre 
Desempenho de Software
 McDougall, 2005
 O software normalmente 
provoca sobrecarga como o 
resultado da comunicação e 
a distribuição de trabalho 
para vários processadores e 
sobrecarga de coerência de 
cache.
 Por causa dessa 
sobrecarga, o desempenho 
alcança picos e depois 
começa a degradar 
principalmente em função 
da sobrecarga imposta ao 
SO com coordenação e 
gerenciamento.
Organização Paralela –
Computadores Multicore
Organização Multicore
 No nível mais alto de descrição, as principais 
variáveis em uma organização multicore são as 
seguintes:
 Número de cores processadores no chip.
 Número de níveis da memória cache.
 Quantidade de memória cache que é compartilhada.
 Se o multithreading simultâneo (SMT) é empregado.
 Tipos de cores.
Organização Paralela –
Computadores Multicore
Organização Multicore
 Cache L1 dedicada:
 Ex: ARM11 MPCore
Organização Paralela –
Computadores Multicore
Organização Multicore
 Cache L2 dedicada:
 Ex: AMD Opteron
Organização Paralela –
Computadores Multicore
Organização Multicore
 Cache L2 compartilhada:
 Ex: Intel Core Duo
Organização Paralela –
Computadores Multicore
Organização Multicore
 Cache L1 dedicada, L2 compartilhada e L3 
global aos cores:
 Ex: Intel Core i7
Organização Paralela –
Computadores Multicore
Organização Multicore (Tendência)
 Cache L1 dedicada a um core, L2 compartilhada 
entre 2 ou 4 cores e L3 global aos cores:
Organização Paralela –
Computadores Multicore
Multithreading Simultâneo
 Uma outra decisão de projeto organizacional em um 
sistema multicore é se os cores individuais vão 
implementar multithreading simultâneo (SMT). 
 Por exemplo, o Intel Core Duo utiliza cores 
superescalares puros, ao passo que o Intel Core i7 
faz uso de cores SMT. 
 O SMT tem o efeito de ampliar o número de threads 
em nível de hardware que o sistema multicore
suporta. 
 Um sistema multicore com quatro cores e o SMT que 
suporta quatro threads simultâneos em cada core 
parecem os mesmos em nível de aplicação. 
Organização Paralela –
Computadores Multicore
Multithreading Simultâneo
 Intel Core i7
Organização Paralela –
Computadores Multicore
Organização Multicore heterogênea
 Um caso típico para o uso de múltiplos cores é um chip 
com cores múltiplos idênticos, conhecido como 
organização multicore homogênea. 
 Para atingir melhores resultados, em termos de 
desempenho e/ou consumo de potência, uma escolha 
cada vez mais popular é a organização multicore
heterogênea, que se refere ao chip processador que 
inclui mais do que um tipo de core.
 A abordagem que recebeu mais atenção da indústria é 
o uso de cores que têm ISAs distintas.
Organização Paralela –
Computadores Multicore
Arquiteturas de conjuntos de instruções diferentes
 A tendência mais proeminente em termos de projeto 
multicore heterogêneo é o uso tanto de CPUs como de 
unidades de processamento gráfico (GPUs) no mesmo 
chip, conhecidas como Multicore CPU/GPU.
 As GPUs são caracterizadas pela capacidade de 
suportar milhares de threads de execução paralelos. 
 São bem adaptadas para as aplicações que 
processam grandes quantidades de dados vetoriais e 
matriciais.
 Uma mistura heterogênea, todavia, apresenta 
questões de coordenação e correção.
Organização Paralela –
Computadores Multicore
Arquiteturas de conjuntos de instruções 
diferentes
 Elementos de chip multicore heterogêneo:
Organização Paralela –
Computadores Multicore
Arquiteturas de conjuntos de instruções 
diferentes
 Parâmetros operacionais do processador 
multicore heterogêneo AMD 5100K:
Organização Paralela –
Computadores Multicore
Arquiteturas de conjuntos de instruções 
diferentes
 Outro exemplo comum de um chip multicore
heterogêneo é a mistura de CPUs e processadores 
digitais de sinais (DSPs), conhecidos como 
Multicore CPU/DSP.
 Um DSP proporciona sequências de instrução 
ultrarrápidas, que costumam ser usadas em 
aplicações de processamento digital de sinais com 
utilização intensiva da matemática. 
 Os DSPs são usados para processar dados 
analógicos a partir de fontes como som, satélites de 
acompanhamento das condições climáticas e 
monitores de terremotos.
Organização Paralela –
Computadores Multicore
Arquiteturas de conjuntos 
de instruções diferentes
 Chip multicore heterogêneo 
CPU/DSP da Texas Instruments
(TI) 66AK2H12:
 Utilizado em aplicações de 
ponta 
de imagens (ex: automação 
indus-
trial, vigilância por vídeo, etc).
 Fornece até 352 GMACS 
(Giga 
Operações de Multiplicar-
Acumular 
Por Segundo), 198 GFLOPS e 
19.600 MIPS.
 Esse chip T1 inclui 4 cores 
ARM
Cortex-A15 e 8 cores T1 C66x 
DSP.
Organização Paralela –
Computadores Multicore
Arquiteturas de conjuntos de instruções equivalentes
 Outra abordagem recente à organização multicore heterogênea é o 
uso de diversos cores que têm ISAs equivalentes, mas variam no 
desempenho ou na eficiência de energia. 
 O principal exemplo disso é a arquitetura big.Little da ARM, formada por 
um chip processador multicore que contém dois cores Cortex-A15 de 
alto desempenho, e ainda dois cores Cortex-A7 de baixo desempenho e 
baixo consumo de energia.
Organização Paralela –
Computadores Multicore
Arquiteturas de conjuntos de instruções 
equivalentes
 O processador A7 é projetado para a máxima eficiência 
e desempenho suficientemente alto para direcionar 
tudo, exceto os períodos mais intensos de trabalho.
Organização Paralela –
Computadores Multicore
Arquiteturas de conjuntos de instruções equivalentes O A15 é projetado para o máximo desempenho dentro da 
disponibilidade de energia dos dispositivos móveis.
Organização Paralela –
Computadores Multicore
Arquiteturas de conjuntos de instruções equivalentes
 Comparação de desempenho entre o Cortex-A7 e o A15:
Organização Paralela –
Computadores Multicore
 Exynos (Samsung)
 Todos os membros da família Exynos integram 
múltiplos processadores e a GPU 
(SoCs – System-on-Chips).
 Exynos 9820 (9 Series) – 8nm LPP FinFET
 Custom CPU Dual + Cortex-A75 Dual + Cortex-A55 Quad, Mali 
G76 MP12 GPU
 Exynos 8 Octa (8890) – 14nm FinFET
 Custom CPU 2.3GHz Quad + Cortex-A53 1.6GHz Quad, Mali T880 
MP12 GPU
 Exynos 7 Octa (7420) – 14nm FinFET
 Ciotex-A57 2.1GHz Quad + Cortex-A53 1.5GHz Quad, Mali T750 
MP8 GPU
Samsung Exynos – Samsung
URL: https://www.samsung.com/semiconductor/minisite/exynos/products/all-processors
Organização Paralela –
Computadores Multicore
 A11 Bionic (Apple)
 Design da Apple e fabricado pela TSMC (Taiwan 
Semiconductor Manufactoring Company).
 Introduzido no iPhone 8, iPhone 8 Plus e iPhone X.
 Características:
 ARMv8-A six-core CPU – 64 bits (10nm FinFET), com dois 
cores de alto desempenho de 2.39GHz (chamados Monsoon) 
e quatro cores com eficiência de energia (chamados Mistral).
 Integrado com uma GPU de três cores desenvolvida pela 
Apple.
 Integrado com um coprocessador de movimento (M11 Motion 
Coprocessor)
iPhone X Benchmarks – Geekbench Browser
URL: http://browser.geekbench.com/ios_devices/52
Apple 2017: The iPhone X (Ten) Announced – AnandTech
URL: https://www.anandtech.com/show/11835/apple-2017-the-iphone-x-ten
Organização Paralela –
Computadores Multicore
Intel Core i7-990X
 Diagrama de bloco:
192bits * 1,33 GT/s = 31,92 GB/s Unidirecional: 16bits * 6,4 GT/s = 12,8 GB/s
Bidirecioonal: 32bits * 6,4 GT/s = 25,6 GB/s
Organização Paralela –
Computadores Multicore
 ARM Cortex-A15 
MPCore
 Diagrama de bloco:
 O Controlador de 
Interrupção Genérico
(GIC) distribui as 
interrupções para os 
cores.
 Cache L1 dedicada
para cada core.
 Cache L2 
compartilhada
entre os cores.
 Unidade de Controle 
de Monitoração (SCU –
Snoop Control Unit) 
mantém a coerência
entre as caches L1/L2.
Organização Paralela –
Computadores Multicore
Detectando o número de processadores 
disponíveis nos sistemas UNIX:
 sys/sysinfo.h: get_nprocs_conf
 Retorna o número de processadores configurados no 
sistema.
extern int get_nprocs_conf (void);
 sys/sysinfo.h: get_nprocs
 Retorna o número de processadores disponíveis no 
sistema.
extern int get_nprocs (void);
Organização Paralela –
Computadores Multicore
Detectando o número de processadores disponíveis nos 
sistemas UNIX:
 Exemplo: get_nprocs_v1.c
#include <stdio.h>
#include <sys/sysinfo.h>
int main(int argc, char *argv[])
{
printf("This system has %d processors configured and "
"%d processors available.\n",
get_nprocs_conf(), get_nprocs());
return 0;
}
$ gcc -o get_procs_v1 get_procs_v1.c
$ ./get_procs_v1
This system has 16 processors configured and 16 processors available.
Organização Paralela –
Computadores Multicore
 Detectando o número de processadores 
lógicos disponíveis no processador Intel:
 Instrução: CPUID
 CPUID_Level: 11 (0Bh)
 CPUID Leaf: 1 (01h)
 cpuid.h:
__cpuid_count(11, 1, eax, ebx, ecx, edx);
O número de processadores lógicos é retornado no 
registrador EBX e o ID do processador que 
executou a chamada é retornado no registrador 
EDX.
Organização Paralela –
Computadores Multicore
Detectando o número de processadores lógicos 
disponíveis no processador Intel:
 Exemplo: get_nprocs_v2.c
#include <cpuid.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
unsigned int cpuid_required_level = 11, cpuid_leaf = 1, 
max_level =0, vendor_id =0;
unsigned int eax = 0, ebx = 0, ecx = 0, edx = 0;
/* Check if extended feature information is available */
max_level = __get_cpuid_max(0, &vendor_id);
if (max_level < cpuid_required_level) {
printf("Error: cpuid does not provide cpu feature informattion.\n");
return 1;
}
Organização Paralela –
Computadores Multicore
Detectando o número de processadores lógicos 
disponíveis no processador Intel:
 Exemplo: get_nprocs_v2.c
#include <cpuid.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
………………………………………………………………………….………
__cpuid_count(cpuid_required_level, cpuid_leaf, eax, ebx, ecx, edx);
printf(“Logical Processors: %\n", ebx);
return 0;
}
Organização Paralela –
Computadores Multicore
Detectando o número de processadores lógicos 
disponíveis no processador Intel:
 Exemplo: get_nprocs_v2.c
$ gcc -o get_npprocs_v2 get_nprocs_v2.c
$ ./get_nprocs_v2
Logical Processors: 16
Organização Paralela –
Computadores Multicore
Detectando informações sobre a CPU no Linux:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 13
Model name: QEMU Virtual CPU version 2.5+
Stepping: 3
CPU MHz: 2992.644
BogoMIPS: 5985.28
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
NUMA node0 CPU(s): 0,1
Flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 
clflush mmx xsr sse sse2 syscall nx lm rep_good nopl eagerfpu pni cx16 hypervisor lahf_lm
Organização Paralela –
Computadores Multicore
Detectando informações sobre a CPU no Linux:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 94
Model name: Intel(R) Xeon(R) CPU E3-1225 v5 @ 3.30GHz
Stepping: 3
CPU MHz: 799.822
CPU max MHz: 3700.0000
CPU min MHz: 800.0000
BogoMIPS: 6624.00
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
NUMA node0 CPU(s): 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
.....................................................................................
Organização Paralela –
Computadores Multicore
Detectando informações sobre a CPU no Linux:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 63
Model name: Intel(R) Core(TM) i7-5960X CPU @ 3.00GHz
Stepping: 2
CPU MHz: 1212.773
CPU max MHz: 3500.0000
CPU min MHz: 1200.0000
BogoMIPS: 5999.98
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0-15
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
.....................................................................................
Organização Paralela –
Computadores Multicore
Detectando informações sobre a CPU no Linux:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 32
On-line CPU(s) list: 0-31Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 79
Model name: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
Stepping: 1
CPU MHz: 2544.855
CPU max MHz: 3000.0000
CPU min MHz: 1200.0000
BogoMIPS: 4190.44
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0-31
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
.....................................................................................
Organização Paralela –
Computadores Multicore
Perguntas?

Outros materiais