introdução ao processamento de alto desempenho …stephan/cursopad-3.pdf10 introdução ao...

26
Introdução ao Processamento de Alto Desempenho (PAD) Celso L. Mendes / Stephan Stephany LAC /INPE Email: [email protected]

Upload: others

Post on 21-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Introdução ao Processamento de Alto

Desempenho (PAD)

Celso L. Mendes / Stephan StephanyLAC /INPE

Email: [email protected]

Page 2: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Estrutura do Minicurso • 4 aulas em 3 dias

• 18-19-20 fevereiro 2020 10:20hs – 12:00hs• Material: notas de aula, capítulo do livro, referências• Material auxiliar de apoio: www.lac.inpe.br/~celso/elac19

• Instrutor: Stephan Stephany • Email: [email protected] ([email protected])• LAC, sala 12, fone 3208-6548• Currículo Lattes: http://lattes.cnpq.br/9051364483671452• Currículo Lattes: http://lattes.cnpq.br/1446664587151293

2Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 3: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Estrutura do Minicurso • Aula 3

4. Arquiteturas para PADi. Hierarquia de Memória

ii. Sistemas Paralelos de Memória Compartilhada

iii. Sistemas Paralelos de Memória Distribuída

iv. Aceleradores

3Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 4: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Arquiteturas para PAD • Muitas vezes: extensões de arquiteturas tradicionais

• Sistemas mais antigos• Arquiteturas vetoriais (como no Cray-1)

• Sistemas modernos• Arquiteturas paralelas

• Visão da memória: compartilhada × distribuída• Aceleradores

• Caches para melhor acesso à memória• Tanto para sistemas paralelos como sequenciais

4Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 5: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Hierarquia de Memória • Motivação: gap entre velocidades (processador × memória)

5Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 6: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

• Solução de Compromisso• Criar memória cache entre CPU e memória principal• Características

• Velocidade próxima à da CPU• Contém sub-conjunto dos dados

da memória principal• Estruturada em blocos (linhas)• Controle feito por hardware

• Várias políticas de carregamento,

colocação/substituição de conteúdo

Hierarquia de Memória (cont.)

6

CPU

Memória Principal

Cache

Introdução ao Processamento de Alto Desempenho – PADCelso L. Mendes (LAC/INPE)

Page 7: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

• Estrutura mais geral: múltiplos níveis de cache

Hierarquia de Memória (cont.)

7

Velocidade

Capacidade

Introdução ao Processamento de Alto Desempenho – PADCelso L. Mendes (LAC/INPE)

Page 8: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Hierarquia de Memória (cont.)

• Efetividade da cache: Princípios da Localidade

• Localidade Temporal• Se um dado é acessado, deverá ser acessado novamente em futuro

próximo

• Localidade Espacial• Se um dado é acessado, dados próximos em memória deverão ser

acessados em futuro próximo• Razão para estruturar a cache em blocos (linhas)

• Ambos os princípios são observados na prática• Caches existem em todos os sistemas atuais

8Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 9: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Hierarquia de Memória (cont.)

• Processadores Modernos• Um ou mais níveis de cache são internos ao chip da CPU

• Velocidade interna bem maior que a externa

• Pode haver caches separadas para dados e instruções• Em geral, caches de instruções são menores

• Otimização: instruções específicas de pré-carga (prefetch)

• Possível problema: consistência dos dados em cache• Exemplo: periféricos ligados diretamente à memória podem atualizar a

memória em posições que estão na cache• Solução: hardware de monitoramento, invalidação dos dados em cache

no caso de atualizações da memória

9Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 10: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Arquiteturas para PAD • Sistema paralelo: múltiplas CPUs

• Estruturas de memória possíveis• Memória compartilhada

• Todas as CPUs têm acesso a toda a memória• Número de CPUs limitado na prática

• Memória distribuída• Cada CPU só tem acesso à sua memória local• Facilmente expandível, programação mais complexa

10Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 11: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Sistemas de Memória Compartilhada

• Estrutura Típica: Multiprocessador

11Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 12: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Sistemas de Memória Compartilhada

• Convenção: Multiprocessadores Simétricos (SMP)• Todas as CPUs têm a mesma visão da memória

• Conflitos de acesso à memória são possíveis• Limite prático ao número máximo de CPUs

• Variações na estrutura de caches• Algumas caches podem ser internas às CPUs• Outras caches podem ser compartilhadas por mais de uma CPU

• Problema sério de consistência das caches• Solução Tipica: hardware de monitoramento e invalidação• Efeito colateral: tráfego adicional no barramento

12Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 13: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Sistemas de Memória Compartilhada

• Comunicação entre processadores• Realizada através da memória compartilhada (rápida)• Acessos simultâneos podem ser um problema• Em geral, há supporte de hardware ou de software para disciplinar

acessos simultâneos à mesmo posição de memória

• Variações de organização• Pode haver vários barramentos, cada um com CPUs e memórias

• Sistema não é mais SMP: memórias próximas e distantes• NUMA: Non-Uniform Memory Access• Em geral, alocação das CPUs é feita pelo Sistema Operacional

13Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 14: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Sistemas de Memória Distribuída

• Estrutura Típica: Multicomputador

14

Nó SMP

Introdução ao Processamento de Alto Desempenho – PADCelso L. Mendes (LAC/INPE)

Page 15: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Sistemas de Memória Distribuída

• Multicomputadores – características principais• Cada CPU só tem acesso direto à memória de seu nó• Em cada nó podem existir periféricos diversos• Cada nó tem uma imagem do Sistema Operacional• Trocas de dados entre processadores:

• Mesmo nó: através da memória compartilhada• Nós distintos: troca de mensagens

• Em sistemas de grande porte: diversos tipos de nós• Exemplo: Nós computacionais, nós de E/S, nós de login, etc.• Em geral, uso dos nós computacionais é exclusivo por job• Acesso de fora pode ser limitado a alguns nós

15Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 16: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Sistemas de Memória Distribuída

• Redes de Interconexão• Fornecem conectividade de um nó a qualquer dos outros• Vários tipos de topologias possíveis

• Compromisso entre facilidade de expansão do sistema e menor distância entre os nós

• Objetivos típicos:• Diminuir a latência – tempo de acesso entre dois nós• Aumentar a largura de banda – capacidade de tráfego

• Capacidade de redundância e reconfiguração é importante

16Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 17: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Sistemas de Memória Distribuída

• Redes de Interconexão – Exemplo: Gemini (Cray XE/XK)• Torus 3-D; roteamento: X, Y, Z• Dois nós por roteador Gemini

• Coordenada X-Y-Z associada ao nó

• Rotas fixas entre dois nós A e B• Capacidade de warmswap

• Reconfiguração da rede sem

reboot do Sistema

• Múltiplos tipos de tráfego• Proc/Proc, E/S, WAN, etc• Uso compartilhado da rede

17

Y

X

Z

InterconnectNetwork

Introdução ao Processamento de Alto Desempenho – PADCelso L. Mendes (LAC/INPE)

Page 18: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Aceleradores• Objetivo

• Complementar CPU de propósito geral com maior capacidade de cálculos numéricos

• Longo histórico• Co-processadores aritméticos, DSPs, etc.

• Esquema predominante• CPU é usada para programação, coordenação da execução• Acelerador opera sobre partes críticas da tarefa

• Tipos de aceleradores: vários!

18Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 19: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Aceleradores (1): GPU• Graphics Processing Unit

• Inicialmente criada para processar exclusivamente gráficos• Mercados de massa: placas de video de PCs, consoles de jogos

• Preço accessível, devido à economia de escala• Difícil programação, tarefa para especialistas• Primeiros modelos: ponto-flutuante em precisão simples

• GPGPU: General Purpose GPUs• Possibilidade de uso em aplicações de PAD• Ponto-flutuante em precisão dupla• Esforço para facilitar as técnicas de programação

19Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 20: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

GPU (cont.)• GPU – Exemplo: Nvidia K40

• Mais de 7.1 bilhões de transistores• Relógio: 745 MHz• 15 “processadores” SMX, 192 núcleos/processador

• 2880 núcleos no total

• Threads são agrupados em conjuntos de 32 (warp)• Desempenho: mais que 1 Tflops efetivos, em precisão dupla

• 80% do desempenho de pico

• 6 canais de acesso à memória de 64 bits cada• Hierarquia de memória

• cache L1: em cada processador SMX• cache L2: compartilhada• memória principal (externa) DRAM, com ECC opcional

20Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 21: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

GPU (cont.)• Nvidia K40 – Diagrama de Blocos

21Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Processador SMX (15)

Cache L2

Cache L1

Control.Memória (6)fonte: Nvidia

Page 22: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

GPU (cont.)• Nvidia K40 – Proc. SMX

22Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Núcleos (192)

Cache L1

fonte: Nvidia

Page 23: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Aceleradores (2): Proc. Many-Core

• Extensão de multi-core

• Princípios• Conjunto de núcleos simples, na mesma pastilha• Comunicação entre núcleos é interna (rápida)• Número de núcleos bem mais alto que o usual

• Exemplo: Intel MIC – Many-Integrated-Cores (Xeon-Phi)• Protótipo: Knights Ferry: 32 núcleos x86/Pentium• 1a geração: Knights Corner: ~60 núcleos+Vector Unit, Tianhe-2• 2a geração: Knights Landing: 72 núcleos, func. autônomo• 3a geração: Knights Hill: ???

23Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

Page 24: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Processador Many-Core (cont.)

• Intel Xeon-Phi – 1a Geração

24Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

fonte: Intel

Page 25: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Processador Many-Core (cont.)

• Intel Xeon-Phi – Arquitetura Interna

25Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)

fonte: Intel

Page 26: Introdução ao Processamento de Alto Desempenho …stephan/CursoPAD-3.pdf10 Introdução ao Processamento de Alto Desempenho – PAD Celso L. Mendes (LAC/INPE) Sistemas de Memória

Sistemas com Aceleradores

• Estrutura Típica

26Introdução ao Processamento de Alto Desempenho – PAD

Celso L. Mendes (LAC/INPE)