Teleport Messaging for Distributed Stream Programs
- Bill Thies ,
- Michal Karczmarek ,
- Janis Sermulins ,
- Rodric Rabbah ,
- Saman Amarasinghe
Symposium on Principles and Practice of Parallel Programming (PPoPP 2005). Chicago, IL |
In this paper, we develop a new language construct to address one of the pitfalls of parallel programming: precise handling of events across parallel components. The construct, termed teleport messaging, uses data dependences between components to provide a common notion of time in a parallel system. Our work is done in the context of the Synchronous Dataflow (SDF) model, in which computation is expressed as a graph of independent components (or actors) that communicate in regular patterns over data channels. We leverage the static properties of SDF to compute a stream dependence function, sdep, that compactly describes the ordering constraints between actor executions.
Teleport messaging utilizes sdep to provide powerful and precise event handling. For example, an actor A can specify that an event should be processed by a downstream actor B as soon as B sees the “effects” of the current execution of A. We argue that teleport messaging improves readability and robustness over existing practices. We have implemented messaging as part of the StreamIt compiler, with a backend for a cluster of workstations. As teleport messaging exposes optimization opportunities to the compiler, it also results in a 49% performance improvement for a software radio benchmark.