WaveScript: A Case-Study in Applying a Distributed Stream-Processing Language
Author(s)
Newton, Ryan; Girod, Lewis; Craig, Michael; Madden, Sam; Morrisett, Greg
DownloadMIT-CSAIL-TR-2008-005.pdf (782.3Kb)
Additional downloads
Other Contributors
Computation Structures
Advisor
Sam Madden
Metadata
Show full item recordAbstract
Applications that combine live data streams with embedded, parallel,and distributed processing are becoming more commonplace. WaveScriptis a domain-specific language that brings high-level, type-safe,garbage-collected programming to these domains. This is made possibleby three primary implementation techniques. First, we employ a novelevaluation strategy that uses a combination of interpretation andreification to partially evaluate programs into stream dataflowgraphs. Second, we use profile-driven compilation to enable manyoptimizations that are normally only available in the synchronous(rather than asynchronous) dataflow domain. Finally, we incorporatean extensible system for rewrite rules to capture algebraic propertiesin specific domains (such as signal processing).We have used our language to build and deploy a sensor-network for theacoustic localization of wild animals, in particular, theYellow-Bellied marmot. We evaluate WaveScript's performance on thisapplication, showing that it yields good performance on both embeddedand desktop-class machines, including distributed execution andsubstantial parallel speedups. Our language allowed us to implementthe application rapidly, while outperforming a previous Cimplementation by over 35%, using fewer than half the lines of code.We evaluate the contribution of our optimizations to this success.
Date issued
2008-01-31Other identifiers
MIT-CSAIL-TR-2008-005
CBCL-270
Collections
The following license files are associated with this item: