introdução ao processamento de alto desempenho (pad)stephan/cursopad-1.pdf · i. programação em...
TRANSCRIPT
Introdução ao Processamento de Alto
Desempenho (PAD)
Celso L. Mendes / Stephan StephanyLAC /INPE
Email: [email protected]
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Sistema Cray-1 Estrutura Física:
23
77” ≈ 1.95m
Introdução ao Processamento de Alto Desempenho – PADCelso L. Mendes (LAC/INPE)
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)
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)
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)
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)
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)
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)
Lista TOP500 (nov/2019)
30Introdução ao Processamento de Alto Desempenho – PAD
Celso L. Mendes (LAC/INPE)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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
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
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
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)
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)