Reliable and Efficient Programming Abstractions for Sensor Networks Nupur Kothari, Ramki Gummadi (USC), Todd Millstein (UCLA) and Ramesh Govindan (USC)

Slides:



Advertisements
Similar presentations
Towards Data Mining Without Information on Knowledge Structure
Advertisements

TWO STEP EQUATIONS 1. SOLVE FOR X 2. DO THE ADDITION STEP FIRST
Analysis of Computer Algorithms
Technische universität dortmund fakultät für informatik informatik 12 Specifications and Modeling Peter Marwedel TU Dortmund, Informatik
1 Multithreaded Programming in Java. 2 Agenda Introduction Thread Applications Defining Threads Java Threads and States Examples.
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Chapter 11 Separate Compilation and Namespaces. Copyright © 2006 Pearson Addison-Wesley. All rights reserved Learning Objectives Separate Compilation.
Copyright © 2002 Pearson Education, Inc. Slide 1.
Multi-RQP Generating Test Databases for the Functional Testing of OLTP Applications Carsten Binnig Joint work with: Donald Kossmann, Eric Lo DBTest Workshop,
Software Transactional Objects Guy Eddon Maurice Herlihy TRAMP 2007.
Cognitive Radio Communications and Networks: Principles and Practice By A. M. Wyglinski, M. Nekovee, Y. T. Hou (Elsevier, December 2009) 1 Chapter 12 Cross-Layer.
By D. Fisher Geometric Transformations. Reflection, Rotation, or Translation 1.
Towards Automating the Configuration of a Distributed Storage System Lauro B. Costa Matei Ripeanu {lauroc, NetSysLab University of British.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
Energy-Efficient Distributed Algorithms for Ad hoc Wireless Networks Gopal Pandurangan Department of Computer Science Purdue University.
and 6.855J Cycle Canceling Algorithm. 2 A minimum cost flow problem , $4 20, $1 20, $2 25, $2 25, $5 20, $6 30, $
Wireless Networks Should Spread Spectrum On Demand Ramki Gummadi (MIT) Joint work with Hari Balakrishnan.
Credit hours: 4 Contact hours: 50 (30 Theory, 20 Lab) Prerequisite: TB143 Introduction to Personal Computers.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
0 - 0.
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
MULTIPLYING MONOMIALS TIMES POLYNOMIALS (DISTRIBUTIVE PROPERTY)
Addition Facts
Data recovery 1. 2 Recovery - introduction recovery restoring a system, after an error or failure, to a state that was previously known as correct have.
1 Term 2, 2004, Lecture 9, Distributed DatabasesMarian Ursu, Department of Computing, Goldsmiths College Distributed databases 3.
1 Interprocess Communication 1. Ways of passing information 2. Guarded critical activities (e.g. updating shared data) 3. Proper sequencing in case of.
Lecture 10 Flow of Control: Loops (Part 2) COMP1681 / SE15 Introduction to Programming.
1 Data Link Protocols By Erik Reeber. 2 Goals Use SPIN to model-check successively more complex protocols Using the protocols in Tannenbaums 3 rd Edition.
Universitá degli Studi di LAquila Mälardalens Högskola, Västerås 10th September 2009 Integrating Wireless Systems into Process Industry and Business Management.
Chapter 1 Introduction Copyright © Operating Systems, by Dhananjay Dhamdhere Copyright © Introduction Abstract Views of an Operating System.
Tintu David Joy. Agenda Motivation Better Verification Through Symmetry-basic idea Structural Symmetry and Multiprocessor Systems Mur ϕ verification system.
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Utility Optimization for Event-Driven Distributed Infrastructures Cristian Lumezanu University of Maryland, College Park Sumeer BholaMark Astley IBM T.J.
Operating Systems: Monitors 1 Monitors (C.A.R. Hoare) higher level construct than semaphores a package of grouped procedures, variables and data i.e. object.
Making Time-stepped Applications Tick in the Cloud Tao Zou, Guozhang Wang, Marcos Vaz Salles*, David Bindel, Alan Demers, Johannes Gehrke, Walker White.
IONA Technologies Position Paper Constraints and Capabilities for Web Services
Database System Concepts and Architecture
Executional Architecture
Chapter 5 Test Review Sections 5-1 through 5-4.
Addition 1’s to 20.
25 seconds left…...
Dynamic Location Discovery in Ad-Hoc Networks
Writing Programs that Work Nupur Kothari University of Southern California Roy Shea University of California, Los Angeles.
IPS: Implementation of Protocol Stacks for Embedded Systems Yan Wang Halmstad University, Sweden The Second Internal EPC Workshop IPS, Halmstad University,
Håkan Sundell, Chalmers University of Technology 1 Evaluating the performance of wait-free snapshots in real-time systems Björn Allvin.
Week 1.
We will resume in: 25 Minutes.
Mani Srivastava UCLA - EE Department Room: 6731-H Boelter Hall Tel: WWW: Copyright 2003.
Chapter 30 Induction and Inductance In this chapter we will study the following topics: -Faraday’s law of induction -Lenz’s rule -Electric field induced.
From Model-based to Model-driven Design of User Interfaces.
The University of Adelaide, School of Computer Science
New Opportunities for Load Balancing in Network-Wide Intrusion Detection Systems Victor Heorhiadi, Michael K. Reiter, Vyas Sekar UNC Chapel Hill UNC Chapel.
Exploring Energy-Latency Tradeoffs for Broadcasts in Energy-Saving Sensor Networks AUTHOR: MATTHEW J. MILLER CIGDEM SENGUL INDRANIL GUPTA PRESENTER: WENYU.
Berkeley dsn declarative sensor networks problem David Chu, Lucian Popa, Arsalan Tavakoli, Joe Hellerstein approach related dsn architecture status  B.
Overview: Chapter 7  Sensor node platforms must contend with many issues  Energy consumption  Sensing environment  Networking  Real-time constraints.
WORK STEALING SCHEDULER 6/16/2010 Work Stealing Scheduler 1.
Lock Inference for Systems Software John Regehr Alastair Reid University of Utah March 17, 2003.
Secure Web Applications via Automatic Partitioning Stephen Chong, Jed Liu, Andrew C. Meyers, Xin Qi, K. Vikram, Lantian Zheng, Xin Zheng. Cornell University.
Tufts Wireless Laboratory School Of Engineering Tufts University “Network QoS Management in Cyber-Physical Systems” Nicole Ng 9/16/20151 by Feng Xia, Longhua.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
1 Programming Sensor Networks: A Tale of Two Perspectives Ramesh Govindan Embedded Networks Laboratory
Kjell Orsborn UU - DIS - UDBL DATABASE SYSTEMS - 10p Course No. 2AD235 Spring 2002 A second course on development of database systems Kjell.
Shuman Guo CSc 8320 Advanced Operating Systems
DISTRIBUTED COMPUTING
Programming Sensor Networks Andrew Chien CSE291 Spring 2003 May 6, 2003.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Parallel Computing Presented by Justin Reschke
Distributed Mutual Exclusion Synchronization in Distributed Systems Synchronization in distributed systems are often more difficult compared to synchronization.
Presentation transcript:

Reliable and Efficient Programming Abstractions for Sensor Networks Nupur Kothari, Ramki Gummadi (USC), Todd Millstein (UCLA) and Ramesh Govindan (USC)

2 What are Sensor Networks? Composed of small battery-powered devices called motes Communicate using wireless Primarily programmed in a language called nesC

3 Many Compelling Applications! Volcanic activity monitoring Urban sensing Micro-habitat monitoring Actuation-based sensing Structural health monitoringWildlife monitoring

4 Domain-Specific Challenges Need to deal with several application-level concerns –Time-critical sensing –Hardware resource constraints –Energy-efficient communication –Concurrency and application logic –Failures –Distributed data consistency Simultaneously achieving efficiency and reliability while providing readability is hard Efficiency Reliability

5 Programming Today Node-level program written in nesC Compiled to mote binary Tradeoff: High efficiency, but readability and reliability suffer because achieving global results and maintaining invariants through a local approach is tedious and error-prone

6 Our Approach: Centralized Programming Central program that specifies application behavior Node-level nesC programs Compiled to mote binary Compiler Runtime + Simplifies programming by offloading concurrency, reliability, and energy efficiency to the compiler and runtime

7 Our Contributions The Pleaides programming language –Centralized as opposed to node-level Automatic program partitioning and control- flow migration –Minimizes energy by optimizing data movement Easy-to-use and reliable concurrency primitive –Ensures consistency under concurrent execution Mote-based implementation –Evaluated several realistic applications

8 Pleiades Constructs by Example int temp LOCAL; void main() { nodelist all = (); nodelist all = get_available_nodes(); int max = 0; int max = 0; (node n = get_first(all); n!=NULL; n = get_next(all)) { if n > max) max = n; } Node-local variable Central variable List of nodes in network Network Node Access node-local variables declaratively for Concurrent-for loop cfor Central variables needn’t be synchronized

9 Two Main Challenges The Pleiades Compiler and Runtime ConcurrencyPartitioning How to compile and efficiently execute a centralized program How to achieve serializability under concurrency

10 void main() { ……… ……… = a; n3 = = b; = c; ……… } Program Execution Control-flow migration as well as data movement Control-flow migration Access node-local variables from nearby nodes = a; n3 = = b; = c; Nodecut n1 n2 n3 n4 How does the compiler partition code into nodecuts? How does the runtime know where to execute each nodecut? Sequential Program

11 Our Contributions The Pleaides programming language –Centralized as opposed to node-level Automatic program partitioning and control- flow migration –Minimizes energy Easy-to-use and reliable concurrency primitive –Ensures consistency under concurrent execution Mote-based implementation –Evaluated several realistic applications

12 start end all = get_available_nodes() max = 0 n = get_first(all) False True False True max = > max) if(n!=NULL) n = get_next(all) Partitioning Code into Nodecuts Control-flow graph for max example Property: The location of variables accessed within a nodecut are known before its execution Nodecuts generated by the Pleiades compiler

