@article{Marsh-2021-Performance,
title = "Performance improvements to modern hydrological models via lookup table optimizations",
author = "Marsh, Christopher B. and
Green, Kevin R. and
Wang, B. and
Spiteri, Raymond J.",
journal = "Environmental Modelling {\&} Software, Volume 139",
volume = "139",
year = "2021",
publisher = "Elsevier BV",
url = "https://gwf-uwaterloo.github.io/gwf-publications/G21-19001",
doi = "10.1016/j.envsoft.2021.105018",
pages = "105018",
abstract = "Distributed hydrological models predict the spatial variability in processes that govern observed mass and energy fluxes. A challenge associated with the use of these models is the computational burden associated with representing the Earth's (sub)surface via millions of computational elements. This burden is exacerbated as more complex process representations are included because their parameterizations involve computationally intensive mathematical functions. Lookup tables (LUTs) approximate a mathematical function by interpolating precomputed values of the function. Highly accurate approximations are possible for substantially reduced computational costs. In this work, a general methodology using the C++ LUT library FunC is applied to identify and replace computationally intensive mathematical function evaluations in the Canadian Hydrological Model (CHM). The use of LUTs introduces a pointwise relative error below 10 − 8 and provides a reduction in run time of almost 20{\%}. This work shows how LUTs can be implemented with relatively little pain and yield significant computational savings for distributed hydrological models. {\mbox{$\bullet$}} The Canadian Hydrological Model (CHM) is profiled and expensive mathematical functions identified. {\mbox{$\bullet$}} FunC was used to replace the expensive mathematical functions in CHM with lookup tables. {\mbox{$\bullet$}} The run-time performance of CHM was improved by approximately 20{\%} on two realistic simulations. {\mbox{$\bullet$}} A general methodology for using FunC to replace expensive mathematical functions with lookup tables is given.",
}