Types for Energy Management

28
Types for Energy Management Yu David Liu State University of New York (SUNY) at Binghamton OOPSLA’13 PC Workshop

description

Types for Energy Management. Yu David Liu State University of New York (SUNY) at Binghamton. OOPSLA’13 PC Workshop. Energy Efficiency in Computing. operational cost phone battery life sensor network usability system reliability (overheating) environment. High-Level Questions. - PowerPoint PPT Presentation

Transcript of Types for Energy Management

Page 1: Types for Energy Management

Types for Energy Management

Yu David Liu

State University of New York (SUNY)

at Binghamton

OOPSLA’13 PC Workshop

Page 2: Types for Energy Management

2

Energy Efficiency in Computing

PL & SEefforts

PACT, ASPLOS

OSDI, SOSP, SenSys,

SIGCOMMISCA,

MICRO, HPCA

VLSI, DAC

operational cost phone battery

life sensor network

usability system

reliability (overheating)

environment

Page 3: Types for Energy Management

3

High-Level Questions

What are the principles of energy management? recurring themes of software-hardware

interactions recurring themes of static-dynamic interactions

How can the principles be abided by at software construction time (or through software lifecycle)?

What is the role of programmers in energy-efficient computing?

Page 4: Types for Energy Management

4

This Talk

An energy-aware programming language design

Core Idea: building the principles of energy management into a type system Static Typing:

Michael Cohen, Haitao Steve Zhu, Senem Ezgi Emgin, Yu David Liu, "Energy Types," OOPSLA’12.

Hybrid Typing: ongoing work

Page 5: Types for Energy Management

5

Energy Types

Phase• A pattern of system (CPU, memory…) utilization• “math”, “graphics”, “audio”…

• A level of energy state• “battery low”, “battery high”, “battery charged”…

Mode

A type system to reason about energy management based on

two concepts:

Page 6: Types for Energy Management

6

Energy Types

Phase• A pattern of system (CPU, memory…) utilization• “math”, “graphics”, “audio”…

• A level of energy state• “battery low”, “battery high”, “battery charged”

Mode

A type system to reason about energy management based on

two concepts:

Page 7: Types for Energy Management

7

CPU-boundclass Compute{

void doCompute(){

for(int i = 0; i < N; i++){

pi += factor/(2 * i + 1);

factor /= -3.0;

}}}

class Draw{

void doDraw(){

for(int i = 0; i < NUM; i++) {

canvas.drawL(x[i], y[i],);

c.draw(getImg(), rect);

}}}

I/O-bound

Phases in Programs

Page 8: Types for Energy Management

8

Draw draw = new Draw();

Compute cmpt = new Compute();

draw.doDraw();

cmpt.doCompute();

Draw draw = new Draw();

Phases in Programs

Page 9: Types for Energy Management

9

Draw draw = new Draw();

Compute@phase(math) cmpt = new Compute();

draw.doDraw();

cmpt.doCompute();

Draw@phase(graphics) draw = new Draw();

phases { graphics <cpu math}

Phases as Type Qualifiers

Page 10: Types for Energy Management

10

DVFS in Energy Management

Energy = Power * Time

Dynamic Voltage & Frequency Scaling (DVFS)

Power = c * Frequency * V2

Page 11: Types for Energy Management

11

Phase-based Energy Management

What: divide execution into distinct system utilization “phases”, and scale down CPU frequency when a phase is not CPU-bound

Why: minimum performance degradation with maximum energy savings

Energy Types Solution: use (declared or inferred) phase types to guide DVFS

A case of software-hardware interaction for energy management

Page 12: Types for Energy Management

12

Draw draw = new Draw();

Compute@phase(math) cmpt = new Compute();

draw.doDraw();

cmpt.doCompute();

Draw@phase(graphics) draw = new Draw();

phases { graphics <cpu math}

Phases as Type Qualifiers

CPU frequency scaled through

compiler instrumentation

CPU frequency scaled through

compiler instrumentation

Energy Management through Type-Directed DVFS:

1. tap programmer knowledge 2. tap type systems’ ability for consistency checking, type propagation and inference

