Articles | Volume 10, issue 6
Development and technical paper
16 Jun 2017
Development and technical paper |  | 16 Jun 2017

rpe v5: an emulator for reduced floating-point precision in large numerical simulations

Andrew Dawson and Peter D. Düben

Abstract. This paper describes the rpe (reduced-precision emulator) library which has the capability to emulate the use of arbitrary reduced floating-point precision within large numerical models written in Fortran. The rpe software allows model developers to test how reduced floating-point precision affects the result of their simulations without having to make extensive code changes or port the model onto specialized hardware. The software can be used to identify parts of a program that are problematic for numerical precision and to guide changes to the program to allow a stronger reduction in precision.

The development of rpe was motivated by the strong demand for more computing power. If numerical precision can be reduced for an application under consideration while still achieving results of acceptable quality, computational cost can be reduced, since a reduction in numerical precision may allow an increase in performance or a reduction in power consumption. For simulations with weather and climate models, savings due to a reduction in precision could be reinvested to allow model simulations at higher spatial resolution or complexity, or to increase the number of ensemble members to improve predictions. rpe was developed with a particular focus on the community of weather and climate modelling, but the software could be used with numerical simulations from other domains.

Short summary
Weather and climate models must become more efficient if they continue growing in complexity. One option for reducing computational cost is to reduce numerical precision. We present a tool that allows users to study how models perform with reduced numerical precision. The tool is applied to a geophysical use case where precision is heavily reduced while maintaining suitable accuracy. The tool can be applied to other models to determine whether they can be made more computationally efficient.