13 Control-flow Migration Algorithm Runtime attempts to find lowest communication cost node to execute nodecut

14 Our Contributions The Pleaides programming language –Centralized as opposed to node-level Automatic program partitioning and control- flow migration –Minimizes energy Easy-to-use and reliable concurrency primitive –Ensures consistency under concurrent execution Mote-based implementation –Evaluated several realistic applications

15 On completion, cfor iterations send DONE message to originating node Cfor execution Nodecut encountering a cfor forks a thread for each iteration Challenge: To ensure serializability during concurrent execution Approach: Distributed locking, with multiple reader/single writer locks

Distributed Locking cfor (node n = 1; n < 5; n++) { if > max) max = } max Technique generalizes to nested cfor loops using hierarchical locking Only the write operation to max is serialized. Deadlocks possible, but dealt with using a simple deadlock detection and recovery scheme

17 Our Contributions The Pleaides programming language –Centralized as opposed to node-level Automatic program partitioning and control- flow migration –Minimizes energy Easy-to-use and reliable concurrency primitive –Ensures consistency under concurrent execution Mote-based implementation –Evaluated several realistic applications

18 Compiler built as an extension to the CIL infrastructure for C analysis and transformation Pleiades compiler generates nesC code Pleiades evaluated on TelosB motes Experience with several applications: pursuit-evasion, car parking, etc. Compiler built as an extension to the CIL infrastructure for C analysis and transformation Pleiades compiler generates nesC code Pleiades evaluated on TelosB motes Experience with several applications: pursuit-evasion, car parking, etc. Implementation and Evaluation

19 Pursuit-Evasion in Pleiades

20 Related Work Embedded and Sensor networks languages Concurrent Systems (e.g.,Transactional Memory) Parallel Processing Languages (e.g., Split-C, Linda)

21 Related Work SpatialViews (Ni et. al., PLDI’05) –Achieve concurrency and reliability by restricting the programming model Kairos (Gummadi et. al., DCOSS’05) –Does not provide automatic code migration or serializability; support for automatic recovery mechanisms Regiment (Newton et. al., IPSN’07) –Purely functional language; Cannot update node-local state COSMOS (Awan et. al., EuroSys’07) –Dataflow programming model; Designed for heterogeneous networks TinyDB (Madden et. al., TODS’05) –Declarative interface for centrally manipulating data; not Turing complete

22 The centralized programming model in Pleiades simplifies programming Compiler and runtime deal with concurrency, reliability, and efficiency details Implemented on TelosB motes Future Work: –Declarative failure recovery for Pleiades –User-defined/relaxed consistency models to improve concurrency Conclusions and Future work

Thanks! More info at: