U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Eon: A language and runtime for perpetual systems Jacob Sorber, Alexander Kostadinov,

Slides:



Advertisements
Similar presentations
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science R3: Robust Replication Routing in Wireless Networks with Diverse Connectivity Characteristics.
Advertisements

Javascript Code Quality Check Tools Javascript Code Quality Check Tools JavaScript was originally intended to do small tasks in webpages, but now JavaScript.
SkewReduce YongChul Kwon Magdalena Balazinska, Bill Howe, Jerome Rolia* University of Washington, *HP Labs Skew-Resistant Parallel Processing of Feature-Extracting.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science R3: Robust Replication Routing in Wireless Networks with Diverse Connectivity Characteristics.
Model Checker In-The-Loop Flavio Lerda, Edmund M. Clarke Computer Science Department Jim Kapinski, Bruce H. Krogh Electrical & Computer Engineering MURI.
Computer Science Dr. Peng NingCSC 774 Adv. Net. Security1 CSC 774 Advanced Network Security Topic 7.3 Secure and Resilient Location Discovery in Wireless.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science Computer Systems Principles Deadlock Emery Berger and Mark Corner University of Massachusetts.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Exterminator: Automatically Correcting Memory Errors with High Probability Gene.
Alternate Software Development Methodologies
VanarSena: Automated App Testing. App Testing Test the app for – performance problems – crashes Testing app in the cloud – Upload app to a service – App.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Leveraging Interleaved Signal Edges for Concurrent Backscatter by Pan Hu, Pengyu.
TOSSIM A simulator for TinyOS Presented at SenSys 2003 Presented by : Bhavana Presented by : Bhavana 16 th March, 2005.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Advanced Compilers CMPSCI 710.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science CRAMM: Virtual Memory Support for Garbage-Collected Applications Ting Yang, Emery.
Operating Systems CMPSCI 377 Lecture 11: Memory Management
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Advanced Compilers CMPSCI 710.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Advanced Compilers CMPSCI 710.
U NIVERSITY OF M ASSACHUSETTS, A MHERST D EPARTMENT OF C OMPUTER S CIENCE Advanced Compilers CMPSCI 710 Spring 2003 Computing SSA Emery Berger University.
SANS A Simple Ad hoc Network Simulator Nicolas Burri Roger Wattenhofer Yves Weber Aaron Zollinger.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Electrical and Computer Engineering.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science pH: A Parallel Dialect of Haskell Jim Cipar & Jacob Sorber University of Massachusetts.
U NIVERSITY OF M ASSACHUSETTS Department of Computer Science Automatic Heap Sizing Ting Yang, Matthew Hertz Emery Berger, Eliot Moss University of Massachusetts.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Advanced Compilers CMPSCI 710.
Compiling Esterel into Static Discrete-Event Code Stephen A. Edwards Columbia University Computer Science Department New York, USA
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science Garbage Collection Without Paging Matthew Hertz, Yi Feng, Emery Berger University.
Michael Ernst, page 1 Improving Test Suites via Operational Abstraction Michael Ernst MIT Lab for Computer Science Joint.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Advanced Compilers CMPSCI 710.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Operating Systems CMPSCI 377 Lecture.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Optimal Fixed-Size Controllers for Decentralized POMDPs Christopher Amato Daniel.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science PLDI 2006 DieHard: Probabilistic Memory Safety for Unsafe Programming Languages Emery.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science John Cavazos Architecture and Language Implementation Lab Thesis Seminar University.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science Computer Systems Principles C/C++ Emery Berger and Mark Corner University of Massachusetts.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Operating Systems CMPSCI 377 Lecture.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Operating Systems CMPSCI 377 Lecture.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Operating Systems CMPSCI 377 Lecture.
CS230 Project Mobility in Energy Harvesting Wireless Sensor Network Nga Dang, Henry Nguyen, Xiujuan Yi.
The Program Design Phases
MS thesis/project ideas for MS students in the Department of Computer Science at the University of Minnesota Duluth suggestions by Dr Andrew Brooks, Heller.
2  Problem Definition  Project Purpose – Building Obfuscator  Obfuscation Quality  Obfuscation Using Opaque Predicates  Future Planning.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Parallel & Concurrent Programming: Occam Vitaliy Lvin University of Massachusetts.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2011 Predicting Solar Generation from Weather Forecasts Using Machine Learning Navin.
U NIVERSITY OF M ASSACHUSETTS, A MHERST D EPARTMENT OF C OMPUTER S CIENCE Emery Berger University of Massachusetts, Amherst Advanced Compilers CMPSCI 710.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
Disruption Tolerant Networks Aruna Balasubramanian University of Massachusetts Amherst 1.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
Multi-hop-based Monte Carlo Localization for Mobile Sensor Networks
Complexity of Algorithms
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science Computer Systems Principles Concurrency Patterns Emery Berger and Mark Corner University.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Advanced Compilers CMPSCI 710 Spring 2004 Lecture 1 Emery Berger University of Massachusetts,
Motion Planning in Games Mark Overmars Utrecht University.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 1 Automatic Heap Sizing: Taking Real Memory into Account Ting Yang, Emery Berger,
SECURE WEB APPLICATIONS VIA AUTOMATIC PARTITIONING S. Chong, J. Liu, A. C. Myers, X. Qi, K. Vikram, L. Zheng, X. Zheng Cornell University.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs By Koen Claessen, Juhn Hughes ME: Mike Izbicki.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science Software Systems Advanced Synchronization Emery Berger and Mark Corner University.
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Sensor Networks and Platforms for Advancing Water Research Prashant Shenoy University.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science Computer Systems Principles Synchronization Emery Berger and Mark Corner University.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science John Cavazos J Eliot B Moss Architecture and Language Implementation Lab University.
Learning A Better Compiler Predicting Unroll Factors using Supervised Classification And Integrating CPU and L2 Cache Voltage Scaling using Machine Learning.
Power Harvesting & Storage & Management Strategies in Wireless Sensor Networks.
Efficient Evaluation of XQuery over Streaming Data
Ch. 4 – Semantic Analysis Errors can arise in syntax, static semantics, dynamic semantics Some PL features are impossible or infeasible to specify in grammar.
Chapter 10: Process Implementation with Executable Models
CSCI1600: Embedded and Real Time Software
How much does OS operation impact your code’s performance?
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
CSCI1600: Embedded and Real Time Software
Presentation transcript:

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Eon: A language and runtime for perpetual systems Jacob Sorber, Alexander Kostadinov, Matthew Garber, Matthew Brennan †, Mark Corner, Emery Berger University of Massachusetts Amherst † University of Southern California

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Example: Tracking Turtles State of the art: Radio Telemetry On-shell GPS tracking Small, lightweight, waterproof Need to last forever—a perpetual system Wood turtle (Clemmys insculpta)

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Daily Solar Production Varies Weather and mobility = uncertain energy budget

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Energy Consumption Varies GPS energy/reading is also uncertain

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Challenges for Perpetual Systems Variable energy budget Size is limited Can’t overprovision Always on GPS = 3 hour life Need an adaptive solution Writing energy-aware code is difficult

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Eon Language and Runtime First energy-aware programming language Tight link between program and runtime Explicit data flow and energy preferences Measure energy harvesting and consumption Automatically conserve energy as needed execute an alternate implementation adjust fine grained timers

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Eon Programming Language Coordination language Structure: Directed Acyclic Graph Nodes = code written in C/NesC Edges = map node outputs to inputs Execution starts at events Flow = path from event source to handler Annotate Flows Describe how to conserve energy GPSTimer GetGPS StoreData

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 // Predicate Types typedef valid TestValid; //Node declarations GPSTimer() => (); GPSFlow() => (); GetGPS() => (GpsData_t data, bool valid); HandleGPS(GpsData_t data, bool valid) => (); LogData(GpsData_t data, bool valid) => (); LogTimeout(GpsData_t data, bool valid) => (); ListenRequest() => (msg_t msg); ReadData(msg_t msg) => (msg_t msg); SendData(msg_t msg) => (); HandleRequest(msg_t msg) => (); // Eon States // there is always an implicit BASE state stateorder {(HiGPS, Respond)}; // Sources source ListenRequest => HandleRequest; source timer GPSTiumer => GPSFlow; // Adjustable Timer Limits GPSTimer:[HiGPS] = (1 hr, 10 hr); GPSTimer:[*] = 10 hr; // Flows GPSFlow = GetGPS -> HandleGPS; HandleRequest:[*,*][Respond] = ReadData -> SendData; HandleGPS:[*,valid][*] = LogData; HandleGPS:[*,*][*] = LogTimeout; GPSFlow Example Eon Program GPSTimer ListenRequest GetGPS LogTimeout LogData ReadData SendData valid? Respond?(1 hr – 10 hr) // Adjustable Timer Limits GPSTimer:[HiGPS] = (1 hr, 10 hr); HandleRequest HandleGPS HandleRequest:[*,*][Respond] = ReadData -> SendData;

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Compiler Check program graph for errors Combine user and runtime system code Produce a single C/NesC program Compile with gcc Discrete-event simulator Let’s run it

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Runtime System Basic flow execution Choose sustainable energy state What do we need to know? Solar energy Energy consumption Not provided by most hardware. High Low Timer = 1 hr … Timer = 5 hr … Timer = 10 hr Low High

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Hardware Support Measures Energy harvested Per-flow energy Battery fullness Energy independence Easily change hardware No offline profiling Charge control: Heliomote Only required for energy adaptation

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Goal: Avoid empty and full battery Predict outcomes per state Detailed predictions are complex Too complex for motes Near-sighted approximation Choosing an energy state 50% 100% 0% Time (hours, future) Battery

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Choosing an energy state (cont) Choose between High and Low Timer ranges: find two settings Avoid empty battery Avoid full battery Any setting in between is sustainable Done! Now do it again. High(Max) High(Min) Low Avoid Waste Avoid Empty

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Evaluating Eon Performance How well does Eon manage its energy? Usability Does Eon make adaptive code easier?

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Performance Evaluation Vehicle tracking (proxy for hibernating turtles) Trace-based simulations Five two-week traces Replay with different policies Two static policies Conservative Greedy Two oracle policies Best static (energy known beforehand) Eon w/energy oracle

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Eon Performance 0% 30% 45% 5% 65% Eon performs on par with perfect weather prediction

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 User Study Compare against a group coding in C Two groups of five users Two phases Phase I: Simple app (Eon slightly slower) Phase II: Write adaptive version Time Sensor Coverage

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Writing adaptive code Eon group performed 4x faster.

U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science 2007 Conclusion Eon: a language and runtime system for self- adapting perpetual systems Ongoing work with turtles deployment in the coming months Not just for adaptive programs Code available for download