Giter Site home page Giter Site logo

mzimmerling / ptunes Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 3.0 22.39 MB

pTunes runtime parameter adaptation framework

C 36.26% C++ 4.47% Shell 0.29% Assembly 0.57% Objective-C 0.04% Python 1.18% Java 9.63% Awk 0.01% XSLT 0.04% D 0.93% Perl 0.08% CSS 0.03% Ruby 0.01% PHP 0.01% JavaScript 0.01% Scala 0.01% GAP 0.21% Prolog 40.41% Tcl 5.84%

ptunes's Introduction

pTunes

pTunes is a framework for runtime adaptation of low-power MAC protocol parameters. It is designed for sensor network data collection applications with soft requirements on network lifetime, end-to-end latency, and end-to-end reliability. pTunes automatically determines optimized MAC parameters at a central controller (e.g., a laptop serving as the gateway between the sensor network and the Internet) to satisfy given application requirements in the face of transient wireless links, topology changes, and traffic dynamics. To close the loop, pTunes uses a novel approach based on Glossy network floods to periodically (1) collect accurate, consistent information about the current network conditions, and (2) disseminate optimized MAC parameters to all nodes in the network. In this way, pTunes greatly aids in meeting the requirements of real-world sensor network applications by eliminating the need for time-consuming, yet error-prone manual MAC configuration as the network conditions change. In particular, pTunes outperforms static MAC parameters optimized for specific workloads and application scenarios, achieving severalfold improvements in network lifetime while satisfying end-to-end latency and reliability requirements under heavy wireless interference, sudden traffic peaks, and node failures.

Check out our IPSN'12 paper and tech report (both are available here) to read more about the pTunes runtime support, MAC protocol models, and performance in real-world experiments.

System and Implementation Overview

The pTunes framework consists currently of four main components:

  • Sensor nodes run the default data collection protocol in Contiki v2.3 on top of the X-MAC or LPP link layer. Both link layers expose an interface that allows to change selected operational parameters at runtime. pTunes periodically interrupts the normal application operation for a very short time simultaneously on all nodes. During these short phases, pTunes uses sequential Glossy floods to collect information about the current network conditions and to disseminate optimized MAC parameters.

  • The collection sink connects (e.g., via USB) to the base station (e.g., a laptop computer), passing the collected information on to the base station and receiving optimized MAC parameters from the base station.

  • The base station runs the pTunes controller, which is implemented in Java. The controller communicates with the collection sink, decides when to determine new MAC parameters, and triggers the optimization.

  • The MAC parameter optimization problem is modeled as a constraint program and solved on the base station using a branch-and-bound algorithm coupled with a complete search routine, both of which are provided by the Interval Constraint (IC) solver of the ECLiPSe constraint programming system.

Code Layout

/ptunes/contiki (full Contiki v2.3 source tree from early 2011)

/ptunes/contiki/apps/adaptive-mac (pTunes test application running on the sensor nodes and the sink)

/ptunes/controller (pTunes controller running on the base station, including build scripts and config files)

/ptunes/controller/src (Java code of the pTunes controller)

/ptunes/controller/eclipse (ECLiPSe constraint programming system)

/ptunes/cp (optimization code, including the implementation of the X-MAC and LPP models)

Getting pTunes to Work

pTunes is a research prototype and, as such, not ready for a real deployment. You should be able to built and run pTunes, however, on TelosB-compliant devices, such as the Tmote Sky, using mspgcc v4.6.3. Depending on the operating system used on the base station, you may need to update to the corresponding ECLiPSe and Java libraries in order to run the pTunes controller and parameter optimization.

To simulate the Contiki part of pTunes in the Cooja sensor network simulator, you should first get a recent version of Cooja from here and make sure to select the multi-path ray-tracer medium (MRM) radio model when setting up your simulation environment.

Read more here on how to configure the pTunes system.

Research

pTunes was developed at the Computer Engineering and Networks Laboratory at ETH Zurich and at the Networked Embedded Systems Group at SICS Swedish ICT. The pTunes team consists of Marco Zimmerling, Federico Ferrari, Luca Mottola, Thiemo Voigt, and Lothar Thiele. Please contact us for more information.

ptunes's People

Stargazers

 avatar Sergio González Collado avatar  avatar Lyle Dickie avatar Pasakorn Tiwatthanont avatar

Watchers

Marco Zimmerling avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.