Methods of Memory Optimizations in Streaming Applications

Streaming applications are often distributed, manage large quantities of data and, as a result, have large memory requirements. Therefore, efficient garbage collection (GC) is crucial for their performance. On the other hand, not all data items affect the application output due to differences in the processing rates of various application threads. In this paper we propose extending the definition of the garbage identification problem for streaming applications and include not only data items that are not "reachable " but also data items that have no effect on the final outcome of the application. We present four optimizations to an existing GC algorithm in Stampede, a parallel programming system to support interactive multimedia applications. We ask the question how far off these algorithms are from an ideal garbage collector, one in which the memory usage exactly equals the amount required for buffering only the relevant data items. This oracle, while unimplementable, serves as an empirical lower-bound for memory usage. We then propose optimizations that will help us get closer to this lower- bound. Using an elaborate measurement and post-mortem analysis infrastructure, we simulate the performance potential for these optimizations and implement the most promising ones. A color-based people tracking application is used for the performance evaluation. Our results show that these optimizations reduce the memory usage by up to 60%.

[1]  R.M. Fujimoto,et al.  Parallel and distributed simulation systems , 2001, Proceeding of the 2001 Winter Simulation Conference (Cat. No.01CH37304).

[2]  Umakishore Ramachandran,et al.  Garbage collection of timestamped data in Stampede , 2000, PODC '00.

[3]  K. Mani Chandy,et al.  Asynchronous distributed simulation via a sequence of parallel computations , 1981, CACM.

[4]  R. Fujimoto Parallel and distributed simulation , 1995, Winter Simulation Conference Proceedings, 1995..

[5]  Nissim Harel,et al.  Memory Optimizations for Distributed Stream-based Applications , 2006 .

[6]  James M. Rehg,et al.  Stampede: A Cluster Programming Middleware for Interactive Stream-Oriented Applications , 2003, IEEE Trans. Parallel Distributed Syst..

[7]  Paul R. Wilson,et al.  Uniprocessor Garbage Collection Techniques , 1992, IWMM.

[8]  James M. Rehg,et al.  Vision for a smart kiosk , 1997, Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition.

[9]  Umakishore Ramachandran,et al.  A Comparative Study of Stampede Garbage Collection Algorithms , 2002, LCPC.

[10]  David R. Jefferson,et al.  Virtual time , 1985, ICPP.

[11]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[12]  Randal E. Bryant,et al.  SIMULATION OF PACKET COMMUNICATION ARCHITECTURE COMPUTER SYSTEMS , 1977 .

[13]  Umakishore Ramachandran,et al.  Dead timestamp identification in Stampede , 2002, Proceedings International Conference on Parallel Processing.