historico do desenvolvimento computacional do brams

28
HISTORICO DO DESENVOLVIMENTO COMPUTACIONAL DO BRAMS Jairo Panetta ITA/IEC PETROBRAS/E&P BMFBovespa CPTEC, 21/03/2016

Upload: phamtu

Post on 10-Jan-2017

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: historico do desenvolvimento computacional do brams

HISTORICO DO DESENVOLVIMENTO

COMPUTACIONAL DO BRAMS

Jairo Panetta

ITA/IECPETROBRAS/E&P

BMFBovespa

CPTEC, 21/03/2016

Page 2: historico do desenvolvimento computacional do brams

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

Page 3: historico do desenvolvimento computacional do brams

Necessidade de Paralelismo

2000 1 proc 355 s/dia

Page 4: historico do desenvolvimento computacional do brams

2004 8 proc 23 s/dia

Necessidade de Paralelismo

Page 5: historico do desenvolvimento computacional do brams

2007 63 proc 12 s/dia

Necessidade de Paralelismo

Page 6: historico do desenvolvimento computacional do brams

2010 1752 proc 4 s/dia

Necessidade de Paralelismo

Page 7: historico do desenvolvimento computacional do brams

BRAMS: FINEP 2002 a 2006

brams.cptec.inpe.br

Page 8: historico do desenvolvimento computacional do brams

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

Page 9: historico do desenvolvimento computacional do brams

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

Page 10: historico do desenvolvimento computacional do brams

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

Page 11: historico do desenvolvimento computacional do brams

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

Page 12: historico do desenvolvimento computacional do brams

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

Page 13: historico do desenvolvimento computacional do brams

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

Page 14: historico do desenvolvimento computacional do brams

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

Page 15: historico do desenvolvimento computacional do brams

Diagnóstico

• Mestre utiliza tempo em excesso

• Estrutura mestre-escravo impede escalabilidade

• Solução: eliminar mestre-escravo; todos osprocessos computam

Page 16: historico do desenvolvimento computacional do brams

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

Page 17: historico do desenvolvimento computacional do brams

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

Page 18: historico do desenvolvimento computacional do brams

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

Page 19: historico do desenvolvimento computacional do brams

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

Page 20: historico do desenvolvimento computacional do brams

Após 3 meses de trabalho

WSCAD-2012

Page 21: historico do desenvolvimento computacional do brams

Tempo de Execução Após Redução de Memória

WSCAD-2012

Page 22: historico do desenvolvimento computacional do brams

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

Page 23: historico do desenvolvimento computacional do brams

Tempo de Execução Otimizado

WSCAD-2012

Page 24: historico do desenvolvimento computacional do brams

Eficiência Paralela

WSCAD-2012

Escalabilidade ratificada no Santos Dumont até 13.000 núcleos

Page 25: historico do desenvolvimento computacional do brams

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

Page 26: historico do desenvolvimento computacional do brams

Paralelismo Hibrido: Advecção de Escalares em OpenMP

Page 27: historico do desenvolvimento computacional do brams

Paralelismo Hibrido: Advecção de Escalares na GPU

Page 28: historico do desenvolvimento computacional do brams

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