Component-Level Energy Consumption Estimation for Distributed Java-Based Software Systems Sam Malek George Mason University Chiyoung Seo Yahoo! Nenad Medvidovic.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Maximum Battery Life Routing to Support Ubiquitous Mobile Computing in Wireless Ad Hoc Networks By C. K. Toh.
Walter Binder University of Lugano, Switzerland Niranjan Suri IHMC, Florida, USA Green Computing: Energy Consumption Optimized Service Hosting.
Chapter 1: Introduction
Chapter 7 Protocol Software On A Conventional Processor.
Beneficial Caching in Mobile Ad Hoc Networks Bin Tang, Samir Das, Himanshu Gupta Computer Science Department Stony Brook University.
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
An Energy Consumption Framework for Distributed Java-Based Systems Chiyoung Seo Software Architecture Research Group University of Southern California.
Cloud Based Framework for Rich Mobile Application Roberto Fonseca, Andrew Williams and Krishna Sharma Project Champion: Reza Rahimi.
OS Spring’03 Introduction Operating Systems Spring 2003.
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
Online Data Gathering for Maximizing Network Lifetime in Sensor Networks IEEE transactions on Mobile Computing Weifa Liang, YuZhen Liu.
Chapter 16 Java Virtual Machine. To compile a java program in Simple.java, enter javac Simple.java javac outputs Simple.class, a file that contains bytecode.
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
1 Software Testing and Quality Assurance Lecture 31 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
1/16/2008CSCI 315 Operating Systems Design1 Introduction Notice: The slides for this lecture have been largely based on those accompanying the textbook.
ThinkAir: Dynamic Resource Allocation and Parallel Execution in Cloud for Mobile Code Offloading Sokol Kosta, Pan Hui Deutsche Telekom Labs, Berlin, Germany.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Intro to Java The Java Virtual Machine. What is the JVM  a software emulation of a hypothetical computing machine that runs Java bytecodes (Java compiler.
MOBILE CLOUD COMPUTING
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Lecture By : Rupinder Kaur Lect. IT SRS Govt. Polytechnic college Ludhiana Topic : Overview of Operating System.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Univ. Notre Dame, September 25, 2003 Support for Run-Time Adaptation in RAPIDware Philip K. McKinley Software Engineering and Networking Systems Laboratory.
Tufts Wireless Laboratory School Of Engineering Tufts University “Network QoS Management in Cyber-Physical Systems” Nicole Ng 9/16/20151 by Feng Xia, Longhua.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems.
IEEE R lmap 23 Feb 2015.
International Conference on Software Engineering 2007
Data Acquisition Data acquisition (DAQ) basics Connecting Signals Simple DAQ application Computer DAQ Device Terminal Block Cable Sensors.
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Lecture 10 : Introduction to Java Virtual Machine
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
Mohamed Hefeeda 1 School of Computing Science Simon Fraser University, Canada Video Streaming over Cooperative Wireless Networks Mohamed Hefeeda (Joint.
A Framework for Elastic Execution of Existing MPI Programs Aarthi Raveendran Tekin Bicer Gagan Agrawal 1.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
1 Comp 104: Operating Systems Concepts Java Development and Run-Time Store Organisation.
A Framework for Elastic Execution of Existing MPI Programs Aarthi Raveendran Graduate Student Department Of CSE 1.
Chapter 5.4 DISTRIBUTED PROCESS IMPLEMENTAION Prepared by: Karthik V Puttaparthi
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Programming of Handheld and Mobile Devices Lecture 2 What is a MID? Rob Pooley
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems with Multi-programming Chapter 4.
Operating System Principles And Multitasking
Dynamic Voltage Frequency Scaling for Multi-tasking Systems Using Online Learning Gaurav DhimanTajana Simunic Rosing Department of Computer Science and.
Evaluating Wireless Network Performance David P. Daugherty ITEC 650 Radford University March 23, 2006.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Adaptive Sleep Scheduling for Energy-efficient Movement-predicted Wireless Communication David K. Y. Yau Purdue University Department of Computer Science.
Programming Languages and Paradigms Activation Records in Java.
Thread basics. A computer process Every time a program is executed a process is created It is managed via a data structure that keeps all things memory.
Operating System. Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Access Link Capacity Monitoring with TFRC Probe Ling-Jyh Chen, Tony Sun, Dan Xu, M. Y. Sanadidi, Mario Gerla Computer Science Department, University of.
A Software Energy Analysis Method using Executable UML for Smartphones Kenji Hisazumi System LSI Research Center Kyushu University.
RealTimeSystems Lab Jong-Koo, Lim
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
Advanced Operating Systems CS6025 Spring 2016 Processes and Threads (Chapter 2)
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Operating Systems {week 01.b}
Chapter 1: Introduction
OPERATING SYSTEMS CS3502 Fall 2017
Introduction to Operating System (OS)
Improving java performance using Dynamic Method Migration on FPGAs
A Framework for Automatic Resource and Accuracy Management in A Cloud Environment Smita Vijayakumar.
Adaptive Code Unloading for Resource-Constrained JVMs
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
Subject Name: Operating System Concepts Subject Number:
Presentation transcript:

Component-Level Energy Consumption Estimation for Distributed Java-Based Software Systems Sam Malek George Mason University Chiyoung Seo Yahoo! Nenad Medvidovic University of Southern California

Motivation  Newly emerging computing platforms (sensors, PDAs, cell phones, etc.) – Limited battery resources  There is a pressing need for energy- efficient software systems  If we could estimate a software system’s energy consumption at the level of its constituent components, we could take appropriate actions to prolong the system’s life-span – Offload least important components – Redeploy highly energy-intensive components – Adapt the quality of the components Distributed sensor application running on 3 hosts

Component-Level Energy Consumption Estimation for Distributed Java-Based Software Systems Sam Malek George Mason University Chiyoung Seo Yahoo! Nenad Medvidovic University of Southern California

Outline  Approach  Framework – Computational Energy – Communication Energy – Infrastructure Energy  Construction-Time Estimation  Run-time Estimation  Evaluation  Conclusion

Computational and communication energy costs of all the components Infrastructure energy overhead of all the JVM processes H1H1 H2 H2 H3 H3 H4 H4 C1C1 JVM P 2 C2C2 C3C3 C6C6 C7C7 C4C4 C5C5 JVM P 3 JVM P 1 JVM P 4 Overall Approach  Energy consumption of a software component – Computational energy cost CPU processing, memory & I/O operations – Communication energy cost Data exchange among software components over the network  Infrastructure energy overhead – Operating system managing the execution of a JVM process – JVM’s Garbage collection thread

Computational Energy Cost  Focus on a component’s constituent interfaces in modeling its energy consumption – More accurately estimate the energy cost of a software component H1H1 C1C1 … I1I1 I2I2 InIn C4C4 C2C2 C6C6 C3C3 C5C5 C7C7 H2 H2 H3 H3 H4 H4

Computational Energy Cost Cont. Energy cost of executing all the bytecodes Energy cost of executing all the native methods Energy cost of executing all the monitor operations

class Stack { int[] data; int top; public Stack(int size) { data = new int[size]; top=0; } public short synchronized push(int i) { if(top == data.length) return 0; data[top] = i ; top++; return 1; } … } A sequence of bytecodes and monitor operations executed per push invocation: - Monitor acquisition (energy cost: μJ) - getfield: loading the value of a field (top) into an operand stack (energy cost: μJ) - getfield: loading the value of a field (data.length) into an operand stack (energy cost: μJ) - if_icmpeq: comparing a top value with a data.length value (energy cost: μJ) - iload: loading a local integer variable i into an operand stack (energy cost: μJ) - iastore: storing a local variable i into an integer array data (energy cost: μJ) - getfield: loading the value of a field (top) into an operand stack (energy cost: μJ) - iadd: adding 1 into the loaded value (energy cost: μJ) - putfield: storing the added value into a field (top) (energy cost: μJ) - return: terminating push method by returning a value (energy cost: μJ) - Monitor release (energy cost: μJ)  Energy consumption of each type of bytecode and native method – Execute a class file that executes each bytecode (or native method) type repeatedly  Energy consumption of a monitor operation – Execute a class file invoking a method that should be synchronized among multiple threads  This measurement is just an one-time effort

Communication Energy Cost Target network environment is LAN (or WLAN) consisting of dedicated routers and either stationary or mobile hosts H1H1 C1C1 … I1I1 I2I2 InIn C4C4 C2C2 C6C6 C3C3 C5C5 C7C7 H2 H2 H3 H3 H4 H4

Communication Energy Cost Cont. Transmission energy costReceiving energy cost  Modeling the communication cost based on UDP – UDP is a much more lightweight protocol than TCP  frequently used in embedded resource constrained settings

Infrastructure Energy Cost  For each JVM process p, there is an additional energy overhead due to – Garbage collection During the garbage collection, all threads except a GC thread within a JVM process stop temporarily Energy consumption is directly proportional to the time spent by a GC thread – Implicit OS routines invoked for managing a JVM process Context switching (including process rescheduling), page faults, page reclaims Energy consumption is directly proportional to the number of implicit OS routines executed Energy cost of a GC thread Energy cost of processing all the context switches Energy cost of processing all the page faults and reclaims

Construction-Time Estimation  Classify each component’s interfaces into one of the three different types – Type I interface: the amount of computation required is constant regardless of its input parameters’ values E.g., setTime interface of a Clock component – Type II interface: the amount of computation required is a function of input parameters’ size or values E.g., encrypt interface of an Encryption component – Type III interface: the amount of computation required is not a function of input parameters’ size or values E.g., query interface of a Database component

Construction-Time Estimation: Type I and II  Computational energy cost of Type I interface – Generate an arbitrary input – Calculate the computational cost of the arbitrary input  Computational energy cost of Type II interface – Generate a set of sample inputs and calculate the computational energy cost of each input – Run multiple regression on a set of inputs and their energy costs for getting an energy equation

Multiple Regression for find Interface of Shortest-Path Component Estimated (  J) Actual (  J) Point Point Point Point Point Point 6 X2 (Num. of edges) Y (Energy, μJ) X1 (Num. of nodes)

Construction-Time Estimation: Type III  Type III interface with finite execution paths – Generate a set of inputs covering all the execution paths by using symbolic execution – Calculate the computational energy cost of each input (each execution path)  Type III interface with infinite execution paths – If the expected range of inputs is known, Calculate the computational energy cost of each input – Otherwise, Generate a set of sample inputs and calculate the average computational energy cost per invocation

Runtime Estimation  Type I interface – Same as construction-time estimate  Type II interface – Monitor the input value of each invocation – Find the computational energy cost of each invocation from the energy equation generated by multiple regression  Type III interface – Monitor the amount of computation for each invocation – Calculate the computational energy cost of each invocation

Experimental Setup  iPAQ 3800 handheld device running Linux and Kaffe JVM  HP 3458-a digital multimeter for measuring the current drawn by iPAQ  Data collection computer controls the digital multimeter and reads the current samples from it Java Components PDA (iPAQ) Power Supply Digital Multimeter Data Collection Computer Measurement Setup

Evaluation: Computation SHAMD5IDEAMedian Filter LZWSortJessDBShortest path AVLLinked List Error Rate = (estimated cost – actual cost) *100 / actual cost  Evaluated a large number of open-source Java components with various characteristics  Computational, memory, and communication intensive

Evaluation: Infrastructure Error rates with respect to the number of simultaneously running components Error Rate = (estimated cost – actual cost) *100 / actual cost

Evaluation: Overall Energy Cost DB Client iPAQ (host A) Wireless router iPAQ (host B) iPAQ (host C) FTP Client IDEA LZW DB Server IDEA FTP Server IDEA LZW Distributed software system consisting of three hosts Error Rate = (estimated cost – actual cost) *100 / actual cost

Evaluation: Overall Energy Cost Cont. Error Rate = (estimated cost – actual cost) *100 / actual cost

Conclusion  A framework for estimating a distributed Java-based software system’s energy cost  Unlike previous approaches, the framework provides fine-grained energy estimates for each software component in terms of its public interface  Our evaluation indicates that the energy estimates come within 5% of the actual energy consumption  Construction-time – Can be used to make appropriate design and configuration decisions  Run-time – Energy estimates can be refined further – Can be used to manage the energy consumption of the system through dynamic reconfiguration