This Article 
 Bibliographic References 
 Add to: 
Stampede: A Cluster Programming Middleware for Interactive Stream-Oriented Applications
November 2003 (vol. 14 no. 11)
pp. 1140-1154

Abstract—Emerging application domains such as interactive vision, animation, and multimedia collaboration display dynamic scalable parallelism and high-computational requirements, making them good candidates for executing on parallel architectures such as SMPs and clusters of SMPs. Stampede is a programming system that has many of the needed functionalities such as high-level data sharing, dynamic cluster-wide threads and their synchronization, support for task and data parallelism, handling of time-sequenced data items, and automatic buffer management. In this paper, we present an overview of Stampede, the primary data abstractions, the algorithmic basis of garbage collection, and the issues in implementing these abstractions on a cluster of SMPS. We also present a set of micromeasurements along with two multimedia applications implemented on top of Stampede, through which we demonstrate the low overhead of this runtime and that it is suitable for the streaming multimedia applications.

[1] S. Ahuja, N. Carriero, and G. David, Linda and Friends Computer, vol. 19, no. 8, pp. 26-34, Aug. 1986.
[2] H.E. Bal, A.E. Tanenbaum, and M.F. Kaashoek, Orca: A Language for Distributed Programming ACM SIGPLAN Notices, vol. 25, no. 5, pp. 17-24, May 1990.
[3] A. Chauhan and K. Knobe, A Compiler Driven Execution Model for Irregular Applications Proc. Workshop Compilers for Parallel Computers, Jan. 2000.
[4] A.D. Christian and B.L. Avery, Digital Smart Kiosk Project Proc. ACM SIGCHI, pp. 155-162, Apr. 1998.
[5] K. Ghosh and R.M. Fujimoto, Parallel Discrete Event Simulation Using Space-Time Memory Proc. 20th Int'l Conf. Parallel Processing, Aug. 1991.
[6] IEEE, Threads Standard POSIX 1003. 1c-1995 (also ISO/IEC 9945-1:1996), 1996.
[7] D.R. Jefferson, Virtual Time ACM Trans. Programming Languages and Systems, vol. 7, no. 3, pp. 404-425, July 1985.
[8] S.B. Kang, A Survey of Image-Based Rendering Techniques Technical Report CRL 97/4, Cambridge Research Lab., Digital Equipment Corp., Aug. 1997.
[9] P. Keleher, A. Cox, S. Dwarkadas, and W. Zwaenepoel, TreadMarks: Distributed Shared Memory on Standard Workstations and Operating Systems Proc. Winter Usenix, 1994.
[10] L. Kontothanassis, G. Hunt, R. Stets, N. Hardavellas, M. Cierniak, S. Parthasarathy, W. Meira, S. Dwarkadas, and M. Scott, VM-Based Shared Memory on Low-Latency Remote-Memory-Access Networks Proc. Int'l Symp. Computer Architecture, June 1997.
[11] Message Passing Interface Forum, MPI: A Message-Passing Interface Standard,, May 1994.
[12] S. Microsystems Javaspaces Specification,, 1998.
[13] R. S. Nikhil, Cid: A Parallel Shared-Memory C for Distributed Memory Machines Proc. Seventh Ann. Workshop Languages and Compilers for Parallel Computing, pp. 376-390, Aug. 1994.
[14] R.S. Nikhil and D. Panariti, CLF: A Common Cluster Language Framework for Parallel Cluster-Based Programming Languages technical report (forthcoming), Digital Equipment Corp., Cambridge Research Laboratory, 1998.
[15] R.S. Nikhil and U. Ramachandran, Garbage Collection of Timestamped Data in Stampede Proc. 19th Ann. Symp. Principles of Distributed Computing, July 2000.
[16] R.S. Nikhil, U. Ramachandran, J.M. Rehg, R.H. Halstead, Jr., C.F. Joerg, and L. Kontothanassis, Stampede: A Programming System for Emerging Scalable Interactive Multimedia Applications Proc. 11th Int'l Workshop Languages and Compilers for Parallel Computing, Aug. 1998.
[17] U. Ramachandran, R.S. Nikhil, N. Harel, J.M. Rehg, and K. Knobe, Space-Time Memory: A Parallel Programming Abstraction for Interactive Multimedia Applications Proc. ACM Principles and Practices of Parallel Programming, May 1999.
[18] J.M. Rehg, K. Knobe, U. Ramachandran, R.S. Nikhil, and A. Chauhan, Integrated Task and Data Parallel Support for Dynamic Applications Scientific Programming, vol. 7, nos. 3-4, pp. 289-302, 1999.
[19] J. Rehg, M. Loughlin, and K. Waters, “Vision for a Smart Kiosk,” Computer Vision and Pattern Recognition, 1997.
[20] J.M. Rehg, U. Ramachandran, R.H. Halstead, Jr., C. Joerg, L. Kontothanassis, and R.S. Nikhil, Space-Time Memory: A Parallel Programming Abstraction for Dynamic Vision Applications Technical Report CRL 97/2, Digital Equipment Corp., Cambridge Research Lab, Apr. 1997.
[21] D.J. Scales, K. Gharachorloo, and C.A. Thekkath, Shasta: A Low Overhead, Software-Only Approach for Supporting Fine-Grain Shared Memory Proc. Seventh ASPLOS,, Oct. 1996.
[22] A. Singla, U. Ramachandran, and J. Hodgins, Temporal Notions of Synchronization and Consistency in Beehive Proc. Ninth Ann. ACM Symp. Parallel Algorithms and Architectures, June 1997.
[23] A. Sivasubramaniam, A. Singla, U. Ramachandran, and H. Venkateswaran, An Application-Driven Study of Parallel Systems Overheads and Network Bandwidth Requirements IEEE Trans. Parallel and Distributed Systems, Mar. 1999.
[24] K. Waters and T. Levergood, An Automatic Lip-Synchronization Algorithm for Synthetic Faces Multimedia Tools and Applications, vol. 1, no. 4, pp. 349-366, Nov. 1995.
[25] K. Waters, J.M. Rehg, M. Loughlin, S.B. Kang, and D. Terzopoulos, Visual Sensing of Humans for Active Public Interfaces Computer Vision for Human-Machine Interaction, R. Cipolla and A. Pentland, eds., pp. 83-96, Cambridge Univ. Press, 1998.
[26] P. Wyckoff, S. McLaughty, T. Lehman, and D. Ford, T Spaces IBM Systems J., vol. 37, no. 3, pp. 453-474, Aug. 1998.

Index Terms:
Middleware, cluster computing, streaming applications, garbage collection, virtual time.
Umakishore Ramachandran, Rishiyur S. Nikhil, James M. Rehg, Yavor Angelov, Arnab Paul, Sameer Adhikari, Kenneth M. Mackenzie, Nissim Harel, Kathleen Knobe, "Stampede: A Cluster Programming Middleware for Interactive Stream-Oriented Applications," IEEE Transactions on Parallel and Distributed Systems, vol. 14, no. 11, pp. 1140-1154, Nov. 2003, doi:10.1109/TPDS.2003.1247674
Usage of this product signifies your acceptance of the Terms of Use.