Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Improving scientific application execution on android mobile devices via code refactorings

Published: 01 May 2017 Publication History

Abstract

The increasing number of mobile devices with ever-growing capabilities makes them useful for running scientific applications. However, these applications have high computational demands, whereas mobile devices have limited capabilities when compared with non-mobile devices. More importantly, mobile devices rely on batteries for their power supply. We initially measure the battery consumption of different versions of known micro-benchmarks representing common programming primitives found in scientific applications. Then, we analyze the performance of such micro-benchmarks in CPU-intensive mobile applications. We apply good programming practices and code refactorings to reduce battery consumption of scientific mobile applications. Our results show the reduction in energy usage from applying these refactorings to three scientific applications, and we consequently propose guidelines for high-performance computing applications. Our focus is on Android, the dominant mobile operating system. As a long-term contribution, our results represent one more step in the progress towards hybrid distributed infrastructures comprising fixed and mobile nodes, that is, the so-called mobile grids. Copyright © 2016 John Wiley & Sons, Ltd.

References

[1]
Rodriguez JM, Zunino A, Campo M. Introducing mobile devices into grid systems: a survey. International Journal of Web and Grid Services 2011; Volume 7 Issue 1: pp.1-40.
[2]
Foster I, Kesselman C. The Grid: Blueprint for a New Computing Infrastructure 2nd edn. Morgan Kaufmann: San Francisco, CA, USA, 2003.
[3]
Paradiso JA, Starner T. Energy scavenging for mobile and wireless electronics. IEEE Persvasive Computing 2005; Volume 4: pp.18-27.
[4]
Flipsen B, Geraedts J, Reinders A, Bakker C, Dafnomilis I, Gudadhe A. Environmental sizing of smartphone batteries. Electronics Goes Green 2012+ EGG, 2012, Berlin, Germany, 2012; pp.1-9.
[5]
Rodriguez JM, Zunino A, Campo M. Mobile grid seas: simple energy-aware scheduler. 39JAIIO - HPC 2010, Buenos Aires, Argentina, 2010; pp.3341-3354.
[6]
Rodríguez JM, Mateos C, Zunino A. Energy-efficient job stealing for cpu-intensive processing in mobile devices. Computing 2012; Volume 94: pp.87-117.
[7]
Huynh D, Knezevic D, Peterson J, Patera A. High-fidelity real-time simulation on deployed platforms. Computers & Fluids 2011; Volume 43 Issue 1: pp.74-81.
[8]
Bloch J. Effective Java Programming Language Guide. Sun Microsystems, Inc.: Mountain View, CA, USA, 2001.
[9]
Mateos C, Zunino A, Campo M. On the evaluation of gridification effort and runtime aspects of JGRIM applications. Future Generation Computer Systems 2010; Volume 26 Issue 6: pp.797-819.
[10]
Mateos C, Zunino A, Campo M. An approach for non-intrusively adding malleable fork/join parallelism into ordinary JavaBean compliant applications. Computer Languages, Systems & Structures 2010; Volume 36 Issue 3: pp.288-315.
[11]
Mateos C, Zunino A, Trachsel R, Campo M. A novel mechanism for gridification of compiled Java applications. Computing and Informatics 2011; Volume 30 Issue 6: pp.1259-1285.
[12]
Barisone A, Bellotti F, Berta R, De¿Gloria A. Jsbricks: a suite of microbenchmarks for the evaluation of Java as a scientific execution environment. Future Generation Computer Systems 2001; Volume 18: pp.293-306.
[13]
Rodríguez AV, Mateos C, Zunino A. Mobile devices-aware refactorings for scientific computational kernels. 41 JAIIO - AST 2012, La Plata, Argentina, 2012; pp.61-72.
[14]
Azeemi N. Compiler directed battery-aware implementation of mobile applications. International Conference on Emerging Technologies, 2006. ICET '06, Peshawar, Pakistan, 2006; pp.251-256. 10.1109/ICET.2006.335979.
[15]
Bloch J. Effective Java 2nd edn the Java series. Prentice Hall PTR: Upper Saddle River, NJ, USA, 2008.
[16]
Hofschuster W, Krämer W. C-xsc 2.0 - a c++ library for extended scientific computing. Lecture Notes in Computer Science 2004; Volume 2991: pp.259-276.
[17]
Papadimitriou S, Terzidis K, Mavroudi S, Likothanassis S. Exploiting java scientific libraries with the scala language within the scalalab environment. IET Software 2011; Volume 5: pp.543-551.
[18]
Nicolaos A, Vasileios K, George A, Harris M, Angeliki K, Costas G. A data locality methodology for matrix-matrix multiplication algorithm. Journal of Supercomputing 2012; Volume 59: pp.830-851.
[19]
Christensen AS, Moller A, Schwartzbach MI. Precise analysis of string expressions. 10th International Static Analysis Symposium SAS, vol.¿2694: San Diego, CA, USA, 2003; pp.1-18.
[20]
Hermelin D, Rawitz D, Rizzi R, Vialette S. The minimum substring cover problem. Information and Computation/Information and Control - IANDC 2008; Volume 206: pp.1303-1312.
[21]
Vaidya PM. An algorithm for linear programming which requires om + nn2+m + n1.5nl arithmetic operations. Mathematical Programming 1990; Volume 47: pp.175-201.
[22]
Baron R, Lioubashevski O, Katz E, Niazov T, Willner I. Elementary arithmetic operations by enzymes: a model for metabolic pathway based computing. Angewandte Chemie International Edition 2006; Volume 45: pp.1572-1576.
[23]
Gurram SR, Agarwal S. Image compression using simple arithmetic operations. International Conference on Computational Intelligence and Multimedia Applications, Sivakasi, Tamil Nadu, India, 2007; pp.58-62.
[24]
Lee S, Yang BS, Kim S, Park S, Moon SM, Olu KE, Altman E. Efficient java exception handling in just-in-time compilation. ACM Java Grande 2000 Conference, San Francisco, CA, USA, 2000; pp.1463-1480.
[25]
Van¿Nieuwpoort RV, Wrzesińska G, Jacobs CJH, Bal HE. Satin: a high-level and efficient grid programming model. ACM Transactions on Programming Languages and Systems 2010; Volume 32 Issue 3: pp.9:1-9:39.
[26]
van¿Nieuwpoort RV, Maassen J, Wrzesinska G, Hofman R, Jacobs C, Kielmann T, Bal HE. Ibis: a flexible and efficient Java based grid programming environment. Concurrency and Computation: Practice and Experience 2005; Volume 17 Issue 7-8: pp.1079-1107.
[27]
Garey M, Johnson D. Computers and Intractability: A Guide to the Theory of NP- completeness. Freeman: San Francisco, 1979.
[28]
Zhang J. Comparative study of several intelligent algorithms for knapsack problem. Procedia Environmental Sciences 2011; Volume 11: pp.163-168.
[29]
Sinschek J, Sewe A, Mezini M. Vm performance evaluation with functional models: an optimist's outlook. Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages, ACM, New York, NY, USA, 2009; pp.6:1-6:2.
[30]
Georges A, Buytaert D, Eeckhout L. Statistically rigorous java performance evaluation. SIGPLAN Notices 2007; Volume 42: pp.57-76.
[31]
Kumar K, Lu YH. Cloud Computing for mobile users: can offloading computation save energy? Computer 2010; Volume 43: pp.51-56.
[32]
Murray D, Yoneki E, Crowcroft J, Hand S. The case for crowd computing. ACM: New York, NY, USA, 2010; pp.39-44.
[33]
Sharifi M, Kafaie S, Kashefi O. A Survey and Taxonomy of Cyber Foraging of Mobile Devices. IEEE Communications Surveys Tutorials 2012; Volume 14 Issue 4: pp.1232-1243.
[34]
Kristensen MD. Scavenger: Transparent development of efficient cyber foraging applications. EEE International Conference on Pervasive Computing and Communications PerCom, Mannheim, Germany, 2010; pp.217-226.
[35]
Flinn J, Park S, Satyanarayanan M. Balancing performance, energy, and quality in pervasive computing. 22nd International Conference on Distributed Computing Systems, Vienna, Austria, 2002; pp.1-10.
[36]
Balan RK, Gergle D, Satyanarayanan M, Herbsleb J. Simplifying cyber foraging for mobile devices. 5th USENIX International Conference on Mobile Systems, Applications and Services MobiSys, San Juan, Puerto Rico, 2007; pp.272-285.
[37]
Balan RK, Flinn J, Satyanarayanan M, Sinnamohideen S, Yang H. The case for cybef foraging. 10th Workshop on ACM SIGOPS European Workshop: Beyond the PC, New York, NY, USA, 2002; pp.87-92.
[38]
Goyal S, Carter J. A lightweight secure cyber foraging infrastructure for resource-constrained devices. 6th IEEE Workshop on Mobile Computing Systems and Applications, Lake District National Park, UK, 2004; pp.186-195.
[39]
Su YY, Flinn J. Slingshot: deploying stateful services in wireless hotspots. 3rd International Conference on Mobile Systems, Applications, and Services, Seattle, 2005; pp.79-92.
[40]
Cuervo E, Balasubramanian A, Cho D, Wolman A, Saroiu S, Chandra R, Bahl P. Maui: making smartphones last longer with code offload. 8th International Conference on Mobile Systems, Applications, and Services ACM MobiSys 10, San Francisco, CA, USA, 2010; pp.49-62.
[41]
Verbelen T, Simoens P, Turck FD, Dhoedt B. Aiolos: middleware for improving mobile application performance through cyber foraging. Journal of Systems and Software 2012; Volume 85 Issue 11: pp.2629-2639.
[42]
Zhang Y, Huang G, Liu X, Zhang W, Mei H, Yang S. Refactoring android java code for on-demand computation offloading. OOPSLA, Tucson, Arizona, USA, 2012; pp.233-247.
[43]
Binder W. Using bytecode instruction counting as portable cpu consumption metric. Electronic Notes in Theorical Computer Science 2006: pp.57-77.
[44]
Hung SH, Tzeng TT, Wu GD, Shieh JP. A code offloading scheme for big-data processing in android applications. Software: Practice and Experience 2015; Volume 45 Issue 8: pp.1087-1101.
[45]
Rodríguez JM, Mateos C, Zunino A. 2012. Are smartphones really useful for scientific computing? In Advances in New Technologies, Interactive Interfaces and Communicability, vol.¿7547, Cipolla-Ficarra ¿F, Veltman ¿K, Verber ¿D, Cipolla-Ficarra ¿M, Kammüller ¿F ¿eds., <bookSeriesTitle>Lecture Notes in Computer Science</bookSeriesTitle>, Springer: Berlin Heidelberg; pp.38-47.
[46]
Mateos C, Zunino A, Campo M. JGRIM: an approach for easy gridification of applications. Future Generation Computer Systems 2008; Volume 24 Issue 2: pp.99-118.
[47]
Zunino A, Mateos C, Campo M. Horizons in Computer Science Research, <bookSeriesTitle>chap. A Semi-automatic, Malleable Mobility Model for Rapid Prototyping of Mobile Agent Applications</bookSeriesTitle>. Nova Science Publishers: New York, 2010 pp.1-36.
[48]
Mateos C, Zunino A, Campo M. m-JGRIM: a novel middleware for gridifying Java applications into mobile grid services. Software: Practice and Experience 2010; Volume 40 Issue 4: pp.331-362.
[49]
Crasso M, Mateos C, Zunino A, Campo M. SWAM: a logic-based mobile agent programming language for the Semantic Web. Expert Systems with Applications 2011; Volume 38 Issue 3: pp.1723-1737.
[50]
Park SM, Ko YB, Kim JH. Disconnected operation service in mobile grid computing. First International Conference on Service Oriented Computing ICSOC'2003, Orlowska, M.E, 2003; pp.499-513.
[51]
Shivle S, Siegel H, Maciejewski AA, Sugavanam P, Banka T, Castain R, Chindam K, Dussinger S, Pichumani P, Satyasekaran P, Saylor W, Sendek D, Sousa J, Sridharam J, Velazco J. Static allocation of resources to comminicating subtasks in a heterogeneous ad hoc environment. Journal of Parallel and Distributed Computing 2006; Volume 66: pp.600-611.
[52]
Ghosh P, Das SK. Mobility-aware cost-efficiente job scheduling for single-class grid jobs in a generic mobile grid architecture. Future Generation Computer Systems 2010; Volume 26: pp.1356-1367.
[53]
Li C, Li L. Energy constrained rosource allocation optimization for mobile grids. Journal of Parallel and Distributed Computing 2010; Volume 70: pp.245-258.
[54]
Taboada GL, Ramos S, Exposito RR, Tourino J, Doallo R. Java in the high performance computing arena: research, practice and experience. Science of Computer Programming 2013; Volume 78 Issue 5: pp.425-444, Available at: "http://www.sciencedirect.com/science/article/pii/S0167642311001420", special section: Principles and Practice of Programming in Java 2009/2010; Special section: Self-Organizing Coordination.
[55]
Amedro B, Caromel D, Huet F, Bodnartchouk V, Delbé C, Taboada GL. HPC in Java: experiences in implementing the NAS parallel benchmarks. Applied Informatics and Communications 2010; Volume 10: pp.221-230. Available at: "https://hal.inria.fr/inria-00504630". "http://dl.acm.org/citation.cfm?id=2170353.2170400".
[56]
Amedro B, Caromel D, Huet F, Bodnartchouk V, Delbé C, Taboada GL. Proactive: using a Java middleware for hpc design, implementation and benchmarks. International Journal of Computers and Communications 2009; Volume 3, 2 Issue 3: pp.49-57.
[57]
Lin CM, Lin JH, Dow CR, Wen CM. Benchmark dalvik and native code for android system. Second International Conference on Innovations in Bio-Inspired Computing and Applications, Shenzhen, China, 2011; pp.320-323.
[58]
Sangchul L, Wook JJ. Evaluating performance of android platform using native c for embedded systems. International Conference on Control, Automation and Systems, Gyeonggi-do, Korea, 2010; pp.1160-1163.
[59]
Tonini AR, Beckmann M, de¿Mattos JC, de¿Brisolara LB. Evaluating android best practices for performance, 2012.
[60]
Gottschalk M, Josefiok M, Jelschen J, Winter A. 2012. Removing energy code smells with reengineering services. In Lecture Notes in Informatics, Goltz U, Magnor M ¿eds.; pp.441-455. vol. 208; Braunschweig, Deutschland. "http://dblp.uni-trier.de/db/conf/gi/gi2012.html\#GottschalkJJW12".
[61]
Thiagarajan N, Aggarwal G, Nicoara A, Boneh D, Singh JP. Who killed my battery: analyzing mobile browser energy consumption. WWW 2012, Lyon, France, 2012; pp.41-50.
[62]
Gottschalk M, Jelschen J, Winter A. 2014. Saving energy on mobile devices by refactoring. In BIS-Verlag, Gómez JM, Sonnenschein M, Vogel ¿U, Winter ¿A, Rapp ¿B, Giesen ¿N ¿eds. BIS-Verlag. Oldemburg, Germany; pp.437-444. ISBN 978-3-8142-2317-9.
[63]
Carvalho¿Junior FH, Rezende CA, Carvalho¿Silva J, Magalhães FJL, Juaçaba-Neto RC. Programming Languages: 17th Brazilian Symposium, SBLP 2013, Brasília, Brazil, October 3-4, 2013. Proceedings, <bookSeriesTitle>chap. On the Performance of Multidimensional Array Representations in Programming Languages Based on Virtual Execution Machines</bookSeriesTitle>. Springer Berlin Heidelberg: Berlin, Heidelberg, 2013; 31-45.
[64]
Yang CY, Wu YJ, Liao S. O2render: an opencl-to-renderscript translator for porting across various gpus or cpus. 2012 IEEE 10th Symposium on Embedded systems for Real-Time Multimedia ESTIMedia, Pittsburgh, USA, 2012; pp.67-74.
[65]
Guihot H. 2012. Renderscript. In Pro Android Apps Performance Optimization Apress; pp.231-263. 10.1007/978-1-4302-4000-6_9. New York, USA.
[66]
Perez-Castillo R, Piattini M. Analyzing the harmful effect of god class refactoring on power consumption. IEEE Software 2014; Volume 31 Issue 3: pp.48-54.

Cited By

View all
  • (2020)Computational Experience with Diagonally Structured Linear Algebra in JavaProceedings of the 2020 4th International Conference on High Performance Compilation, Computing and Communications10.1145/3407947.3407948(1-6)Online publication date: 27-Jun-2020

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Software—Practice & Experience
Software—Practice & Experience  Volume 47, Issue 5
May 2017
151 pages

Publisher

John Wiley & Sons, Inc.

United States

Publication History

Published: 01 May 2017

Author Tags

  1. android
  2. code refactoring
  3. computational kernels
  4. scientific computing
  5. smartphones

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Computational Experience with Diagonally Structured Linear Algebra in JavaProceedings of the 2020 4th International Conference on High Performance Compilation, Computing and Communications10.1145/3407947.3407948(1-6)Online publication date: 27-Jun-2020

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media