graduate seminar 198:673 (index 17353) fall 2016 lecture 3 ...research.cs.rutgers.edu › ~uli ›...

19
Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 Energy-Aware Redundancy Management of Heterogeneous Software/Hardware Systems Ulrich Kremer Professor CoRE 318 [email protected]

Upload: others

Post on 04-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3

Energy-Aware Redundancy Management of Heterogeneous Software/Hardware Systems

Ulrich Kremer Professor CoRE 318

[email protected]

Page 2: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Seminar target domains and systems

Heterogeneous hardware/software systems Example: GPGPU (CPU + GPU)

Smartphones (Android)

Robots

We will need to be able to measure power/energy

Your own system ? Some funds from recent NSF project

Page 3: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

How to Read A Research Paper?

Nice paper by S. Keshav “How to Read a Paper” Available on our seminar website (on the bottom of page)

Idea: Read paper in three passes 1.  Quick read (bird’s eye view)

•  Carefully read title, abstract, introduction •  Read subheadings •  Read conclusion

2.  Read with greater care, but ignore details (no proofs, detailed algorithms, etc.)

•  Look at graphs •  Mark skipped sections

3.  Read in detail •  Try to “re-implement” the paper •  Put work into bigger context

There are videos and other presentation on the bottom of our seminar website. Will help you to survive grad school!

Page 4: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

How to Present A Research Paper?

Research talk: Chicken Chicken Chicken Doug Zongker, University of Washington

2007

https://www.youtube.com/watch?v=yL_-1d9OSdk

Why is this so funny ? It reflect the basic structure of a standard research talk, but is totally content free.

1. Title and motivation of work - what are you trying to do? - why is this important and we should care? 2. Outline of talk, i.e., what will you talk about? 3. Related work - what have others done and what are you doing? 4. Overall system description - what was actually done? 5 . Experimental validation - how did you show how well it worked? 6. Summary and conclusion

Page 5: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Paper List (tentative)

Classification of approximation and redundancy research 1.  Mobile computing (smartphones) 2.  Systems (languages, compilers, OS, runtime systems) 3.  Hardware 4.  Websearch and cloud computing (Hadoop, MapReduce)

All papers are available through our sakai pages in the Resource folder. You must be registered for the seminar to access our sakai pages.

We will choose only some of these papers for presentation, and may choose other related papers if needed.

Page 6: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Mobile Computing

Adaptive Spatiotemporal Node Selection in Dynamic Networks Pradip Hari1, John B. P. McCabe1, Jonathan Banafato, Marcus Henry, Kevin Ko, Emmanouil Koukoumidis, Ulrich Kremer, Margaret Martonosi, and Li-Shiuan Peh, PACT 2010. [Sarana-PACT10.pdf]

CAreDroid: Adaptation Framework for Android Context-Aware Applications Salma Elmalaki, Lucas Wanner, Mani Srivastava, MobiCom 2015 [CAreDroid-MOBICOM15.pdf]

DynAGreen: Hierarchical Dynamic Energy Efficient Task Assignment for Wireless Healthcare Systems, Priti Aghera, Dilip Krishnaswamy, Tajana Rosing, BodyNets 2010 [DynAGreen-BODYNET10.pdf]

Improving Energy Efficiency of Location Sensing on Smartphones Zhenyun Zhuang, Kyu-Han Kim, Jatinder Pal Singh, MobiSys 2010 [LocationSensing-MOBISYS10.pdf]

Chameleon: A Color-Adaptive Web Browser for Mobile OLED Displays Mian Dong and Lin Zhong, MobiSys 2011 [Chameleon-MOBISYS11.pdf]

Crayon: Saving Power through Shape and Color Approximation on Next-Generation Displays Phillip Stanley-Marbell , Virginia Estellers, Martin Rinard, EuroSys 2016 [Crayon-EUROSYS16.pdf]

Page 7: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Systems (1)

