Survey of the state of the art in human language technology
Survey of the state of the art in human language technology
The Coign automatic distributed partitioning system
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs
SIAM Journal on Scientific Computing
On the need for system-level support for ad hoc and sensor networks
ACM SIGOPS Operating Systems Review
JESSICA2: A Distributed Java Virtual Machine with Transparent Thread Migration Support
CLUSTER '02 Proceedings of the IEEE International Conference on Cluster Computing
cJVM: A Single System Image of a JVM on a Cluster
ICPP '99 Proceedings of the 1999 International Conference on Parallel Processing
Hood: a neighborhood abstraction for sensor networks
Proceedings of the 2nd international conference on Mobile systems, applications, and services
From sequential programs to multi-tier applications by program transformation
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Programming ad-hoc networks of mobile and resource-constrained devices
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Marionette: using RPC for interactive development and debugging of wireless embedded networks
Proceedings of the 5th international conference on Information processing in sensor networks
Network-Aware Operator Placement for Stream-Processing Systems
ICDE '06 Proceedings of the 22nd International Conference on Data Engineering
The Tenet architecture for tiered sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
Capturing high-frequency phenomena using a bandwidth-limited sensor network
Proceedings of the 4th international conference on Embedded networked sensor systems
Triage: balancing energy and quality of service in a microserver
Proceedings of the 5th international conference on Mobile systems, applications and services
Reliable and efficient programming abstractions for wireless sensor networks
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Programming sensor networks using abstract regions
NSDI'04 Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation - Volume 1
Contract-based load management in federated distributed systems
NSDI'04 Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation - Volume 1
Accuracy of MFCC-based speaker recognition in series 60 device
EURASIP Journal on Applied Signal Processing
Design and evaluation of a compiler for embedded stream programs
Proceedings of the 2008 ACM SIGPLAN-SIGBED conference on Languages, compilers, and tools for embedded systems
Experience report: embedded, parallel computer-vision with a functional DSL
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Calling the cloud: enabling mobile phones as interfaces to cloud applications
Proceedings of the 10th ACM/IFIP/USENIX International Conference on Middleware
Dynamically partitioning applications between weak devices and clouds
Proceedings of the 1st ACM Workshop on Mobile Cloud Computing & Services: Social Networks and Beyond
Calling the cloud: enabling mobile phones as interfaces to cloud applications
Middleware'09 Proceedings of the ACM/IFIP/USENIX 10th international conference on Middleware
MAUI: making smartphones last longer with code offload
Proceedings of the 8th international conference on Mobile systems, applications, and services
Compressive oversampling for robust data transmission in sensor networks
INFOCOM'10 Proceedings of the 29th conference on Information communications
Adaptive spatiotemporal node selection in dynamic networks
Proceedings of the 19th international conference on Parallel architectures and compilation techniques
Volley: automated data placement for geo-distributed cloud services
NSDI'10 Proceedings of the 7th USENIX conference on Networked systems design and implementation
CloneCloud: elastic execution between mobile device and cloud
Proceedings of the sixth conference on Computer systems
Odessa: enabling interactive perception applications on mobile devices
MobiSys '11 Proceedings of the 9th international conference on Mobile systems, applications, and services
MARS: adaptive remote execution for multi-threaded mobile devices
MobiHeld '11 Proceedings of the 3rd ACM SOSP Workshop on Networking, Systems, and Applications on Mobile Handhelds
Code in the air: simplifying sensing and coordination tasks on smartphones
Proceedings of the Twelfth Workshop on Mobile Computing Systems & Applications
Cache-conscious scheduling of streaming applications
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
Automatic partitioning of database applications
Proceedings of the VLDB Endowment
Networked computing in wireless sensor networks for structural health monitoring
IEEE/ACM Transactions on Networking (TON)
Improving energy efficiency of personal sensing applications with heterogeneous multi-processors
Proceedings of the 2012 ACM Conference on Ubiquitous Computing
From Mobiles to Clouds: Developing Energy-Aware Offloading Strategies for Workflows
GRID '12 Proceedings of the 2012 ACM/IEEE 13th International Conference on Grid Computing
Dynamic software deployment from clouds to mobile devices
Proceedings of the 13th International Middleware Conference
Embrace, defend, extend: a methodology for embedding preexisting DSLs
Proceedings of the 1st annual workshop on Functional programming concepts in domain-specific languages
MobileFBP: Designing portable reconfigurable applications for heterogeneous systems
Journal of Systems Architecture: the EUROMICRO Journal
Hi-index | 0.01 |
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.