Abstract
This paper investigates the energy efficiency of reversible programs executed on irreversible hardware. Motivated by Landauer’s principle, which suggests that information loss during program execution increases energy consumption, we employ Intel’s Running Average Power Limit (RAPL) technology to compare the energy consumption of “dereversibilised” reversible programs against that of straightforward irreversible implementations.
Preliminary results indicate that, while the memory handling of dereversibilised reversible programs does not necessarily improve overall energy efficiency, the energy overhead remains constant, ranging from 6% to around 240% over C depending on the abstraction level of the problem at hand. For dereversiblised Janus, one can expect an energy overhead of 100% or less when operating on data structures that are easily represented in the target language. One may expect an energy overhead of less than 30% for dereversibilised Hermes; however, its domain is more specific and thus resembles the target language more closely.
These findings indicate an interesting trade-off: dereversibilisation incurs a certain (constant) energy overhead, yet it uniquely produces two programs for the price of one. This will enable programmers to make informed decisions, balancing the energy overhead against the benefits of reversibility based on their specific needs. Future work will aim to further explore the impact of dereversibilisation on energy overhead and information security.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Andrae, A.S.G.: Hypotheses for primary energy use, electricity use and CO2 emissions of global computing and its shares of the total between 2020 and 2030. WSEAS Trans. Power Syst. 15, 50–59 (2020). https://doi.org/10.37394/232016.2020.15.6
Andrae, A.S.G.: New perspectives on internet electricity use in 2030. Eng. Appl. Sci. Lett. 3(2), 19–31 (2020). https://doi.org/10.30538/psrp-easl2020.0038
Axelsen, H.B.: Clean translation of an imperative reversible programming language. In: Knoop, J. (ed.) CC 2011. LNCS, vol. 6601, pp. 144–163. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-19861-8_9
Axelsen, H.B., Glück, R.: A simple and efficient universal reversible turing machine. In: Dediu, A.-H., Inenaga, S., Martín-Vide, C. (eds.) LATA 2011. LNCS, vol. 6638, pp. 117–128. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21254-3_8
Axelsen, H.B., Glück, R.: Reversible representation and manipulation of constructor terms in the heap. In: Dueck, G.W., Miller, D.M. (eds.) RC 2013. LNCS, vol. 7948, pp. 96–109. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-38986-3_9
Bennett, C.H.: Logical reversibility of computation. IBM J. Res. Dev. 17(6), 525–532 (1973)
Bérut, A., Arakelyan, A., Petrosyan, A., Ciliberto, S., Dillenschneider, R., Lutz, E.: Experimental verification of Landauer’s principle linking information and thermodynamics. Nature 483(7388), 187–189 (2012). https://doi.org/10.1038/nature10872
Eder, K., et al.: ENTRA: Whole-systems energy transparency. Microprocess. Microsyst. 47, 278–286 (2016). https://doi.org/10.1016/j.micpro.2016.07.003
Glück, R., Yokoyama, T.: Constructing a binary tree from its traversals by reversible recursion and iteration. Inf. Process. Lett. 147, 32–37 (2019). https://doi.org/10.1016/j.ipl.2019.03.002. https://www.sciencedirect.com/science/article/pii/S0020019019300523
Glück, R., Yokoyama, T.: Reversible computing from a programming language perspective. Theor. Comput. Sci. 953, 113429 (2023). https://doi.org/10.1016/j.tcs.2022.06.010. https://www.sciencedirect.com/science/article/pii/S0304397522003619
Hackenberg, D., Schöne, R., Ilsche, T., Molka, D., Schuchart, J., Geyer, R.: An energy efficiency feature survey of the Intel Haswell processor. In: Proceedings of the 2015 IEEE 29th International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2015, pp. 896–904 (2015). https://doi.org/10.1109/IPDPSW.2015.70
Hähnel, M., Döbel, B., Völp, M., Härtig, H.: Measuring energy consumption for short code paths using RAPL. Perform. Eval. Rev. 40(3), 13–17 (2012). https://doi.org/10.1145/2425248.2425252
Intel Corporation: Running Average Power Limit Energy Reporting CVE-2020-8694, CVE-2020-8695 (2020). https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/advisory-guidance/running-average-power-limit-energy-reporting.html. Accessed 29 Jan 2024
Intel Corporation: Intel 64 and IA-32 Architectures Software Developer’s Manual (2023). https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html. Accessed 29 Jan 2024
Khan, K.N., Hirki, M., Niemi, T., Nurminen, J.K., Ou, Z.: RAPL in action: experiences in using RAPL for power measurements. ACM Trans. Model. Perform. Eval. Comput. Syst. (TOMPECS) 3(2), 1–26 (2018)
Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5(3), 183–191 (1961)
linux.org: TURBOSTAT (2024). https://www.linux.org/docs/man8/turbostat.html. Accessed 08 Apr 2024
Lipp, M., et al.: Platypus: Software-based power side-channel attacks on x86. In: 2021 IEEE Symposium on Security and Privacy (SP), pp. 355–371 (2021). https://doi.org/10.1109/SP40001.2021.00063
Madsen, F.M., Poulsen, D.R.: Reversible matrix multiplication in Janus (2011). Unpublished manuscript, DIKU, Department of Computer Science, University of Copenhagen, Presented at the DIKU workshop on Topics in Programming Languages, June 2011
Mogensen, T.Æ.: Hermes: A reversible language for lightweight encryption. Sci. Comput. Program. 215, 102746 (2022)
Pereira, R., et al.: Ranking programming languages by energy efficiency. Sci. Comput. Program. 205, 102609 (2021)
Rotem, E., Naveh, A., Ananthakrishnan, A., Weissmann, E., Rajwan, D.: Power-management architecture of the Intel microarchitecture code-named Sandy Bridge. IEEE Micro 32(2), 20–27 (2012). https://doi.org/10.1109/MM.2012.12
Táborský, D., Larsen, K.F., Thomsen, M.K.: Encryption and reversible computations. In: Kari, J., Ulidowski, I. (eds.) RC 2018. LNCS, vol. 11106, pp. 331–338. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-99498-7_23
Thomsen, M.K., Axelsen, H.B.: Interpretation and programming of the reversible functional language RFUN. In: Proceedings of the 27th Symposium on the Implementation and Application of Functional Programming Languages, IFL 2015, pp. 8:1–8:13. ACM (2016). https://doi.org/10.1145/2897336.2897345
Thomsen, M.K., Glück, R., Axelsen, H.B.: Towards designing a reversible processor architecture. In: Ulidowski, I. (ed.) Preliminary Proceedings of the Workshop on Reversible Computation, pp. 46–50 (2009)
Vieri, C.J.: Reversible computer engineering and architecture. Ph.D. thesis, MIT, EECS (1999)
Yokoyama, T., Glück, R.: A reversible programming language and its invertible self-interpreter. In: Partial Evaluation and Program Manipulation, PEPM 2007, pp. 144–153. ACM (2007). https://doi.org/10.1145/1244381.1244404
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Vadgaard, LB.H., Kirkeby, M.H., Larsen, K.F., Thomsen, M.K. (2024). Exploring the Energy Overhead of Reversible Programs Executed on Irreversible Hardware. In: Mogensen, T.Æ., Mikulski, Ł. (eds) Reversible Computation. RC 2024. Lecture Notes in Computer Science, vol 14680. Springer, Cham. https://doi.org/10.1007/978-3-031-62076-8_6
Download citation
DOI: https://doi.org/10.1007/978-3-031-62076-8_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-62075-1
Online ISBN: 978-3-031-62076-8
eBook Packages: Computer ScienceComputer Science (R0)