Abstract
Search Based Software Engineering has high potential for optimising non-functional properties such as execution time or power consumption. However, many non-functional properties are dependent not only on the software system under consideration but also the environment that surrounds the system. This necessitates a support for online, in situ optimisation. This paper introduces the novel concept of amortised optimisation which allows such online optimisation. The paper also presents two case studies: one that seeks to optimise JIT compilation, and another to optimise a hardware dependent algorithm. The results show that, by using the open source libraries we provide, developers can improve the speed of their Python script by up to 8.6 % with virtually no extra effort, and adapt a hardware dependent algorithm automatically for unseen CPUs.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Piacin is made available as open source software at https://bitbucket.org/ntrolls/piacin.
- 2.
NIA\(^3\)CIN is made available as open source software at https://bitbucket.org/ntrolls/niacin.
References
CPUBoss: a benchmark comparison between Xeon W3680 and Core-i7 3820QM. http://cpuboss.com/cpus/Intel-Xeon-W3680-vs-Intel-Core-i7-3820QM
Afzal, W., Torkar, R., Feldt, R.: A systematic review of search-based testing for non-functional system properties. Inf. Softw. Technol. 51(6), 957–976 (2009)
Bolz, C.F., Cuni, A., Fijalkowski, M., Rigo, A.: Tracing the meta-level: Pypy’s tracing JIT compiler. In: Proceedings of the 4th Workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems, ICOOOLPS 2009, pp. 18–25. ACM, New York (2009)
Briand, L.C., Labiche, Y., Shousha, M.: Stress testing real-time systems with genetic algorithms. In: Proceedings of the Genetic and Evolutionary Computation Conference, GECCO 2005, pp. 1021–1028 (2005)
Budynek, J., Bonabeau, E., Shargel, B.: Evolving computer intrusion scripts for vulnerability assessment and log analysis. In: Proceedings of the Genetic and Evolutionary Computation Conference, GECCO 2005, pp. 1905–1912 (2005)
Canfora, G., Penta, M.D., Esposito, R., Villani, M.L.: An approach for QoS-aware service composition based on genetic algorithms. In: Proceedings of the 2005 Conference on Genetic and Evolutionary Computation (GECCO 2005), pp. 1069–1075. ACM, Washington, D.C., 25–29 June 2005
Eves, H.: Elementary Matrix Theory. Dover Publication, New York (1980)
Groß, H.G.: An evaluation of dynamic, optimisation-based worst-case execution time analysis. In: ITPC 2003: Proceedings of the International Conference on Information Technology: Prospects and Challenges in the 21st Century, Kathmandu, pp. 8–14 (2003)
Grosso, C.D., Antoniol, G., Penta, M.D., Galinier, P., Merlo, E.: Improving network applications security: a new heuristic to generate stress testing data. In: Proceedings of the 2005 Conference on Genetic and Evolutionary Computation (GECCO 2005), pp. 1037–1043. ACM, Washington, D.C., 25–29 June 2005
Grosso, C.D., Antoniol, G., Merlo, E., Galinier, P.: Detecting buffer overflow via automatic test input data generation. Comput. Oper. Res. 35(10), 3125–3143 (2008)
Hosek, P., Cadar, C.: Safe software updates via multi-version execution. In: Proceedings of the 2013 International Conference on Software Engineering, ICSE 2013, pp. 612–621. IEEE Press, Piscataway (2013)
Kruse, P.M., Wegener, J., Wappler, S.: A highly configurable test system for evolutionary black-box testing of embedded systems. In: Proceedings of the Genetic and Evolutionary Computation Conference, GECCO 2009, pp. 1545–1552 (2009)
Langdon, W., Harman, M.: Optimizing existing software with genetic programming. Trans. Evol. Comput. 19(1), 118–135 (2015)
Penta, M.D., Canfora, G., Esposito, G., Mazza, V., Bruno, M.: Search-based testing of service level agreements. In: Proceedings of the Genetic and Evolutionary Computation, GECCO 2007, pp. 1090–1097 (2007)
Petke, J., Harman, M., Langdon, W.B., Weimer, W.: Using genetic improvement and code transplants to specialise a C++ program to a problem class. In: Nicolau, M., Krawiec, K., Heywood, M.I., Castelli, M., García-Sánchez, P., Merelo, J.J., Rivas Santos, V.M., Sim, K. (eds.) EuroGP 2014. LNCS, vol. 8599, pp. 137–149. Springer, Heidelberg (2014)
Pohlheim, H., Wegener, J.: Testing the temporal behavior of real-time software modules using extended evolutionary algorithms. In: Proceedings of the Genetic and Evolutionary Computation Conference, pp. 1795–1802, July 1999
Torres, M.: Pypy Speed Centre. http://speed.pypy.org/
Wegener, J., Grochtmann, M.: Verifying timing constraints of real-time systems by means of evolutionary testing. Real-Time Syst. 15(3), 275–298 (1998)
Wu, F., Weimer, W., Harman, M., Jia, Y., Krinke, J.: Deep parameter optimisation. In: Genetic and Evolutionary Computation Conference (2015, to appear)
Acknowledgement
We would like to thank Carl Friedrich Bolz and Laurence Tratt for the informative discussion about the technical details of pypy.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Yoo, S. (2015). Amortised Optimisation of Non-functional Properties in Production Environments. In: Barros, M., Labiche, Y. (eds) Search-Based Software Engineering. SSBSE 2015. Lecture Notes in Computer Science(), vol 9275. Springer, Cham. https://doi.org/10.1007/978-3-319-22183-0_3
Download citation
DOI: https://doi.org/10.1007/978-3-319-22183-0_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-22182-3
Online ISBN: 978-3-319-22183-0
eBook Packages: Computer ScienceComputer Science (R0)