The energy consumption imputable to application software is an often underestimated aspect in the Information Technology; although such component is not directly responsible, its execution results in a non negligible impact in terms of energy required for the global system in which it is operating. Hence, additional methodologies should be applied, in order to maximize the energy efficiency through the application of software optimization techniques. Among them, memoization has emerged as a powerful practice, the application of which permits to achieve high benefits in terms of both execution time and energy savings. However, only functions that satisfy a determined set of properties can be effectively suitable for the application; such methods are usually referred to with the term pure functions. The present work offers an improved approach for the identification of pure functions, permitting to extend the subset of pure functions for a generic Java application, relaxing the constraints imposed from the traditional operative definition of purity. To further increase the number of pure methods for an application, additional instruments have been implemented to re-engineer non pure functions into equivalent versions, but with better characteristics in terms of purity. To accomplish the task, the analysers should be able to individuate the exact sources of impurities for a non pure method and, consequently, perform the necessary bytecode modifications. The experimental results show high precision in the recognition of pure functions, with an error below 1% in terms of identification of the distinct sources of impurity. Regarding the bytecode modification module, tests have demonstrated at first the correctness of the modified versions, in terms of results produced. Moreover, the overhead introduced by such approaches have been evaluated, with results ranging from a 5% decrease to improvements around 10%; this is especially encouraging, considering the fact that the aim is not the optimization of such methods, but the enabling to the application of other performance and energy saving techniques.

Bytecode analysis and re-engineering to expose pure functions

BERARDI, MARCO
2011/2012

Abstract

The energy consumption imputable to application software is an often underestimated aspect in the Information Technology; although such component is not directly responsible, its execution results in a non negligible impact in terms of energy required for the global system in which it is operating. Hence, additional methodologies should be applied, in order to maximize the energy efficiency through the application of software optimization techniques. Among them, memoization has emerged as a powerful practice, the application of which permits to achieve high benefits in terms of both execution time and energy savings. However, only functions that satisfy a determined set of properties can be effectively suitable for the application; such methods are usually referred to with the term pure functions. The present work offers an improved approach for the identification of pure functions, permitting to extend the subset of pure functions for a generic Java application, relaxing the constraints imposed from the traditional operative definition of purity. To further increase the number of pure methods for an application, additional instruments have been implemented to re-engineer non pure functions into equivalent versions, but with better characteristics in terms of purity. To accomplish the task, the analysers should be able to individuate the exact sources of impurities for a non pure method and, consequently, perform the necessary bytecode modifications. The experimental results show high precision in the recognition of pure functions, with an error below 1% in terms of identification of the distinct sources of impurity. Regarding the bytecode modification module, tests have demonstrated at first the correctness of the modified versions, in terms of results produced. Moreover, the overhead introduced by such approaches have been evaluated, with results ranging from a 5% decrease to improvements around 10%; this is especially encouraging, considering the fact that the aim is not the optimization of such methods, but the enabling to the application of other performance and energy saving techniques.
AGOSTA, GIAMPAOLO
BESSI, MARCO
ING V - Scuola di Ingegneria dell'Informazione
22-apr-2013
2011/2012
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2013_04_Berardi.pdf

non accessibile

Descrizione: Thesis text
Dimensione 1.44 MB
Formato Adobe PDF
1.44 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/78526