Stampede is a parallel programming system to facilitate the programming of interactive multimedia applications on clusters of SMPs. In a Stampede application, a variable number of threads can communicate data items to each other via channels, which are distributed, synchronized data structures containing timestamped data such as images from a video camera. Channels are not queue-like: threads may produce and consume items out of timestamp order; they may produce and consume items sparsely skipping timestamps, and multiple threads including newly created threads may consume an item in a channel. These exibilities are required due to the complex dynamic parallel structure of applications, to support increased parallelism, and because of real-time requirements. Under these circumstances, a key issue is the garbage collection condition": When can an item in a channelbe garbage collected? In this paper we specify precisely Stampede's semantics concerning timestamps, and we de...
Rishiyur S. Nikhil, Umakishore Ramachandran