introdução ao processamento de alto desempenho (pad)stephan/cursopad-1.pdf · i. programação em...

45
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

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

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 (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Introdução ao Processamento de Alto

Desempenho - PADTópicos:1. Introdução

2. Breve Histórico da Área de PAD

3. Conceitos Fundamentais em PAD

4. Arquiteturas para PAD

5. Programação em PAD

6. Tendências para o Futuro

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

2

Page 3: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

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

Instrutor: Stephan Stephany LAC, sala 12, fone 3208-6548

• Email: [email protected]• CV Lattes (Celso): http://lattes.cnpq.br/9051364483671452• CV Lattes (Stephan): http://lattes.cnpq.br/1446664587151293

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

Celso L. Mendes (LAC/INPE)

Page 4: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Estrutura do Minicurso • Aula 1

1. Introdução

2. Breve Histórico da Área de PADi. Primeiras Máquinas de PAD

ii. Benchmarks

iii. Listas de Comparação de Sistemas

iv. Cenário Brasileiro de PAD

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

Celso L. Mendes (LAC/INPE)

Page 5: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Estrutura do Minicurso • Aula 2

3. Conceitos Fundamentais em PADi. Lei de Moore

ii. Pipeline e Vetorização

iii. Speedup e Eficiência

iv. Leis de Amdahl e Gustafson

v. Balanceamento de Carga

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

Celso L. Mendes (LAC/INPE)

Page 6: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

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

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

Celso L. Mendes (LAC/INPE)

Page 7: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Estrutura do Minicurso • Aula 4

5. Programação em PADi. Programação em Ambiente de Memória Compartilhada

a. Pthreads

b. OpenMP

ii. Programação em Ambiente de Memória Distribuídaa. Troca de Mensagens com MPI

b. Programação Híbrida

c. Linguagens PGAS

iii. Programação de Aceleradores

6. Tendências para o Futuro

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

Celso L. Mendes (LAC/INPE)

Page 8: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Introdução • Processamento de Alto Desempenho (PAD):

• Área da Computação: Supercomputação• Supercomputador = Sistemas com máximo de desempenho

numa certa época• Destaque crescente para PAD nos últimos anos:

1. Indústria parou de aumentar a frequência do relógio das CPUs• Consumo de energia e dissipação de calor proibitivos• Solução foi incorporar aspectos de PAD a todas as CPUs

2. PAD possibilita simulações que substituem os experimentos• Novas descobertas científicas são aceleradas!

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

Celso L. Mendes (LAC/INPE)

Page 9: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Introdução (cont.) 1. Evolução das CPUs ao longo do tempo:

9

Número de Núcleos

Consumo

Frequência

Desempenho por Núcleo

Número de Transistores

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

Page 10: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Introdução (cont.) 2. Exemplo de Simulação: dinâmica molecular

• Estudo detalhado do virus HIV-1• Grupo de biofísica da Univ. Illinois

• Simulação de maior resolução já feita• Execução no Blue Waters (Cray XE/XK)• Programa utilizado: NAMD

10

Maio/2013

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

Page 11: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Introdução (cont.) 2. Outro Exemplo de Simulação: impacto de terremotos

• Propagação de ondas após terremoto, região de Los Angeles• Comparação entre modelo antigo e novo modelo 3D

11

Modelo Novo 3DModelo Antigo

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

Page 12: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Introdução (cont.) 2. Outro Exemplo de Simulação: Previsão (Numérica) do Tempo

• Modelos globais e regionais• Executados várias vezes ao dia operacionalmente

• Previsões geram significativo impacto econômico• Influência diária na vida das pessoas

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

Celso L. Mendes (LAC/INPE)

Page 13: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Previsão Global Operacional

• Modelo: BAM (Brasil)• Resolução: 20×20 Km• 2 Execuções diárias• 24 Variáveis de saída• Previsão de até 10 diashttp://previsaonumerica.cptec.inpe.br/bam

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

Celso L. Mendes (LAC/INPE)

Page 14: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Previsão Regional Operacional

• Modelo: WRF (EUA)• Resolução: 5×5 Km• 2 Execuções diárias• 22 Variáveis de saída• Previsão de até 3 diashttp://previsaonumerica.cptec.inpe.br/wrf

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

Celso L. Mendes (LAC/INPE)

Page 15: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Modelos Regionais • Exemplo: BRAMS (Brasil) http://brams.cptec.inpe.br/

• Resolução: 5×5 Km• Grade típica (atmosfera):

• Horizontal: 1360 × 1489 pontos (6800×7445 Km)

• Vertical: 55 níveis (800 m)• Aproximadamente 111 milhões de pontos de grade

• Timestep típico: 15 s• 240 p/ simular 1 hora, 5760 p/ 1 dia• Previsão de 3 dias: 17280 timesteps

• Dados de entrada: importados de um modelo global

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

Celso L. Mendes (LAC/INPE)

Page 16: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

BRAMS - Execução

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

Celso L. Mendes (LAC/INPE)

Leitura de Dados

Processos Dinâmicos

Processos Físicos

Escrita de Resultados

T=0

T=T+TS

Aplicados sobre toda a grade (i.e. até 111 milhões de pontos)

Implementados como subrotinas,uma rotina para cada processo,

chamadas a cada timestep

Em cada ponto da grade, algumas dezenas de variáveis são atualizadas

(ex: temperatura, umidade, etc)

Page 17: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Introdução (cont.) • PAD e Supercomputadores

• Supercomputador: Sistema de propósito geral• Máquinas especializadas em geral não são consideradas

supercomputadores

• Processamento Paralelo• Utilização de vários processadores na resolução do problema• Requer conhecimentos básicos de arquitetura, programação,

algoritmos, área(s) do problema

• Objetivos Típicos• Primário: maior desempenho possível• Secundário: produtividade de programação

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

Celso L. Mendes (LAC/INPE)

Page 18: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Introdução (cont.) • Intersecções com PAD:

• Big-Data: tratamento de grandes massas de dados• Em geral, requer processamento não-numérico

• Processamento Distribuído• Processadores geograficamente dispersos• Conectividade entre processadores pode ser variável• Permite acesso a instrumentos e dispositivos remotos

• Processamento em nuvem• Localização geográfica não é relevante• Incorporação de processadores onde estiverem disponíveis

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

Celso L. Mendes (LAC/INPE)

Page 19: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Breve Histórico da Área de PAD

i. Primeiras Máquinas de PAD

ii. Benchmarks

iii. Listas de Comparação de Sistemas

iv. Cenário Brasileiro de PAD

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

Celso L. Mendes (LAC/INPE)

Page 20: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Primeiras Máquinas de PAD

• Ambiente Acadêmico: série de sistemas Illiac• Desenvolvidos na Universidade de Illinois, EUA• Illiac-I: 1952

• 2.800 válvulas, memória: 1024 palavras de 40 bits

• Illiac-II: 1958• Sistema transistorizado, memória: 8K palavras de 52 bits

• Illiac-III: 1966• Sistema paralelo SIMD para processamento de imagens

• Illiac-IV: 1972• Primeiro sistema “maciçamente” paralelo

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

Celso L. Mendes (LAC/INPE)

Page 21: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Sistema Illiac-IV (cont.)• Principais Características do Illiac-IV

• Várias inovações tecnológicas• Circuitos integrados ECL• Memória baseada em semicondutor

• Projeto original previa 4 “quadrantes” de 64 Pes• Máquina final instalada na NASA/California

• Década de 70 nos EUA: universidades = local “turbulento”

• Sistema mais rápido do mundo para CFD, por vários anos• Vasta coleção de software parelelo criada

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

Celso L. Mendes (LAC/INPE)

Page 22: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Primeiras Máquinas de PAD

• Ambiente Industrial: Control Data Co. (EUA)• Arquiteto-chefe: Seymour Cray• Modelo CDC-6600

• Início da década de 60, processador “tipo RISC”, rápido

• Modelo CDC-7600• Final da década de 60, aperfeiçoamento do 6600

• Em 1972 Seymour Cray sai da CDC para criar a Cray Research• Primeiro modelo: Cray-1 (1976)

• Expectativa de vendas: <10 ; vendas reais ≈ 80!• Arquitetura vetorial, mas com proc. escalar rápido• Relógio: 80 MHz

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

Celso L. Mendes (LAC/INPE)

Page 23: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Sistema Cray-1 Estrutura Física:

23

77” ≈ 1.95m

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

Page 24: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Benchmarks • PAD: Proc. Alto Desempenho

• Como medir o desempenho?• Supercomputadores não são “baratos” – altos investimentos• Medições devem ser objetivas, inquestionáveis

• Benchmarks• Programas que avaliam/medem algum aspecto do sistema• Aplicações completas ou trechos críticos• Códigos devem ser amplamente disponíveis• Regras claras para execução e divulgação de resultados• Uso: comparação entre sistemas; “prova” de capacidade

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

Celso L. Mendes (LAC/INPE)

Page 25: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Benchmarks (cont.)• Exemplos

• Perfect-Club (década de 80) – coleção de aplic. científicas• SPP (Sustained Petaflop Performance) – atual• Linpack – solução de sistemas lineares densos

• Ênfase na capacidade de processamento numérico• Alternativa em andamento: HPCG (memória, interconexão)

• Livermore Loops – diversos tipos de laços• STREAM – padrões de acesso à memória• NAS Benchmarks

• Trechos extraídos de aplicações científicas reais• Várias “classes” definidas (tamanho de problema)

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

Celso L. Mendes (LAC/INPE)

Page 26: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Benchmarks (cont.)• Utilizações Típicas

• Comparação direta entre dois ou mais sistemas• Útil para ordenar os vários sistemas

• Aquisição de novos sistemas• Benchmark divulgado para possíveis fornecedores• Análise dos resultados permite avaliação objetiva• Precauções:

• Benchmark deve representar a carga de trabalho esperada• Pode ser difícil avaliar sistemas futuros (ainda não lançados)• Resultados devem ser bem verificados – garantir que são gerais

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

Celso L. Mendes (LAC/INPE)

Page 27: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Listas de Comparação de Sistemas

• Finalidade• Possibilitar comparações entre diferentes sistemas• Tornar resultados conhecidos publicamente

• Método• Definir métrica de comparação e programa de teste que avalie tal métrica• Criar regras para execução do programa de teste• Divulgar amplamente os resultados

• Perigos• Nenhuma métrica isolada é ideal• Fabricantes podem “otimizar” execução do programa de teste

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

Celso L. Mendes (LAC/INPE)

Page 28: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Listas de Comparação de Sistemas

• Unidades de Desempenho• Processamento numérico: quantidade de operações de

ponto-flutuante (precisão dupla) por segundo - Flops• MegaFlops (MF) – 106 operações/segundo• GigaFlops (GF) – 109 operações/segundo• TeraFlops (TF) – 1012 operações/segundo• PetaFlops (PF) – 1015 operações/segundo• ExaFlops (HF) – 1018 operações/segundo

• Processamento não-numérico: depende da área

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

Celso L. Mendes (LAC/INPE)

Page 29: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Lista TOP500 • Finalidade

• Listar os 500 supercomputadores mais rápidos no mundo• Foco na capacidade numérica – execução do Linpack

• Periodicidade• 2 edições por ano: Junho (ISC-Europa) e Novembro (SC-EUA)• Iniciada em 1993

• Processo de Participação• Executar o Linpack de acordo com as regras, sem mudanças• Reportar valor de Rmax produzido pelo programa

• Também deve ser reportado Rpeak – máximo teórico

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

Celso L. Mendes (LAC/INPE)

Page 30: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Lista TOP500 (nov/2019)

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

Celso L. Mendes (LAC/INPE)

Page 31: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Lista TOP500 (cont.) • Participação por países: Novembro/2018 (núm.sistemas)

• China: 227 sistemas! (EUA: 109)

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

Celso L. Mendes (LAC/INPE)

Page 32: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Lista TOP500 (cont.) • Participação por fabricantes: Novembro/2018

Número de sistemas x Desempenho agregado

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

Celso L. Mendes (LAC/INPE)

Page 33: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Lista TOP500 (cont.) • Evolução ao longo dos anos

33

Soma (desempenho agregado)

Sistema #1

Sistema #500

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

Page 34: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Lista Green500 • Finalidade

• Avaliar eficiência energética em processamento numérico• Complementar a lista Top500

• Benchmark: Linpack• Métrica: Flop/Watt• Submissão de resultados em conjunto com Top500

• Site: www.top500.org/green500

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

Celso L. Mendes (LAC/INPE)

Page 35: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Lista Green500 (cont.) • Edição mais recente: Novembro/2018 (www.top500.org/green500)

35

Posição Sistema País GFlops/Watt Energia

(KW)

1 Shoubu-B (CPU Intel + Aceler. many-core PEZY-SC2)

Japão 17,604 60

2 DGX SaturnV Volta(CPU Intel Xeon + GPU Volta Nvidia)

EUA 15,113 97

3 Summit(CPU IBM Power9 + GPU Volta Nvidia)

EUA 14,668 9.783

4 AI Bridging Cloud(CPU Intel Xeon+ GPU Volta Nvidia)

Japão 14,423 1.649

5 TSUBAME3.0(CPU Intel Xeon + GPU Pascal Nvidia)

Japão 13,704 792

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

Page 36: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Lista Graph500 • Finalidade

• Avaliar sistemas na execução de proc. não-numérico• Complementar a lista Top500

• Benchmark: Algoritmo de grafos• 3 fases: criação, busca (BFS), caminho mais curto (SSSP)

• Resultados relatados para BFS e SSSP a partir de Nov/2017

• Métrica: TEPS (“Traversed Edges Per Second”- velocidade de percorrimento das arestas do grafo)

• Tamanho do grafo: 6 classes definidas

• Site: graph500.org

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

Celso L. Mendes (LAC/INPE)

Page 37: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Lista Graph500 (cont.) • Edição mais recente (BFS): Novembro/2018

37

Posição Sistema País GTEPS

1 K Computer (Fujitsu) Japão 38.621

2 Sunway TaihuLight (NRCPC) China 23.756

3 Sequoia (BG/Q, IBM) EUA 23.751

4 Mira (BG/Q, IBM) EUA 14.982

5 SuperMUC-NG (Lenovo) Alemanha 6.279

6 JUQUEEN (BG/Q, IBM) Alemanha 5.848

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

Page 38: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Cenário Brasileiro de PAD

• Maior Sistema Brasileiro: Santos Dumont (Fabricante:Bull)

38

Local: LNCCPetrópolis/RJ

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

Page 39: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Cenário Brasileiro de PAD - LNCC

• Sistema Santos Dumont:• 504 nós com dois procs Intel-Xeon 12-núcleos (24núcleos/nó)• 198 nós com dois procs. Intel-Xeon 12-núcleos + 2 GPUs Nvidia K40• 54 nós com dois procs. Intel-Xeon 12-núcleos + 2 Intel Xeon-Phi• 1 nó com 16 procs. Intel-Xeon 15-núcleos, 6 TB de memória• Desempenho de pico agregado acima de 1.1 Petaflops• Rede de interconexão Infiniband• 3 sistemas listados na Top500 de Nov/2015, 1 em Jun/2017, nenhum hoje• Acesso: alocações disponíveis para a comunidade

• http://sdumont.lncc.br/sdumont.php?pg=sdumont#

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

Celso L. Mendes (LAC/INPE)

Page 40: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Cenário Brasileiro de PAD - CPTEC

• Sistema Tupã (CPTEC/INPE – Cachoeira Paulista)• Cray XE6 - 14 racks, instalado em 2010 (#29 no Top500)• Desempenho original de pico ≈ 250 Teraflops/s• Aplicação Principal

• Previsões de tempo e clima

• Nó computacional:• 2 x CPU Opteron Magny-cours 12 núcleos

• 24 núcleos por nó, total de30.000 núcleos

• Memória: 32 Gbytes por nó

• Não há disco local

• Status atual: 6 gabinetes desligados

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

Celso L. Mendes (LAC/INPE)

Fev/2011

Page 41: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Cenário Brasileiro de PAD - CPTEC

• Tupã - Nova Partição: XC50 (instalado em 2018)• 102 nós: 2 procs. Intel Skylakes por nó; 1 gabinete

• Núcleos: 20/chip, 40/nó• Total: 4.080 núcleos Intel • Desemp. pico: 313 Tflops/s• Nova rede: Aries

• Tupã antigo reconfigurado:• 8 gabinetes ainda em operação• 6 gabinetes desligados (reserva)• Total: ~17.800 núcleos AMD• Desemp.pico: 258 → 147 Tflops/s

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

Celso L. Mendes (LAC/INPE)

Fev/2011Set/2018

Page 42: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

CPTEC Hoje

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

Celso L. Mendes (LAC/INPE)

/stornext3.9 Pbytes (raw)29 file systems

6 x Qlogic 20 ports FC switch (8 Gbps)

8 cabinets Tape library T-Finity8000 Tapes

4 cabinetsControllers LSI 7900

13 x eslogin’s 20 x aux’s

Network 10 Gbps

Sonexion 960TB

b0

c0-0 XC50

6 Cables IB

XDP3

XDP1

XDP2

XDP0

/scratchin344 TB

/scratchout516 TB

16 Cables FC 24 Cables FC4 Cables FC

mds1/scratchin650 GB

mds2/scratchout1 TB

c0-1 c1-1 c2-1 c3-1

c0-0 c1-0 c2-0 c3-0

TUPÃc4-1

c5-1

c6-1

c4-0

c5-0

c6-0

Spare Nodes

XE6

Page 43: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

CPTEC/INPE – Outros Sistemas

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

Celso L. Mendes (LAC/INPE)

• Kerana (Cray XE6: 1 rack)• Estudos climáticos

• Cluster LAChibrido (pesquisa)

No

v/2

01

5Ref.: Prof. Haroldo F. C. Velho, LAC/INPE

Page 44: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Cenário Brasileiro de PAD (cont.)

• Eventos:• SBAC-PAD

• Simpósio anual, realizado desde 1987• Internacional desde ~2000• Setembro/2018: Lyon/França – http://avalon.ens-lyon.fr/sbac-pad/

• WSCAD• Workshop anual, nacional, junto com SBAC a cada 2 anos• Outubro/2018: São Paulo, Setembro/2019: Campo Grade

• ERAD• Escola Regional de Alto Desempenho, anual – Abril/2019: Campinas

• SBAC-L• Lista de email, não-moderada• https://listas.ufrgs.br/mailman/listinfo/sbac-l

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

Celso L. Mendes (LAC/INPE)

Page 45: Introdução ao Processamento de Alto Desempenho (PAD)stephan/CursoPAD-1.pdf · i. Programação em Ambiente de Memória Compartilhada a. Pthreads b. OpenMP ii. Programação em Ambiente

Cenário Brasileiro de PAD (cont.)

• Regional (São José dos Campos) – Cursos:• INPE: Pós-Graduação (CAP)

• Prof. Stephan Stephany – CAP-372• Prof. Haroldo C. Velho – Computação Híbrida• Prof. Celso L. Mendes – CAP-396

• ITA: Graduação/Pós-Graduação• Prof. Jairo Panetta

• Unifesp: Graduação/Pós-Graduação• Prof. Álvaro Fazenda• Profa. Denise Stringhini

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

Celso L. Mendes (LAC/INPE)