Wishbone: profile-based partitioning for sensornet applications

  • Authors:
  • Ryan Newton;Sivan Toledo;Lewis Girod;Hari Balakrishnan;Samuel Madden

  • Affiliations:
  • MIT CSAIL;MIT CSAIL;MIT CSAIL;MIT CSAIL;MIT CSAIL

  • Venue:
  • NSDI'09 Proceedings of the 6th USENIX symposium on Networked systems design and implementation
  • Year:
  • 2009

Quantified Score

Hi-index 0.01

Visualization

Abstract

The ability to partition sensor network application code across sensor nodes and backend servers is important for running complex, data-intensive applications on sensor platforms that have CPU, energy, and bandwidth limitations. This paper presents Wishbone, a system that takes a dataflow graph of operators and produces an optimal partitioning. With Wishbone, users can run the same program on a range of sensor platforms, including TinyOS motes, smartphones running JavaME, and the iPhone. The resulting program partitioning will in general be different in each case, reflecting the different node capabilities. Wishbone uses profiling to determine how each operator in the dataflow graph will actually perform on sample data, without requiring cumbersome user annotations. Its partitioning algorithm models the problem as an integer linear program that minimizes a linear combination of network bandwidth and CPU load and uses program structure to solve the problem efficiently in practice. Our results on a speech detection application show that the system can quickly identify good trade-offs given limitations in CPU and network capacity.