Trading Functionality for Power within Applications Melanie Kambadur and Martha A. Kim {melanie | Columbia University, New York,

Slides:



Advertisements
Similar presentations
.NET Core Libraries Common Language Runtime CodeGen Garbage Collector Security Model Exception Handling Loader & Binder Profiling & Debugging APIs Entity.
Advertisements

A Framework for Dynamic Energy Efficiency and Temperature Management (DEETM) Michael Huang, Jose Renau, Seung-Moon Yoo, Josep Torrellas University of Illinois.
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
LLNL-PRES This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DE-AC52-07NA27344.
Resurrector: A Tunable Object Lifetime Profiling Technique Guoqing Xu University of California, Irvine OOPSLA’13 Conference Talk 1.
CORK: DYNAMIC MEMORY LEAK DETECTION FOR GARBAGE- COLLECTED LANGUAGES A TRADEOFF BETWEEN EFFICIENCY AND ACCURATE, USEFUL RESULTS.
Chapter 8 Runtime Support. How program structures are implemented in a computer memory? The evolution of programming language design has led to the creation.
Stack-Based Buffer Overflows Attacker – Can take over a system remotely across a network. local malicious users – To elevate their privileges and gain.
Instructor: Umar KalimNUST Institute of Information Technology Operating Systems Virtual Memory.
Uniqueness of user names is enforced Customer information logged to database Require contact information as well as address address will.
Run-Time Storage Organization
12.1 Exceptions The limitations of traditional methods of exception handling Error conditions are a certainty in programming Programmers make.
An energy-aware framework for dynamic software management in mobile computing systems Yunsi Fei, Lin Zhong, and Niraj K. Jha Presented By Vimarsh Puneet.
Memory Management CSE451 Andrew Whitaker. Big Picture Up till now, we’ve focused on how multiple programs share the CPU Now: how do multiple programs.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
Operating System Chapter 7. Memory Management Lynn Choi School of Electrical Engineering.
CCS APPS CODE COVERAGE. CCS APPS Code Coverage Definition: –The amount of code within a program that is exercised Uses: –Important for discovering code.
Integrating Fine-Grained Application Adaptation with Global Adaptation for Saving Energy Vibhore Vardhan, Daniel G. Sachs, Wanghong Yuan, Albert F. Harris,
University of Michigan Electrical Engineering and Computer Science 1 Dynamic Acceleration of Multithreaded Program Critical Paths in Near-Threshold Systems.
Using Loop Perforation to Dynamically Adapt Application Behavior to Meet Real-Time Deadlines Henry Hoffmann, Sasa Misailovic, Stelios Sidiroglou, Anant.
Processes and OS basics. RHS – SOC 2 OS Basics An Operating System (OS) is essentially an abstraction of a computer As a user or programmer, I do not.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
TRICKLE: A Self-Regulating Algorithm for Code Propagation and Maintenance in Wireless Sensor Networks Philip Levis, Neil Patel, Scott Shenker and David.
Operating Systems (CS 340 D) Princess Nora University Faculty of Computer & Information Systems Computer science Department.
Application Heartbeats Henry Hoffmann, Jonathan Eastep, Marco Santambrogio, Jason Miller, Anant Agarwal CSAIL Massachusetts Institute of Technology Cambridge,
RUN-Time Organization Compiler phase— Before writing a code generator, we must decide how to marshal the resources of the target machine (instructions,
Lecture 13 Page 1 CS 236 Online Major Problem Areas for Secure Programming Certain areas of programming have proven to be particularly prone to problems.
WEB EDITOR MEETING Welcome. WHY HAVE THESE? We have a rather large collective of very smart, talented people Sharing ideas Communicating.
Power Guru: Implementing Smart Power Management on the Android Platform Written by Raef Mchaymech.
Exception Handling How to handle the runtime errors.
Primitive Data Types. int This is the type you are familiar with and have been using Stores an integer value (whole number) between -2,147,483,648 (-2.
*Pentium is a trademark or registered trademark of Intel Corporation or its subsidiaries in the United States and other countries Performance Monitoring.
A Software Energy Analysis Method using Executable UML for Smartphones Kenji Hisazumi System LSI Research Center Kyushu University.
Profiling/Tracing Method and Tool Evaluation Strategy Summary Slides Hung-Hsun Su UPC Group, HCS lab 1/25/2005.
LECTURE 19 Subroutines and Parameter Passing. ABSTRACTION Recall: Abstraction is the process by which we can hide larger or more complex code fragments.
AppAudit Effective Real-time Android Application Auditing Andrew Jeong
 Pearson Education, Inc. All rights reserved Methods: A Deeper Look.
Chapter 9: Virtual Memory
Chapter 6: Data Types Lectures # 10.
Linking & Loading.
Accounting information and limits
Software Development with uMPS
Online Subpath Profiling
Introduction Enosis Learning.
Survey Paper & Manuscript
Improving Program Efficiency by Packing Instructions Into Registers
Introduction to Operating Systems
Introduction Enosis Learning.
Pick up the handout on your way in!!
Chapter 9: Virtual-Memory Management
Mobile Apps – The Traveler Centric Future
GEOMATIKA UNIVERSITY COLLEGE CHAPTER 2 OPERATING SYSTEM PRINCIPLES
How much does OS operation impact your code’s performance?
TRUST:Team for Research in Ubiquitous Secure Technologies
If you knew what I know or CloudWave - Improving services in the Cloud through collaborative adaptation Eliot Salant IBM Haifa Research.
Chapter 9: Virtual Memory
Unit V Mobile Middleware.
Operating System Chapter 7. Memory Management
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Management From the memory view, we can list four important tasks that the OS is responsible for ; To know the used and unused memory partitions To allocate.
The University of Adelaide, School of Computer Science
Mobile Programming Dr. Mohsin Ali Memon.
Where is all the knowledge we lost with information? T. S. Eliot
CS334: MIPS language _Mars simulator Lab 2_1
Time Zoya Yeprem.
Dynamic Binary Translators and Instrumenters
Introduction and Overview
Presentation transcript:

Trading Functionality for Power within Applications Melanie Kambadur and Martha A. Kim {melanie | Columbia University, New York, NY PLDI 2014

2 Mobile Phone Application Running on a power constrained system; app should consume <=80W at a time.

3 Mobile Phone Application

4 Too much power! Mobile Phone Application

5 Could handle with HW DVFS (Dynamic Voltage and Frequency Scaling), but you get a slowdown 25% Increase Power ok now.

6 Smart DVFS (with OS/ Compiler/ language help) might decrease slowdown 10% Increase

7 Smart DVFS (with OS/ Compiler/ language help) might decrease slowdown 10% Increase Majority of existing techniques trade power for runtime (and only save energy when there’s no work to do)

8 Why not trade functionality instead of time? Mobile Phone Application Third Party Advertisement

9 Why not trade functionality instead of time? Temporarily kill ad, and save energy as well as power! 0% Increase

Use dynamic feedback to decide if and when to make functionality tradeoffs. 10 Profile power if (too much power), then: else, resume… Start ad Mobile Phone App Kill ad

Specifically, use Energy Exchanges 11 audit { … } record(usage_t *u) Start ad Mobile Phone App Kill ad if (u->power >= 80): else continue

Challenges to address Accuracy / Precision Efficiency of the profiling itself Interoperability with existing power tools Programmability / Usability 12

Challenges to address Accuracy / Precision Efficiency Interoperability power saving tools Programmability 13 Could handle w/ HW, but need to deal with new limitations: - too few counters - counter overflow - security

Energy Exchanges made possible by C++ Library: NRGX.h 14 Built on Intel RAPL counters Primitives to wrap code in power, energy, and runtime called “audits” Efficiently handles multiple audits Attempts to overcome HW limitations

Example: bodytrack 15 for (int i=0; i < frames; i=i+1) { // DO FRAME PROCESSING } Goal: keep program’s entire execution within a predetermined energy budget

Example: bodytrack 16 for (int i=0; i < frames; i=i+1) { // DO FRAME PROCESSING } Goal: keep program’s entire execution within a predetermined energy budget

17 #define BUDGET 2000 // in Joules or relative to system double per_frame = BUDGET/frames; int framestep = 1; for (int i=0; i < frames; i=i+framestep) { audit { // DO FRAME PROCESSING } record (usage_t *this_frame); double energy = this_frame->energy; ALLOCATION -= energy; // if frame didn’t take % of allocation, reset framestep if ((energy > per_frame) || (energy < 0.9*per_frame)) { per_frame = (ALLOCATION/(frames-I)); framestep = (int) ceil(energy/per_frame); } Allocate a total budget for the program, divide into per frame budget

18 #define BUDGET 2000 // in Joules or relative to system double per_frame = BUDGET/frames; int framestep = 1; for (int i=0; i < frames; i=i+framestep) { audit { // DO FRAME PROCESSING } record (usage_t *this_frame); double energy = this_frame->energy; ALLOCATION -= energy; // if frame didn’t take % of allocation, reset framestep if ((energy > per_frame) || (energy < 0.9*per_frame)) { per_frame = (ALLOCATION/(frames-I)); framestep = (int) ceil(energy/per_frame); } Dynamically adjust framestep to approximate the frame processing (by skipping frames)

19 #define BUDGET 2000 // in Joules or relative to system double per_frame = BUDGET/frames; int framestep = 1; for (int i=0; i < frames; i=i+framestep) { audit { // DO FRAME PROCESSING } record (usage_t *this_frame); double energy = this_frame->energy; ALLOCATION -= energy; // if frame didn’t take % of allocation, reset framestep if ((energy > per_frame) || (energy < 0.9*per_frame)) { per_frame = (ALLOCATION/(frames-i)); framestep = (int) ceil(energy/per_frame); } Start profiling. Stop profiling, collect usage. Access usage record.

20 #define BUDGET 2000 // in Joules or relative to system double per_frame = BUDGET/frames; int framestep = 1; for (int i=0; i < frames; i=i+framestep) { audit { // DO FRAME PROCESSING } record (usage_t *this_frame); double energy = this_frame->energy; BUDGET -= energy; // if frame didn’t take % of allocation, reset framestep if ((energy > per_frame) || (energy < 0.9 * per_frame)) { per_frame = (BUDGET / (frames - i)); framestep = (int) ceil(energy / per_frame); } Adjust framestep if we’re not using % of per_frame budget.

Result: energy stays within any budget 21 BUDGET

Questions? 22 Tech Report (more examples, implementation