Como rodar o benchmark MOD1 - BRAMS 6.0
O MOD1 é o modelo BRAMS 6.0. Ele representa o legado de modelos do INPE e deverá ser usado para avaliar a capacidade do sistema de supercomputação ofertado pela empresa/vendedor em resposta da RFI. Ele roda o modelo operacional do CPTEC, com 8km de resolução horizontal, para toda a América do Sul e parte do Caribe.
Baixando os dados
Para efeito de fazer os testes de benchmark exigidos você deve baixar os seguintes arquivos:
Arquivo | Link | Descrição | Tamanho |
---|---|---|---|
bm-brams-basic.xz | http://ftp.cptec.inpe.br/pesquisa/bramsrd/toEgeon/bm/bm-brams-basic.xz | Contém os namelists (RAMSIN), tabelas, arquivos de configuração | 370MB |
bm-brams-data.xz | http://ftp.cptec.inpe.br/pesquisa/bramsrd/toEgeon/bm/bm-brams-data.xz | Contém os dados para uma rodada do dia 15/Maio/2022 | 34GB |
bm-brams-datafix.xz | http://ftp.cptec.inpe.br/pesquisa/bramsrd/toEgeon/bm/bm-brams-datafix.xz | Contém dados fixos (topografia, vegetação, NDVI, etc) | 7GB |
bm-brams-reference.xz | http://ftp.cptec.inpe.br/pesquisa/bramsrd/toEgeon/bm/bm-brams-reference.xz | Contém as saídas de referência para a rodada do dia em formato GRADS/CTL | 132GB |
Descompate cada arquivo. Será criado uma pasta chamada bm contendo os dados necessários para a rodada.
Rodando o modelo
O modelo BRAMS é executado em 3 fases: MAKESFC, MAKEVFILE e INITIAL. Para efeito do teste de benchmark só será necessário rodar e computar o tempo da última fase, a INITIAL. Essa fase lê os arquivos gerados nas fases anteriores (surface e vfile) e executa a integração no tempo. Esses arquivos já estão disponíveis no pacote (bm-brams-data.xz) baixado permitindo que se rode apenas a fase INITIAL.
Deve-se atentar ao fato que os arquivos gerados na fase anterior estão em formato nativo do BRAMS, chamado 'vformat' (vfm) e tem em sua base caracteres de texto (ASCII). Portanto não são incompatíveis para máquinas big-endian ou little-endian.
Já os arquivos produzidos pelo modelo são escritos em formato binário e usam o GRADS cujo formato é descrito em GrADS Gridded Data
Deve-se estar atento a esse fato nas comparações entre os dados produzidos na rodada e os dados de referência baixados (bm-brams-reference.xz) pois, dependendo da máquina, os dados podem estar em formatos distintos.
Dentro do diretório criado, pasta bm, encontram-se alguns arquivos importantes e exemplos de scripts de submissão do modelo.
Arquivo/diretório | Informação |
---|---|
tables | Contém as tabelas e arquivos extras lidos pelo modelo |
variables.csv | Contém a lista de variáveis disponíveis para essa versão do modelo |
RAMSIN_BASIC_SFC_2022051500 | Namelist necessário para a rodada da fase MAKESFC (desnecessária em caso de rodar apenas INITIAL) |
RAMSIN_BASIC_VFL_2022051500 | Namelist necessário para a rodada da fase MAKEVFILE (desnecessária em caso de rodar apenas INITIAL) |
RAMSIN_BASIC_INI_2022051500 | Namelist necessário para a rodada da fase INITIAL (será usado sempre) |
RAMSIN_ADVANCED_2022021400 | Namelist extra usado para todos os casos e contém informações importantes para os parâmetros avançados de rodada |
brams60-oper_2022051500_sfc.sbatch | Script de submissão exemplo da fase MAKESFC usando SLURM e usado para testar a configuração do modelo (desnecessária em caso de rodar apenas INITIAL) |
brams60-oper_2022051500_vfl.sbatch | Script de submissão exemplo da fase MAKEVFILE usando SLURM e usado para testar a configuração do modelo (desnecessária em caso de rodar apenas INITIAL) |
BRAMS.INI.2022051500.sbatch | Script de submissão exemplo da fase INITIAL usando SLURM e usado para testar a configuração do modelo. Esse deve ser usado sempre. |
Devem ser disparados simultâneamente 20 (vinte) instâncias do modelo BRAMS para efeito de avaliação do benchmark e 4 (quatro) instâncias do modelo MPAS. Para o MPAS o procedimento de rodada está descrito em outro documento. Eles devem rodar em uma janela máxíma de 2 (duas) horas. Para isso é necessário ajustar o diretório onde os dados de cada rodada devem ser escritos para que não haja sobreposição de dados. Antes de mais nada faça 20 scripts de submissão distintos e 20 namelists diferente baseados no usado para a fase INITIAL. Para o ajuste dos diretórios é necessário editar o namelist RAMSIN_BASIC_INI_2022051500, na seção POST, e alterar a linha:
GPREFIX = './2022051500/dataout/POST/brams-ams8km',
Aponte a saída em cada Namelist para um diretório distinto ou para um prefixo diferente evitando assim a sobreposição.
Depois de ajustados basta submeter as 20 (vinte) instâncias do modelo (e também as 4 do MPAS) escolhendo a quantidade de núcleos (cores) adequado para uma janela de 2 horas.
Ao final da rodada, cada instância vai produzir uma informação no final do log produzido. O log é a saida do modelo que pode ser em tela ou em arquivo dependendo da forma de submissão. A mensagem tem o seguinte formato:
Notice.! === Time integration ends; Total run time = 6440.2 [s]
No caso exemplo acima o modelo fez toda a integração em um tempo de 6440seg ou 1h47min20seg o que demonstra que coube em uma janela de 2 horas.
Observando as saídas e fazendo a comparação
Os dados de saída, em formato GRADS, são escritos no diretório/arquivos apontados em GPREFIX.
A área da previsão para a rodada do modelo é mostrada na figura:
Para efeito de comparação use os dados de referência disponíveis no arquivo bm-brams-reference.xz para uma mesma data e horário. O GRADS permite que sejam carregadas mais de um dado binário e permite comparações entre eles. As comparações podem ser feitas por erro absoluto ou plotando-se uma figura como a de cima (shaded) e com a outra usando isolinhas (contour) por cima. Assim é possível observar os deslocamentos espaciais dos resultados.
Verifique em epecial a variável de temperatura (TEMPC) pois ela é visivelmente afetada por variações nas opções de compilação, diretivas de otimização, etc.
Abaixo um exemplo onde mostra-se um arquivo de referência (shaded) e sobre ele um arquivo de comparação (contour). Observe que nesse caso exemplo os modelos estão coerentes nos resultados.
Diferenças pequenas causadas por otimizações, epsilon de máquina diferentes e outras são admissíveis desde que não prejudiquem substancialmente os resultados.