Green: A Framework for Supporting Energy-Conscious Programming using Controlled Approximation Woongki Baek and Trishul M. Chilimbi , PLDI 2010 [Green-PLDI10.pdf]

EnerJ: Approximate Data Types for Safe and General Low-Power Computation A. Sampson, W. Dietl, E. Fortuna, D. Gnanapragasam, L. Ceze, D. Grossman, PLDI 2011 [EnerJ-PLDI11.pdf]

Chisel: Reliability- and Accuracy-Aware Optimization of Approximate Computational Kernels Sasa Misailovic, Michael Carbin, Sara Achour, Zichao Qi, Martin Rinard, OOPSLA 2014 [Chisel-OOPSLA14.pdf]

Dynamic Knobs for Responsive Power-Aware Computing H. Hoffmann, S. Sidiroglou, M. Carbin, S. Misailovic, A. Agarwal, M. Rinard, ASPLOS 2011 [DynamicKnobes-ASPLOS11.pdf]

Architecture Support for Disciplined Approximate Programming Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, Doug Burger, ASPLOS 2012 [Truffle-ASPLOS12.pdf]

JouleGuard: Energy Guarantees for Approximate Applications Henry Hoffmann, SOSP 2015 [JouleGuard—SOSP15.pdf]

Page 8: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Systems (2)

Uncertain<T>: A First-Order Type for Uncertain Data James Bornholt , Todd Mytkowicz , Kathryn S. McKinley, ASPLOS 2014 [UncertainT-ASPLOS14.pdf]

Managing Performance vs. Accuracy Trade-offs With Loop Perforation Stelios Sidiroglou, Sasa Misailovic, Henry Hoffmann , Martin Rinard, FSE 11 [LoopPerforation-FSE11.pdf]

MEANTIME: Achieving Both Minimal Energy and Timeliness with Approximate Computing Anne Farrell, Henry Hoffmann, USENIX 2016 [Meantime-USENIX16.pdf]

Maximizing Performance Under a Power Cap: A Comparison of Hardware, Software, and Hybrid Techniques Huazhe Zhang , Henry Hoffmann, ASPLOS 2016 [PUPiL-ASPLOS16.pdf]

Page 9: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Systems (3)

Probabilistic Programming Andrew D. Gordon , Thomas A. Henzinger , Aditya V. Nori , ICSE 2014 [ProbabilisticProgramming-ICSE14.pdf]

AIR - A Framework for Exploiting Redundancies in Service-Based Applications Ulrich Kremer and Liu Liu, [RSDG-TR720-October2015.pdf]

Randomized Accuracy-Aware Program Transformations For Efficient Approximate Computations Z. A. Zhu, S. Misailovic, J. A. Kelner, M. Rinard, POPL 2012 [ProgramTransformatinsForApproximateComputing-POPL12.pdf]

Paraprox: Pattern-Based Approximation for Data Parallel Applications Mehrzad Samadi, Davoud Anoushe Jamshidi, Janghaeng Lee, and Scott Mahlke ,ASPLOS 2014 [Paraprox-ASPLOS14.pdf]

Page 10: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Hardware and Web Search

Load Value Approximation Joshua San Miguel Mario Badr Natalie Enright Jerger, MICRO 2014 [LoadValueApproximation-MICRO14.pdf]

Rumba: An Online Quality Management System for Approximate Computing Daya S Khudia Babak Zamirai Mehrzad Samadi Scott Mahlke, ISCA 2015 [Rumba-ISCA15.pdf]

ApproxHadoop: Bringing Approximations to MapReduce Frameworks �In �igo Goiri, Ricardo Bianchini, Santosh Nagarakatte, Thu D. Nguyen, ASPLOS 2015 [ApproxHadoop-ASPLOS15.pdf]

Page 11: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Redundancy has been mainly used to make systems more reliable and robust: Provide the same functionality ! input/output behavior at the same quality level under adverse conditions ! system component failures (Space Shuttle, Tandem computers, RAID) ! bit errors (error correction codes) ! program bugs (multi-version codes implementing different algorithms) ! communication failures (“robust” protocols: resend message, rerouting)

