Define and Deduce Energy Consumption Complexity of Algorithms
Jie SONG,Zhong-Yi MA,Shu XU,Yu-Bin BAO,Ge YU
DOI: https://doi.org/10.11897/SP.J.1016.2018.00709
2018-01-01
Abstract:As far as the performance optimization of computer system is concerned,in the early years,hardware performance is well studied and then software efficiency is gradually focused.Also,the study of energy consumption optimization follows the same way,and software oriented energy consumption optimization is highlighted recently,for the energy consumption grows rapidly and the energy issues in IT industry is much harder to deal with.Evaluation and optimization on energy consumption of algorithms,which are abstractions of procedures,is becoming a new and hot research topic.However,most existing researches focus on specific algorithms or runtime environment,and they are closely related with the programming languages or hardware features.And there are some researches on energy complexity,but their models are just for specific environment such as only for parallel algorithms of multi-core environment.Therefore,they are not universal solutions.Referring to the time complexity,we propose that the energy consumption complexity,which represents the energy consumption features of an algorithm,as well as a key measurement for evaluating algorithms.Firstly,starting from the classical Turing machine,we design an improved Turing machine for analyzing energy consumption of an algorithm,and define its energy consumption complexity;we define the abstract energy consumption in this part,make the energy consumption of program into the dimensionless energy consumption that can deal with the energy consumption issue of an algorithm;and then we define the set and polynomial relationship of abstract energy consumption to make the abstract energy consumption comparable;and then combining with our definition of status transfer energy consumption and inertia energy consumption,we finally propose the energy consumption complexity of algorithm on the improved Turing machine.Secondly,we analyze the relationship among energy consumption complexity,space complexity,time complexity,and interleaving of calculation statements and storage statements,and then deduce the first by the latter two;the space and time complexity only have constant or linear effect on energy consumption complexity,which is meaningless to a definition of our new concept;but with the definition of cross factor that we propose in the chapter of Turing machine,we can combine these two complexity together,and deduce the energy consumption complexity with the cross factor;the cross factor is also an function of the input size,and the fundamental of the deducing process is based on DVFS and other equations on energy consumption,so the energy consumption complexity has great difference with other complexities.Finally,we validate the energy consumption complexity by experiments;the experiment was done on a cluster with java and the test case we used was seven distributed algorithms that their theoretical time complexity,energy consumption complexity and cross factor are given;with the experiment and the theoretical complexity of those algorithms,we validate the effect of cross factor and time on the energy consumption,and the correctness of our energy consumption complexity model.The energy consumption complexity is theoretical fundament which is contributed to designing energy efficient algorithms,choosing proper algorithms,and energy consumption on algorithms.