overview of quanto
play

Overview of Quanto ukasz Zubkowicz 17 listopada 2010 ukasz - PowerPoint PPT Presentation

Introduction to Quanto Some details Overview of Quanto ukasz Zubkowicz 17 listopada 2010 ukasz Zubkowicz Overview of Quanto Introduction to Quanto Basic information Some details About project About authors University of California


  1. Introduction to Quanto Some details Overview of Quanto Łukasz Zubkowicz 17 listopada 2010 Łukasz Zubkowicz Overview of Quanto

  2. Introduction to Quanto Basic information Some details About project About authors University of California (Berkeley): Rodrigo Fonseca , Prabal Dutta Stanford University: Philip Lewis , Ion Stoica Łukasz Zubkowicz Overview of Quanto

  3. Introduction to Quanto Basic information Some details About project Support Two National Science Foundation grants Microsoft Intel HP Sharp Łukasz Zubkowicz Overview of Quanto

  4. Introduction to Quanto Basic information Some details About project Purpose Project’s objective is to measure power draft in a novel approach. It works on HydroWatch embedded systems (MSP430) under TinyOS, but the idea is supposed to work on other configurations as well. Quanto enables energy profiling in real environment what is useful in comparing different project decisions and verifying claims about low energy usage from a number of other projects. Łukasz Zubkowicz Overview of Quanto

  5. Introduction to Quanto Basic information Some details About project Terminology Energy sinks (e.g. radio transceiver, temperature sensor, CPU). Power states (tuples of energy sinks’ power states). (RADIO RX, TEMPSENSOR CONV, CPU SLEEP) Activities (16-bit pairs of node id and activity). (NODE ID, ACTIVITY) Łukasz Zubkowicz Overview of Quanto

  6. Introduction to Quanto Basic information Some details About project Input Project requires real-time data from power switching regulator. The rest of conditions is defined statically (set of tracked activities, possible power states). All energy sinks must be considered completly - otherwise output would be inaccurate. Łukasz Zubkowicz Overview of Quanto

  7. Introduction to Quanto Basic information Some details About project Output Hardware performs energy logging and dumping results to an external destination. Off-line processing allows to recognize energy breakdown among activities during a period of time. Activities are being tracked over the whole network , not only one device. Łukasz Zubkowicz Overview of Quanto

  8. Introduction to Quanto Basic information Some details About project Example of results This picture describes only a form the results might have after analysis. It does not show any real data. Łukasz Zubkowicz Overview of Quanto

  9. Introduction to Quanto Basic information Some details About project Performance Why is it so important? The faster, the more accurate it is. Logging takes 102 cycles (Blink example: 71.05% of active time, 0.12% of total time, 0.08% of total energy). Transferring logs to external destinations takes between 4 and 15% of active time, but it doesn’t affect accuracy. The chages introduced to the TinyOS: 1275 new LOC, 350 modified LOC. Łukasz Zubkowicz Overview of Quanto

  10. Introduction to Quanto Basic information Some details About project Limitations Constant per-state power draws. Linear independence. Modifications to system. Energy usage visibility. Hardware energy metering. Łukasz Zubkowicz Overview of Quanto

  11. Introduction to Quanto Basic information Some details About project Enabled research Energy leaks Tracking butterfly effects Real time tracking (on-line processing) Energy-aware operating systems (scheduling) Continuous profiling Łukasz Zubkowicz Overview of Quanto

  12. Introduction to Quanto Basic information Some details About project Borrowed solutions/ideas Energy as a first class resource (ECOSystem). Current metering (iCount). Power breakdown (PowerTOSSIM). Activities as a basic abstraction (RIALTO operating system) and their tracking (EON). Others (like network-wide impact). Łukasz Zubkowicz Overview of Quanto

  13. Introduction to Quanto Energy tracking Some details Activity tracking Exposing power states Device drivers must be enriched to use the following interface: i n t e r f a c e PowerState { // Sets the powerstate to v a l u e . async command void s e t ( p o w e r s t a t e t v a l u e ) ; // Sets the b i t s r e p r e s e n t e d by mask to v a l u e . async command void s e t B i t s ( p o w e r s t a t e t mask , u i n t 8 t o f f s e t , p o w e r s t a t e t v a l u e ) ; } Łukasz Zubkowicz Overview of Quanto

  14. Introduction to Quanto Energy tracking Some details Activity tracking Exposing power states - an example For many peripherals it is very simple to obtain. Below is the example with LEDs: async command void Leds . led0On () { c a l l Led0PowerState . s e t ( 1 ) ; // S e t t i n g pin to low t u r n s Led on c a l l Led0 . c l r ( ) ; } async command void Leds . l e d 0 O f f () { c a l l Led0PowerState . s e t ( 0 ) ; // S e t t i n g pin to high t u r n s Led o f f c a l l Led0 . s e t ( ) ; } Łukasz Zubkowicz Overview of Quanto

  15. Introduction to Quanto Energy tracking Some details Activity tracking Power state tracking The core of the Quanto system exposes such an interface to log powerstate changes: i n t e r f a c e PowerStateTrack { // C a l l e d i f an energy s i n k power s t a t e changes async event void changed ( p o w e r s t a t e t v a l u e ) ; } Łukasz Zubkowicz Overview of Quanto

  16. Introduction to Quanto Energy tracking Some details Activity tracking Regression Energy breakdown is calculated off-line. To calculate the results, the weighted multivariate least squares method is implemented. The method requires having collected sufficiently many linearly independent data. The problem is similar to solving a set of linearly independent equations. The difference is that data is slightly incorrect (mostly due to measurement errors). Łukasz Zubkowicz Overview of Quanto

  17. Introduction to Quanto Energy tracking Some details Activity tracking API for single activity devices Components which can perform only one activity at a time must implement the following interface: i n t e r f a c e S i n g l e A c t i v i t y D e v i c e { // Returns the c u r r e n t a c t i v i t y async command a c t t get ( ) ; // Sets the c u r r e n t a c t i v i t y async command void s e t ( a c t t n e w A c t i v i t y ) ; // Sets the c u r r e n t a c t i v i t y and i n d i c a t e s // that the p r e v i o u s a c t i v i t y s r e s o u r c e // usage should be charged to the new one async command void bind ( a c t t n e w A c t i v i t y ) ; } Łukasz Zubkowicz Overview of Quanto

  18. Introduction to Quanto Energy tracking Some details Activity tracking API for multiple activity devices Components which can perform more than one activity at a time must implement the following interface: i n t e r f a c e M u l t i A c t i v i t y D e v i c e { // Adds an a c t i v i t y to the s e t of c u r r e n t // a c t i v i t i e s f o r t h i s d e v i c e async command e r r o r t add ( a c t t a c t i v i t y ) ; // Removes an a c t i v i t y from the s e t of c u r r e n t // a c t i v i t i e s f o r t h i s d e v i c e async command e r r o r t remove ( a c t t a c t i v i t y ) ; } Examples of such devices are timers or radio transceivers. Their work may be useful for multiple activities at once. Łukasz Zubkowicz Overview of Quanto

  19. Introduction to Quanto Energy tracking Some details Activity tracking Example of an API usage This is how the high level of API usage for a client programmer should look like: task void sensorTask () { c a l l CPUActivity . s e t (ACT HUM) ; c a l l Humidity . read ( ) ; c a l l CPUActivity . s e t (ACT TEMP) ; c a l l Temperature . read ( ) ; } sendIfDone () { void ( sensingDone ) { i f c a l l CPUActivity . s e t (ACT PKT ) ; post sendTask ( ) ; sensingDone = 0; } } Łukasz Zubkowicz Overview of Quanto

  20. Introduction to Quanto Energy tracking Some details Activity tracking Activity propagation - an example System programmers who develop device drivers are responsible for propagating activity labels should follow more or less the pattern on the listing: void loadTXFIFO () { . . . // prepare packet . . . c a l l R a d i o A c t i v i t y . s e t ( c a l l CPUActivity . get ( ) ) ; c a l l TXFIFO . w r i t e (( u i n t 8 t ∗ ) header , header − > l e n g t h − 1 ) ; } Łukasz Zubkowicz Overview of Quanto

  21. Introduction to Quanto Energy tracking Some details Activity tracking Activity tracking The Quanto’s module for collecting activity data for accounting implements the following interfaces: i n t e r f a c e S i n g l e A c t i v i t y T r a c k { async event void changed ( a c t t n e w A c t i v i t y ) ; async event void bound ( a c t t n e w A c t i v i t y ) ; } i n t e r f a c e M u l t i A c t i v i t y T r a c k { async event void added ( a c t t a c t i v i t y ) ; async event void removed ( a c t t a c t i v i t y ) ; } Łukasz Zubkowicz Overview of Quanto

  22. Introduction to Quanto Some details Bibliografia R. Fonseca, P. Dutta, P. Levis, and I. Stoica: “Quanto: Tracking Energy in Networked Embedded Systems“, in Proceedings USENIX OSDI 2008, San Diego, CA, USA, December 2008. All code examples come from the paper listed above. Łukasz Zubkowicz Overview of Quanto

Recommend


More recommend