Automatic memoization for energy efficiency in financial applications
Software applications directly impact on IT energy consumptions as they indirectly guide hardware operations. Optimizing algorithms has a direct beneficial impact on energy efficiency, but it requires domain knowledge and an accurate analysis of the code, which may be infeasible and too costly to perform for large code bases. In this paper we present an approach based on dynamic memoization to increase software energy efficiency. This implies to identify a subset of pure functions that can be tabulated, to automatically store the results corresponding to the most frequent invocations and to dynamically manage the tabulation memory to adapt to workload variation. We implemented a prototype software system to apply memoization and tested it on a set of financial functions. Empirical results on a specific set of computation intensive pure functions show average energy savings of 96.8% and time performance savings of 97%.
memoization energy efficiency pure function green software computational intensive application