This Article 
 Bibliographic References 
 Add to: 
Integrating Caching and Prefetching Mechanisms in a Distributed Transactional Memory
August 2011 (vol. 22 no. 8)
pp. 1284-1298
Alokika Dash, University of California, Irvine, Irvine
Brian Demsky, University of California, Irvine, Irvine
We present a distributed transactional memory system that exploits a new opportunity to automatically hide network latency by speculatively prefetching and caching objects. The system includes an object caching framework, language extensions to support our approach, and symbolic prefetches. To our knowledge, this is the first prefetching approach that can prefetch objects whose addresses have not been computed or predicted. Our approach makes aggressive use of both prefetching and caching of remote objects to hide network latency while relying on the transaction commit mechanism to preserve the simple transactional consistency model that we present to the developer. We have evaluated this approach on three distributed benchmarks, five scientific benchmarks, and several microbenchmarks. We have found that our approach enables our benchmark applications to effectively utilize multiple machines and benefit from prefetching and caching. We have observed a speedup of up to 7.26 {\times} for distributed applications on our system using prefetching and caching and a speedup of up to 5.55{\times} for parallel applications on our system.

[1] K. Yelick, L. Semenzato, G. Pike, C. Miyamoto, B. Liblit, A. Krishnamurthy, P. Hilfinger, S.G. Ham, D. Gay, P. Colella, and A. Aiken, "Titanium: A High-Performance Java Dialect," Concurrency: Practice and Experience, vol. 10, nos. 10-13, Sept.-Nov. 1998.
[2] B.L. Chamberlain, D. Callahan, and H.P. Zima, "Parallel Programmability and the Chapel Language," Int'l J. High Performance Computing Applications, vol. 21, pp. 291-312, 2007.
[3] E. Allen, D. Chase, J. Hallett, V. Luchangco, J.-W. Messen, S. Ryu, G.L. Steele, and S. Tobin-Hochstadt, The Fortress Language Specification, Sun Microsystems, 2006.
[4] M.F. Spear, L. Dalessandro, V.J. Marathe, and M.L. Scott, "A Comprehensive Strategy for Contention Management in Software Transactional Memory," Proc. 14th ACM SIGPLAN Symp. Principles and Practice of Parallel Programming, pp. 141-150, 2009.
[5] K. Albrecht, N. Burri, and R. Wattenhofer, "Spamato—An Extendable Spam Filter System," Proc. Second Conf. Email and Anti-Spam (CEAS), July 2005.
[6] L.A. Smith, J.M. Bull, and J. Obdrzalek, "A Parallel Java Grande Benchmark Suite," Proc. ACM/IEEE Conf. Supercomputing, 2001.
[7] K. Li, "IVY: A Shared Virtual Memory System for Parallel Computing," Proc. Int'l Conf. Parallel Processing, pp. 94-101, 1988.
[8] P. Keleher, A.L. Cox, S. Dwarkadas, and W. Zwaenepoel, "TreadMarks: Distributed Shared Memory on Standard Workstations and Operating Systems," Proc. USENIX Winter 1994 Technical Conf., 1994.
[9] B.N. Bershad and M.J. Zekauskas, "Midway: Shared Memory Parallel Programming with Entry Consistency for Distributed Memory Multiprocessors," Proc. IEEE Compcon '93, 1993.
[10] J.K. Bennett, J.B. Carter, and W. Zwaenepoel, "Munin: Distributed Shared Memory Based on Type-Specific Memory Coherence," Proc. Second Symp. Principles and Practice of Parallel Programming, pp. 168-176, 1990.
[11] P. Keleher, A.L. Cox, and W. Zwaenepoel, "Lazy Release Consistency for Software Distributed Shared Memory," Proc. 19th Int'l Symp. Computer Architecture, 1992.
[12] P.B. Gibbons, "A More Practical PRAM Model," Proc. First Ann. ACM Symp. Parallel Algorithms and Architectures, 1989.
[13] T. Knight, "An Architecture for Mostly Functional Languages," Proc. ACM Conf. LISP and Functional Programming, pp. 105-112, 1986.
[14] M. Herlihy and J.E.B. Moss, "Transactional Memory: Architectural Support for Lock-Free Data Structures," Proc. 20th Ann. Int'l Symp. Computer Architecture, 1993.
[15] L. Hammond, V. Wong, M. Chen, B. Hertzberg, B. Carlstrom, M. Prabhu, H. Wijaya, C. Kozyrakis, and K. Olukotun, "Transactional Memory Coherence and Consistency (TCC)," Proc. 11th Int'l Symp. Computer Architecture, June 2004.
[16] C.S. Ananian, K. Asanović, B.C. Kuszmaul, C.E. Leiserson, and S. Lie, "Unbounded Transactional Memory," Proc. 11th Int'l Symp. High Performance Computer Architecture, 2005.
[17] N. Shavit and D. Touitou, "Software Transactional Memory," Proc. 14th ACM Symp. Principles of Distributed Computing, Aug. 1995.
[18] M. Herlihy, V. Luchangco, M. Moir, and W. Scherer, "Software Transactional Memory for Dynamic-Sized Data Structures," Proc. 22nd Ann. ACM SIGACT-SIGOPS Symp. Principles of Distributed Computing, July 2003.
[19] P. Bodorik, F.I. Smith, and D.J. Lewis, "Transactions in Distributed Shared Memory Systems," Proc. Eighth Int'l Conf. Data Eng., Feb. 1992.
[20] A.B. Hastings, "Distributed Lock Management in a Transaction Processing Environment," Proc. Ninth Symp. Reliable Distributed Systems, Oct. 1990.
[21] J.-H. Ahn, K.-W. Lee, and H.-J. Kim, "Architectural Issues in Adopting Distributed Shared Memory for Distributed Object Management Systems," Proc. Fifth IEEE Computer Soc. Workshop Future Trends of Distributed Computing Systems, Aug. 1995.
[22] P. Graham and Y. Sui, "LOTEC: A Simple DSM Consistency Protocol for Nested Object Transactions," Proc. 18th Ann. ACM Symp. Principles of Distributed Computing, 1999.
[23] C. Kotselidis, M. Ansari, K. Jarvis, M. Luján, C. Kirkham, and I. Watson, "DiSTM: A Software Transactional Memory Framework for Clusters," Proc. 37th Int'l Conf. Parallel Processing, pp. 51-58, 2008.
[24] C. Kotselidis, M. Luján, M. Ansari, K. Malakasis, B. Khan, C. Kirkham, and I. Watson, "Clustering JVMs with Software Transactional Memory Support," Proc. 24th IEEE Int'l Parallel and Distributed Processing Symp., 2010.
[25] M. Couceiro, P. Romano, N. Carvalho, and L. Rodrigues, "D2STM: Dependable Distributed Software Transactional Memory," Proc. 15th IEEE Pacific Rim Int'l Symp. Dependable Computing, 2009.
[26] K. Manassiev, M. Mihailescu, and C. Amza, "Exploiting Distributed Version Concurrency in a Transactional Memory Cluster," Proc. 11th ACM SIGPLAN Symp. Principles and Practice of Parallel Programming, 2006.
[27] M.K. Aguilera, A. Merchant, M. Shah, A. Veitch, and C. Karamanolis, "Sinfonia: A New Paradigm for Building Scalable Distributed Systems," Proc. 21st ACM SIGOPS Symp. Operating Systems Principles, 2007.
[28] R.L. Bocchino, V.S. Adve, and B.L. Chamberlain, "Software Transactional Memory for Large Scale Clusters," Proc. 13th Symp. Principles and Practice of Parallel Programming, 2008.
[29] M. Herlihy and Y. Sun, "Distributed Transactional Memory for Metric-Space Networks," Proc. 19th Int'l Symp. Distributed Computing, Sept. 2005.
[30] B. Zhang and B. Ravindran, "Relay: A Cache-Coherence Protocol for Distributed Transactional Memory," Proc. Int'l Conf. Principles of Distributed Systems, Dec. 2009.
[31] C.-K. Luk and T.C. Mowry, "Automatic Compiler-Inserted Prefetching for Pointer-Based Applications," IEEE Trans. Computers, vol. 48, no. 2, pp. 134-141, Feb. 1999.
[32] B. Cahoon and K.S. McKinley, "Data Flow Analysis for Software Prefetching Linked Data Structures in Java," Proc. 10th Int'l Conf. Parallel Architectures and Compilation Techniques, 2001.
[33] A. Roth, A. Moshovos, and G.S. Sohi, "Dependence Based Prefetching for Linked Data Structures," Proc. Eighth Int'l Conf. Architectural Support for Programming Languages and Operating Systems, Oct. 1998.
[34] Y. Zhu and L.J. Hendren, "Communication Optimizations for Parallel C Programs," Proc. Conf. Programming Language Design and Implementation, 1998.
[35] A. Rogers, M.C. Carlisle, J.H. Reppy, and L.J. Hendren, "Supporting Dynamic Data Structures on Distributed-Memory Machines," ACM Trans. Programming Languages and Systems, vol. 17, no. 2, pp. 233-263, 1995.
[36] R. Gupta, "SPMD Execution of Programs with Dynamic Data Structures on Distributed Memory Machines," Proc. Int'l Conf. Computer Languages, Apr. 1992.
[37] E. Speight and M. Burtscher, "Delphi: Prediction-Based Page Prefetching to Improve the Performance of Shared Virtual Memory Systems," Proc. Int'l Conf. Parallel and Distributed Processing Techniques and Applications, June 2002.
[38] D. Joseph and D. Grunwald, "Prefetching Using Markov Predictors," Proc. 24th Int'l Symp. Computer Architecture, 1997.
[39] M. Ferdman and B. Falsafi, "Last-Touch Correlated Data Streaming," Proc. IEEE Int'l Symp. Systems and Software, Apr. 2007.
[40] M.J. Franklin, M.J. Carey, and M. Livny, "Transactional Client-Server Cache Consistency: Alternatives and Performance," ACM Trans. Database Systems, vol. 22, pp. 315-363, 1995.

Index Terms:
Distributed shared memory, software transactional memory, prefetching.
Alokika Dash, Brian Demsky, "Integrating Caching and Prefetching Mechanisms in a Distributed Transactional Memory," IEEE Transactions on Parallel and Distributed Systems, vol. 22, no. 8, pp. 1284-1298, Aug. 2011, doi:10.1109/TPDS.2011.23
Usage of this product signifies your acceptance of the Terms of Use.