@PhDThesis{Freitas:2021:PeOpMG,
author = "Freitas, Henrique Renn{\'o} de Azeredo",
title = "Performance optimization of the MGB hydrological model for
multi-core and GPU architectures",
school = "Instituto Nacional de Pesquisas Espaciais (INPE)",
year = "2021",
address = "S{\~a}o Jos{\'e} dos Campos",
month = "2021-01-25",
keywords = "computer systems performance, CPU/GPU, roofline model, hydrology
models, parameterization, desempenho de sistemas computacionais,
modelo roofline, modelos hidrol{\'o}gicos,
parametriza{\c{c}}{\~a}o.",
abstract = "Large-scale hydrological models are extensively used for the
understanding of watershed processes with applications in water
resources, climate change, land use, and forecast systems. The
quality of the hydrological results mainly depends on calibrating
the optimal sets of watershed parameters, a time-consuming task
that requires repeated hydrological model simulations. The
ever-growing availability of hydrometeorological data from
extensive regions also contributes to the increase in the demand
for more computational resources. The performance of optimization
methods in hydrological applications has been continuously
addressed. However, improving the performance of an application on
a modern computer requires a detailed investigation about the
interaction between the application and the underlying system, to
find the techniques that provide the best performance
improvements. This thesis aims at performance optimizations on the
well-established MGB hydrological model (simulation) and the
MOCOM-UA method (calibration) for real-world input datasets, the
Purus (Brazil) and Niger (Africa) watersheds. The optimization
strategies investigated in this thesis target state-of-the-art CPU
and GPU systems by exploiting techniques that include AVX-512
vectorization, and multi-core (CPU) and many-core (GPU)
parallelisms, to increase the usefulness of both simulation and
calibration using the MGB model. Significant speedups of up to 20×
were achieved on CPU with the proposed optimizations, while the
roofline analysis confirmed that the CPU and GPU optimizations
more effectively exploited the hardware resources, and improved
the overall performance of the MGB model. An additional
scalability analysis using a miniapp of the MGB model indicated
that speedups up to 24× (CPU) and 65× (GPU) can be achieved for
larger problem sizes. Moreover, the accuracy of the simulated
results between the nonoptimized and optimized implementations was
quantitatively evaluated, reaching maximum relative errors of
approximately 6% for discharges and objective functions. The
investigated techniques applied on the MGB model are also valid
for other scientific applications where a few key parts dominate
the execution time when processing a large amount of data.
Carefully employing these techniques to optimize such parts may
significantly enhance the overall application performance on
current CPUs and GPUs. RESUMO: Modelos hidrol{\'o}gicos de bacias
de grande escala s{\~a}o amplamente utilizados para a
compreens{\~a}o dos processos de bacias hidrogr{\'a}ficas com
aplica{\c{c}}{\~o}es em recursos h{\'{\i}}dricos,
mudan{\c{c}}as clim{\'a}ticas, uso da terra, e sistemas de
previs{\~a}o. A qualidade dos resultados hidrol{\'o}gicos
depende principalmente em calibrar os conjuntos {\'o}timos de
par{\^a}metros da bacia, uma tarefa demorada que exige repetidas
simula{\c{c}}{\~o}es do modelo hidrol{\'o}gico. A crescente
disponibilidade de dados hidrometeorol{\'o}gicos provenientes de
regi{\~o}es extensas tamb{\'e}m contribui para o aumento na
demanda por mais recursos computacionais. O desempenho de
m{\'e}todos de otimiza{\c{c}}{\~a}o em aplica{\c{c}}{\~o}es
hidrol{\'o}gicas tem sido continuamente abordado. Entretanto,
melhorar o desempenho de uma aplica{\c{c}}{\~a}o em um
computador moderno exige uma investiga{\c{c}}{\~a}o detalhada
sobre a intera{\c{c}}{\~a}o entre a aplica{\c{c}}{\~a}o e o
sistema, a fim de encontrar as t{\'e}cnicas que fornecem os
melhores desempenhos. Esta tese busca otimiza{\c{c}}{\~o}es de
desempenho nos j{\'a} bem estabelecidos modelo hidrol{\'o}gico
MGB (simula{\c{c}}{\~a}o) e m{\'e}todo MOCOM-UA
(calibra{\c{c}}{\~a}o) para conjuntos de dados de entrada reais,
as bacias do Purus (Brasil) e Niger ({\'A}frica). As
estrat{\'e}gias de otimiza{\c{c}}{\~a}o investigadas nesta tese
visam sistemas computacionais CPU+GPU atuais explorando
t{\'e}cnicas que incluem vetoriza{\c{c}}{\~a}o AVX-512, e
paralelismos multi-core (CPU) e many-core (GPU) para aumentar a
utilidade de ambas simula{\c{c}}{\~a}o e calibra{\c{c}}{\~a}o
utilizando o modelo MGB. Speedups significativos de at{\'e} 20×
foram obtidos em CPU com as otimiza{\c{c}}{\~o}es propostas,
enquanto que a an{\'a}lise roofline confirmou que as
otimiza{\c{c}}{\~o}es em CPU e GPU exploraram mais efetivamente
os recursos de hardware, e melhoraram o desempenho geral do modelo
MGB. Uma an{\'a}lise adicional de escalabilidade utilizando um
miniapp do modelo MGB indicou que speedups at{\'e} 24× (CPU) e
65× (GPU) podem ser obtidos para tamanhos de problema maiores.
Al{\'e}m disso, a acur{\'a}cia dos resultados simulados entre as
implementa{\c{c}}{\~o}es n{\~a}o-otimizada e otimizada foi
quantitativamente avaliada, atingindo erros relativos m{\'a}ximos
de aproximadamente 6% para vaz{\~o}es e fun{\c{c}}{\~o}es
objetivo. As t{\'e}cnicas investigadas aplicadas no modelo MGB
tamb{\'e}m s{\~a}o v{\'a}lidas para outras
aplica{\c{c}}{\~o}es cient{\'{\i}}ficas onde algumas poucas
partes cruciais dominam o tempo de execu{\c{c}}{\~a}o ao
processar uma grande quantidade de dados. Empregando
cuidadosamente essas t{\'e}cnicas para otimizar tais partes pode
melhorar significativamente o desempenho geral da
aplica{\c{c}}{\~a}o em CPUs e GPUs atuais.",
committee = "Campos Velho, Haroldo Fraga de (presidente) and Mendes, Celso Luiz
(orientador) and Stephany, Stephan and Oliveira, Jo{\~a}o Ricardo
de Freitas and Collischonn, Walter and Andr{\'e}s Rodriguez,
Daniel",
englishtitle = "Otimiza{\c{c}}{\~a}o de desempenho do modelo hidrol{\'o}gico
MGB para arquiteturas multi-core e GPU",
language = "en",
pages = "77",
ibi = "8JMKD3MGP3W34R/447AB2L",
url = "http://urlib.net/ibi/8JMKD3MGP3W34R/447AB2L",
targetfile = "publicacao.pdf",
urlaccessdate = "03 jun. 2024"
}