Abstract
Energy consumption is becoming a serious concern in the context of software development. Recent works have shown that energy consumption of an algorithm not only depends on its running-time but also on its number of memory accesses. In this work, we empirically analyse several algorithms for matrix transposition with different patterns of low-level cache access, and compare them in terms of energy consumption and running-time with respect to CPU instructions and memory accesses. Our results suggest that different memory access patterns have a strong influence on the energy consumption and on the cache performance of these algorithms.
Supported by the ERDF - European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 Programme and by National Funds through the Portuguese funding agency, Fundação para a Ciência e a Tecnologia within project POCI-01-0145-FEDER-016718.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Aggarwal, A., Vitter, J.S.: The input/output complexity of sorting and related problems. Commun. ACM 31(9), 1116–1127 (1988)
Aggarwal, K., Hindle, A., Stroulia, E.: Greenadvisor: a tool for analyzing the impact of software evolution on energy consumption. In: IEEE International Conference on Software Maintenance and Evolution, ICSME 2015. pp. 311–320 (2015)
Albers, S.: Energy-efficient algorithms. Commun. ACM 53(5), 86–96 (2010)
Barroso, L.A.: The price of performance. ACM Queue 3(7), 48–53 (2005)
Bose, B.K.: Global energy scenario and impact of power electronics in 21st century. IEEE Trans. Ind. Electron. 60(7), 2638–2651 (2013)
Co, M., Weikle, D.A.B., Skadron, K.: Evaluating trace cache energy efficiency. ACM Trans. Archit. Code Optim. 3(4), 450–476 (2006)
David, H., Gorbatov, E., Hanebutte, U.R., Khanna, R., Le, C.: RAPL: memory power estimation and capping. In: Proceedings of the 2010 International Symposium on Low Power Electronics and Design, pp. 189–194 (2010)
Desrochers, S., Paradis, C., Weaver, V.M.: A validation of DRAM RAPL power measurements. In: Proceedings of the Second International Symposium on Memory Systems, MEMSYS, pp. 455–470 (2016)
Gayde, W.: How CPUs are designed and built (2020). https://www.techspot.com/article/1821-how-cpus-are-designed-and-built/
Guo, Y., Narayanan, P., Bennaser, M.A., Chheda, S., Moritz, C.A.: Energy-efficient hardware data prefetching. IEEE Trans. VLSI Systems 19(2), 250–263 (2011)
Intel: Intel® 64 and ia-32 architectures - software developer’s manual complete (2019). https://software.intel.com/en-us/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4
Kim, S., Vijaykrishnan, N., Kandemir, M.T., Sivasubramaniam, A., Irwin, M.J.: Partitioned instruction cache architecture for energy efficiency. ACM Trans. Embedded Comput. Syst. 2(2), 163–185 (2003)
Kwon, Y., Tilevich, E.: Reducing the energy consumption of mobile apps. behind the scenes. In: 2013 IEEE International Conference on Software Maintenance, pp. 170–179 (2013)
Li, D., Halfond, W.G.J.: An investigation into energy-saving programming practices for android smartphone app development. In: Proceedings of the 3rd International Workshop on Green and Sustainable Software, GREENS 2014, pp. 46–53 (2014)
Li, D., Hao, S., Gui, J., Halfond, W.G.J.: An empirical study of the energy consumption of android applications. In: 30th IEEE International Conference on Software Maintenance and Evolution, 2014, pp. 121–130 (2014)
Lima, L.G., Soares-Neto, F., Lieuthier, P., Castor, F., Melfe, G., Fernandes, J.P.: Haskell in green land: analyzing the energy behavior of a purely functional language. In: IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering, SANER 2016, 2016, vol. 1, pp. 517–528 (2016)
Liu, K., Pinto, G., Liu, Y.D.: Data-oriented characterization of application-level energy optimization. In: Fundamental Approaches to Software Engineering - 18th International Conference, FASE 2015, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015 Proceedings, pp. 316–331 (2015)
Melfe, G., Fonseca, A., Fernandes, J.P.: Helping developers write energy efficient Haskell through a data-structure evaluation. In: Proceedings of the 6th International Workshop on Green and Sustainable Software, GREENS@ICSE 2018, pp. 9–15 (2018)
Pang, C., Hindle, A., Adams, B., Hassan, A.E.: What do programmers know about software energy consumption? IEEE Softw. 33(3), 83–89 (2016)
Pereira, R., Couto, M., Ribeiro, F., Rua, R., Cunha, J., Fernandes, J.P., Saraiva, J.: Energy efficiency across programming languages: how do energy, time, and memory relate? In: Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2017, pp. 256–267 (2017)
Pereira, R., Couto, M., Saraiva, J., Cunha, J., Fernandes, J.P.: The influence of the Java collection framework on overall energy consumption. In: Proceedings of the 5th International Workshop on Green and Sustainable Software, GREENS@ICSE, pp. 15–21 (2016)
Pinto, G., Castor, F., Liu, Y.D.: Mining questions about software energy consumption. In: 11th Working Conference on Mining Software Repositories, MSR 2014, Proceedings, pp. 22–31 (2014)
Rashid, M., Ardito, L., Torchiano, M.: Energy consumption analysis of algorithms implementations. In: 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM 2015, pp. 82–85 (2015)
Roy, S., Rudra, A., Verma, A.: An energy complexity model for algorithms. In: Innovations in Theoretical Computer Science, ITCS 2013, pp. 283–304 (2013)
Tibken, S.: Intel’s skylake chips to power pcs as thin as tablets, with big battery boost (2015). https://www.cnet.com/news/intels-skylake-chips-will-power-pcs-as-thin-as-tablets-compute-sticks/
Tsifakis, D., Rendell, A.P., Strazdins, P.E.: Cache oblivious matrix transposition: simulation and experiment. In: Bubak, M., van Albada, G.D., Sloot, P.M.A., Dongarra, J. (eds.) ICCS 2004. LNCS, vol. 3037, pp. 17–25. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24687-9_3
Vitter, J.S., Shriver, E.A.M.: Algorithms for parallel memory I: two-level memories. Algorithmica 12(2/3), 110–147 (1994)
Will, D.: Head north for the data center gold rush (2017). https://blog.advaoptical.com/en/head-north-for-the-data-center-gold-rush
Yuki, T., Rajopadhye, S.V.: Folklore confirmed: compiling for speed = compiling for energy. In: Languages and Compilers for Parallel Computing - 26th International Workshop, LCPC 2013. Revised Selected Papers, pp. 169–184 (2013)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Lopes, G., Fernandes, J.P., Paquete, L. (2023). An Empirical Study on the Energy Efficiency of Matrix Transposition Algorithms. In: Porkoláb, Z., Zsók, V. (eds) Composability, Comprehensibility and Correctness of Working Software. CEFP 2019. Lecture Notes in Computer Science, vol 11950. Springer, Cham. https://doi.org/10.1007/978-3-031-42833-3_11
Download citation
DOI: https://doi.org/10.1007/978-3-031-42833-3_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-42832-6
Online ISBN: 978-3-031-42833-3
eBook Packages: Computer ScienceComputer Science (R0)