historico do desenvolvimento computacional do brams
Transcript of historico do desenvolvimento computacional do brams
HISTORICO DO DESENVOLVIMENTO
COMPUTACIONAL DO BRAMS
Jairo Panetta
ITA/IECPETROBRAS/E&P
BMFBovespa
CPTEC, 21/03/2016
Contribuições• Alvaro Luiz Fazenda• Celso Luiz Mendes• Daniel Massaru Katsurayama• Daniel Merli Lamosa• Demerval Soares Moreira• Eduardo Hidenori Enari• Eduardo Rocha Rodrigues• Eugenio Sper de Almeida• Haroldo Fraga de Campos Velho• Luiz Filipe Guedes Mota• Luiz Flavio Rodrigues• Manoel Baptista da Silva Junior• Marcelo Saraiva Limeira• Marco Dias Gubitoso• Marcio Augusto de Moraes• Paulo Yoshio Kubota• Pedro Pais Lopes• Rafael Mello da Fonseca• Roberto Pinto Souto• Saulo Rabelo Maciel de Barros• Simone Shizue Tomita• Stephan Stephany
Necessidade de Paralelismo
2000 1 proc 355 s/dia
2004 8 proc 23 s/dia
Necessidade de Paralelismo
2007 63 proc 12 s/dia
Necessidade de Paralelismo
2010 1752 proc 4 s/dia
Necessidade de Paralelismo
BRAMS: FINEP 2002 a 2006
brams.cptec.inpe.br
Objetivo 2007 - 2008
• Escalar de 100 núcleos para 1000 núcleos– Financiado CNPq, Grandes Desafios da Computação
• Objetivo CPTEC: – Aumentar a resolução do BRAMS de produção– Domínio: América Latina– Resolução: de 40km para 20km e talvez 10km
WSCAD-2009
Tempo de Execução Original, 20 km
862
474
387 388447
585
824
0
200
400
600
800
1.000
0 100 200 300 400 500 600 700 800
Escravos
Te
mp
o d
e E
xe
cu
çã
o (
s)
WSCAD-2009
7.217
4.3313.227 2.885 2.757
7.077
24.089
0
10.000
20.000
30.000
0 100 200 300 400 500 600 700 800
Escravos
Te
mp
o d
e E
xe
cu
çã
o (
s)
WSCAD-2009
Tempo de Execução Original, 10 km
Diagnóstico
• Fases com tempo crescente:– Algoritmo possui componente sequencial
• Motivo: composição e decomposição do domínio– Um processo compõe e decompõe campos
• Exemplo: Saída– Todos os processos enviam seus sub-domínios para um único
processo– O único processo compõe o domínio completo e escreve
• Solução: – Evitar composição/decomposição, quando possível– Quando impossível, minimizar componente sequencial
WSCAD-2009
Tempo de Execução Final, 20km
862
474387 388
447
585
824
712
379
262222
179 160 1440
200
400
600
800
1.000
0 100 200 300 400 500 600 700 800
Escravos
Te
mp
o d
e E
xe
cu
çã
o (
s)
BRAMS 4.2 BRAMS 5.0
WSCAD-2009
Tempo de Execução Final, 10km
7.217
4.331
3.2272.885 2.757
7.077
6.579
3.530
2.2621.734 1.460 1.225 1.0680
2.000
4.000
6.000
8.000
10.000
0 100 200 300 400 500 600 700 800
Escravos
Te
mp
o d
e E
xe
cu
çã
o (
s)
BRAMS 4.2 BRAMS 5.0
WSCAD-2009
Objetivo 2010
• Escalar de 1.000 núcleos para 10.000 núcleos– Financiado CNPq, Grandes Desafios da Computação
• Visa aumentar a escalabilidade mantendo resolução
Diagnóstico
• Mestre utiliza tempo em excesso
• Estrutura mestre-escravo impede escalabilidade
• Solução: eliminar mestre-escravo; todos osprocessos computam
Tempo de Execução Final, 20km
347
189
11085 76 68 66 64 66 63 63
0
100
200
300
400
0 480 960 1.440 1.920 2.400 2.880 3.360 3.840 4.320 4.800
Cores
Te
mp
o d
e E
xe
cu
çã
o (
s)
IJHPSA-2010
Tempo de Execução Final, 10km
2.825
228253262285320365433531754
1.428
0
1.000
2.000
3.000
4.000
0 480 960 1440 1920 2400 2880 3360 3840 4320 4800
Cores
Te
mp
o d
e E
xe
cu
çã
o (
s)
IJHPSA-2010
Objetivo 2011
• Objetivo CPTEC: – Aumentar a resolução do BRAMS de produção– Resolução 5km
• Problema: – BRAMS em 5 km usa memória em excesso– 32GB por nó limitam execuções a 8 núcleos por nó,
dos 24 núcleos disponíveis
WSCAD-2012
Uso de Memória 5 km
0,27 0,28 0,33 0,36 0,39 0,42 0,46
1,00 1,02 1,05 1,08 1,10 1,13 1,17
3,84 3,86 3,89
0
0,5
1
1,5
2
2,5
3
3,5
4
0 1.600 3.200 4.800 6.400 8.000 9.600
Mem
ória
por
pro
cess
o (G
B)
Processos MPI
20km 10km 05km
WSCAD-2012
Após 3 meses de trabalho
WSCAD-2012
Tempo de Execução Após Redução de Memória
WSCAD-2012
Diagnóstico
• Tempo da saída domina a computação:– Constante com o número de núcleos
• Solução: I/O Paralelo– MPI-I/O e HDF5
WSCAD-2012
Tempo de Execução Otimizado
WSCAD-2012
Eficiência Paralela
WSCAD-2012
Escalabilidade ratificada no Santos Dumont até 13.000 núcleos
Desde então:
• Escalar de 10.000 núcleos para 100.000 núcleos– Financiamentos IBM, INTEL, FAPESP, CNPq
• Mecanismo: Paralelismo Híbrido– MPI + OpenMP– MPI + Aceleradores
Paralelismo Hibrido: Advecção de Escalares em OpenMP
Paralelismo Hibrido: Advecção de Escalares na GPU
Conclusões
• Paralelismo para uma escala de processadores e resolução não atende a próxima escala de processadores e resolução
• Ineficiências em locais inesperados, sem “glamour” acadêmico
• Enorme esforço de desenvolvimento ao longo dos anos