Approximation is a form of redundancy where you drop the requirement of the same input/output behavior at the same quality level. Traditional examples: ! lossy compression ! dropping communication packets (packets don’t reach) ! asynchronous communication (packets reach, but are overwritten)

Our research: How to use redundancy and approximations to build an overall more effective system with a desired and acceptable cost/performance/energy tradeoff.

Review- Redundancy

Page 12: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Model approximation (solving a real-world problem through an algorithm): - use a simpler view of the world (ground truth) that still works for a particular application (example: assume the world is flat for a car-navigation application) - even optimal solution of the model is approximation to ground truth (e.g.: simplified physical interactions)

Data approximations : - less precise data (e.g.: single vs. double) - use a subset of data (e.g.: statistical representation, subset probing) - probabilistic data values

Computation approximation: - solve a model non-optimally + relaxed convergence criteria + imprecise solution strategies (e.g.: simpler stencil for PDE solvers) + probabilistic solution strategies

Review- Classification of approximations

Page 13: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Example: Data flow analysis

How to represent information?

Answer: Represent information as “elements” in a semi-lattice

A meet semi-lattice (Info, ∧) • domain of values Info • meet operator ∧: Info x Info -> Info

With binary operator ∧ is commutative: a ∧ b = b ∧ a associative: a ∧ (b ∧ c) = (a ∧ b) ∧ c idempotent: a ∧ a = a

The meet operator ∧ can be used to define a partial order over pieces of information:

a ∧ b = a IFF a ≤ b

Page 14: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Semi-lattice

Examples of partial orders over domain Info:

Greatest lower bound: x ∧ y = First common descendant of x & y; Has to be uniquely defined!

Are they all meet semi-lattices?

Page 15: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

A meet semi-lattice is bounded if there exists a top element T, Such that x ∧ T = x for all x.

A bottom element ⊥ exists ,if x ∧⊥=⊥ for all x.

Which of the meet semi-lattice on the previous slides are bounded?

Which have also a bottom element?

What would be an interpretation of the top and bottom element in terms of their information content?

Bounded semi-lattice

Page 16: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

“Canonical” semi-lattice

Example semi-lattice

{ } = ⊥

{a} {b} {c}

{a, b} {a, c}

{b, c}

{a, b, c} = T

Approximation: We could think of T as the best quality answer that we can produce, and ⊥ as the least quality answer. Service qualities may not form a total order. This may be useful for the RSDG representation.

Page 17: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Lattice

Example lattice

{ } = ⊥

{a} {b} {c}

{a, b} {a, c}

{b, c}

{a, b, c} = T

A lattice (Info, ∧, V) has two binary operators • domain of values Info • meet operator ∧: Info x Info -> Info • join operator : V: Info x Info -> Info

with binary operators are basically “duals” of each other that model information “intersection” (meet) and “union” (join). Both (Info, ∧) and (Info, V) are semi-lattices.

The operators ∧ and V define a partial order over Info (pieces of information):

a V b = b IFF a ∧ b = a IFF a ≤ b

Page 18: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Exercise

You are given a rectangular, 2-dimensional array.

Build a lattice that models the “intersection” and the “union” of two rectangular array regions “a” and “b”. Note: the regions may or may not overlap.

a

b

a ∧ b =

a V b =

Do we have to use approximation here?

Page 19: Graduate Seminar 198:673 (index 17353) Fall 2016 Lecture 3 ...research.cs.rutgers.edu › ~uli › cs673 › lectures › lec03-introduction.pdfSystems (3) Probabilistic Programming

cs673, fall 16

Example: Data flow analysis

One classical application for semi-lattices

Data-flow problems (Info, V) are defined by – A semi-lattice • domain of values Info • operator V : Info x Info -> Info – A family of transfer functions F : Info -> Info