Page 13: Types for Energy Management

13

Invariants Phase distinction: No object can

commit to more than one phase Phase isolation: an object can only

send messages to an object belonging to the same phase Inter-phase messaging is only

allowed through explicit type coercion

Promoting phased behaviors

Page 14: Types for Energy Management

14

Type System DetailsBased on region types: phases are

regionsParametric polymorphism:

Different objects of the same class can have different phases

Finer-grained support through method polymorphism

Explicit form: “generic” phases Implicit form: polymorphic inference

to allow for arbitrary qualifier elisionType Soundness

Page 15: Types for Energy Management

15

Energy Types

Phase• A pattern of CPU and memory utilization• “math”, “graphics”, “audio”

• A level of energy state expectation• “battery low”, “battery high”, “battery charged”

Mode

A type system to reason about energy management based on

two concepts

Page 16: Types for Energy Management

16

Renderer m1 = new Renderer(0.99);Renderer m2 = new Renderer(0.5);

Objects of different qualities

Mode-based Energy Managementclass Renderer{ Renderer(double quality){ int loopNum = 1000 * quality; for(int i = 0; i < loopNum; i++){ render(canvas, i); }}}

Page 17: Types for Energy Management

17

Renderer m1 = new Renderer(0.99);

Renderer m2 = new Renderer(0.5);

Modes as Type Qualifiers

modes { low <: hi; }

Renderer@mode(hi) m1 = new Renderer(0.99);

Renderer@mode(low) m2 = new Renderer(0.5);

Encouraging Application-Specific Energy Savings

Page 18: Types for Energy Management

18

Invariants waterfall Invariant: an object can

only send messages to an object of the same mode, or of a “lower” mode in the partial order A program in “high” energy state can

invoke code supposed to be used in “low” energy state

The other way around requires explicit type coercion

Regulating Energy States

Page 19: Types for Energy Management

19

Type System DetailsBased on region types: modes are

regionsParametric polymorphism:

Different objects of the same class can have different modes

Finer-grained support through method polymorphism

Explicit form: “generic” modes Implicit form: polymorphic inference

to allow for arbitrary qualifier elisionType Soundness

Page 20: Types for Energy Management

20

Ongoing Effort: Hybrid Typingclass Network { void send() {…}}

class Client {…Network n = new Network();while (…) { n.send();}}

Page 21: Types for Energy Management

21

Ongoing Effort: Hybrid Typingclass Network { void send() {…}}

class Client {…Network@mode(hi) n = new Network();while (…) { n.send();}}

Hmm..

Page 22: Types for Energy Management

22

Ongoing Effort: Hybrid Typingclass Network { void send() {…}}

class Client {…Network@mode(low) n = new Network();while (…) { n.send();}}

Hmm..

Page 23: Types for Energy Management

23

Dynamic Typesclass Network { void send() {…}}

class Client {…Network@mode(dynamic) n = new Network();while (…) { n.send();}}

Page 24: Types for Energy Management

24

From Dynamic to Static (One Possible Design)

class Network { void send() {…}}

class Client {…Network@mode(dynamic) n = new Network();while (…) { ((Network@mode(low))n).send();}}

Client MakesDecision

Hmm..

Page 25: Types for Energy Management

25

From Dynamic to Static (Our Design)class Network { void send() {…} ~ Network () { if (…) return hi else return low; }}

class Client {…Network@mode(dynamic) n = new Network();while (…) { attribute n to low { n.send(); }}}

Bi-DirectionalDecision

Page 26: Types for Energy Management

26

Implementation and Evaluation

Prototyped compiler for Android Apps

Static typing: benchmarking results show promising energy savings with minimal performance loss For some game benchmarks, 40%

energy savings and 2% performance loss with phases; application-specific with modes

Hybrid typing: under development

Page 27: Types for Energy Management

27

Conclusions

New language designs may capture and facilitate complex software/hardware static/dynamic interactions in energy management

Principles of energy management may be enforced by type systems

Energy-aware programming broadens the scope of energy optimization by bringing in programmer knowledge

Page 28: Types for Energy Management

28

Q&A