Abstract
Developing efficient distributed applications while managing complexity can be challenging. Managing network latency is a key challenge for distributed applications. We propose a new approach to prefetching, symbolic prefetching, that can prefetch remote objects before their addresses are known. Our approach was designed to hide the latency of accessing remote objects in distributed transactional memory and a wide range of distributed object middleware frameworks. We present a static compiler analysis for the automatic generation of symbolic prefetches — symbolic prefetches allow objects whose addresses are unknown to be prefetched.
We evaluate this prefetching mechanism in the context of a middleware framework for distributed transactional memory. Our evaluation includes microbenchmarks, scientific benchmarks, and distributed benchmarks. Our results show that symbolic prefetching combined with caching can eliminate an average of 87% of remote reads. We measured speedups due to prefetching of up to 13.31× for accessing arrays and 4.54× for accessing linked lists.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Couceiro, M., Romano, P., Carvalho, N., Rodrigues, L.: D2STM: Dependable distributed software transactional memory. In: Proceedings of the 15th IEEE Pacific Rim International Symposium on Dependable Computing (2009)
Carvalho, N., Cachopo, J., Rodrigues, L., Silva, A.R.: Versioned transactional shared memory for the FénixEDU web application. In: Proceedings of the 2nd Workshop on Dependable Distributed Data Management (2008)
Kotselidis, C., Luján, M., Ansari, M., Malakasis, K., Khan, B., Kirkham, C., Watson, I.: Clustering JVMs with software transactional memory support. In: Proceedings of the 24th IEEE International Parallel and Distributed Processing Symposium (2010)
Zhang, B., Ravindran, B.: Relay: A cache-coherence protocol for distributed transactional memory. In: Proceedings of the 2009 International Conference on Principles of Distributed Systems (December 2009)
Kotselidis, C., Ansari, M., Jarvis, K., Luján, M., Kirkham, C., Watson, I.: DiSTM: A software transactional memory framework for clusters. In: Proceedings of the 2008 37th International Conference on Parallel Processing, Washington, DC, USA, pp. 51–58 (2008)
Herlihy, M., Sun, Y.: Distributed transactional memory for metric-space networks. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 324–338. Springer, Heidelberg (2005)
Bocchino, R.L., Adve, V.S., Chamberlain, B.L.: Software transactional memory for large scale clusters. In: Proceedings of the 13th Symposium on Principles and Practice of Parallel Programming (2008)
Manassiev, K., Mihailescu, M., Amza, C.: Exploiting distributed version concurrency in a transactional memory cluster. In: Proceedings of the Eleventh ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (2006)
Weil, S.A., Brandt, S.A., Miller, E.L., Long, D.D.E., Maltzahn, C.: Ceph: A scalable, high-performance distributed file system. In: Proceedings of the 7th Symposium on Operating Systems Design and Implementation, pp. 307–320 (2006)
Liskov, B., Castro, M., Shrira, L., Adya, A.: Providing persistent objects in distributed systems. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, p. 230. Springer, Heidelberg (1999)
Jin, C., Zheng, W., Zhou, F., Wu, Y.: A distributed persistent object store for scalable service. SIGOPS Operating Systems Review 36(4), 36–49 (2002)
Yelick, K., Semenzato, L., Pike, G., Miyamoto, C., Liblit, B., Krishnamurthy, A., Hilfinger, P., Ham, S.G., Gay, D., Colella, P., Aiken, A.: Titanium: A high-performance Java dialect. Concurrency: Practice and Experience 10(10-13) (September-November 1998)
Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann, San Francisco (1993)
Albrecht, K., Burri, N., Wattenhofer, R.: Spamato - an extendable spam filter system. In: 2nd Conference on Email and Anti-Spam (CEAS) (July 2005)
Smith, L.A., Bull, J.M., Obdrzalek, J.: A parallel Java Grande benchmark suite. In: Proceedings of SC 2001 (2001)
Shavit, N., Touitou, D.: Software transactional memory. In: Proceedings of the 14th ACM Symposium on Principles of Distributed Computing (August 1995)
Herlihy, M., Luchangco, V., Moir, M., Scherer, W.: Software transactional memory for dynamic-sized data structures. In: Proceedings of the Twenty-Second Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (July 2003)
Bodorik, P., Smith, F.I., J-Lewis, D.: Transactions in distributed shared memory systems. In: Proceedings of the Eigthth International Conference on Data Engineering (February 1992)
Hastings, A.B.: Distributed lock management in a transaction processing environment. In: Proceedings of the Ninth Symposium on Reliable Distributed Systems (October 1990)
Ahn, J.H., Lee, K.W., Kim, H.J.: Architectural issues in adopting distributed shared memory for distributed object management systems. In: Proceedings of the Fifth IEEE Computer Society Workshop on Future Trends of Distributed Computing Systems (August 1995)
Graham, P., Sui, Y.: LOTEC: A simple DSM consistency protocol for Nested Object Transactions. In: Proceedings of the 18th Annual ACM Symposium on Principles of Distributed Computing (1999)
Aguilera, M.K., Merchant, A., Shah, M., Veitch, A., Karamanolis, C.: Sinfonia: A new paradigm for building scalable distributed systems. In: Proceedings of 21st ACM SIGOPS Symposium on Operating Systems Principles (2007)
Luk, C.K., Mowry, T.C.: Automatic compiler-inserted prefetching for pointer-based applications. IEEE Transactions on Computers 48(2), 134–141 (1999)
Cahoon, B., McKinley, K.S.: Data flow analysis for software prefetching linked data structures in Java. In: Proceedings of the 10th International Conference on Parallel Architectures and Compilation Techniques (2001)
Roth, A., Moshovos, A., Sohi, G.S.: Dependence based prefetching for linked data structures. In: Proceedings of the Eighth International Conference on Architectural Support for Programming Languages and Operating Systems (October 1998)
Wu, Y., Serrano, M.J., Krishnaiyer, R., Li, W., Fang, J.: Value-profile guided stride prefetching for irregular code. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 307–324. Springer, Heidelberg (2002)
Inagaki, T., Onodera, T., Komatsu, H., Nakatani, T.: Stride prefetching by dynamically inspecting objects. In: Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, pp. 269–277 (2003)
Zhu, Y., Hendren, L.J.: Communication optimizations for parallel C programs. In: Proceedings of the 1998 Conference on Programming Language Design and Implementation (1998)
Rogers, A., Carlisle, M.C., Reppy, J.H., Hendren, L.J.: Supporting dynamic data structures on distributed-memory machines. ACM Transactions on Programming Languages and Systems 17(2), 233–263 (1995)
Gupta, R.: SPMD execution of programs with dynamic data structures on distributed memory machines. In: Proceedings of the 1992 International Conference on Computer Languages (April 1992)
Speight, E., Burtscher, M.: Delphi: Prediction-based page prefetching to improve the perfo rmance of shared virtual memory systems. In: Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (June 2002)
Joseph, D., Grunwald, D.: Prefetching using markov predictors. In: Proceedings of the 24th International Symposium on Computer Architecture (1997)
Ferdman, M., Falsafi, B.: Last-touch correlated data streaming. In: IEEE International Symposium on Systems and Software (April 2007)
Keleher, P., Cox, A.L., Dwarkadas, S., Zwaenepoel, W.: TreadMarks: Distributed shared memory on standard workstations and operating systems. In: Proceedings of the USENIX Winter 1994 Technical Conference (1994)
Bershad, B.N., Zekauskas, M.J.: Midway: Shared memory parallel programming with entry consistency for distributed memory multiprocessors. In: Compcon 1993 (1993)
Bennett, J.K., Carter, J.B., Zwaenepoel, W.: Munin: Distributed shared memory based on type-specific memory coherence. In: Proceedings of the Second Symposium on Principles and Practice of Parallel Programming, pp. 168–176 (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 IFIP International Federation for Information Processing
About this paper
Cite this paper
Dash, A., Demsky, B. (2010). Automatically Generating Symbolic Prefetches for Distributed Transactional Memories. In: Gupta, I., Mascolo, C. (eds) Middleware 2010. Middleware 2010. Lecture Notes in Computer Science, vol 6452. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16955-7_18
Download citation
DOI: https://doi.org/10.1007/978-3-642-16955-7_18
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-16954-0
Online ISBN: 978-3-642-16955-7
eBook Packages: Computer ScienceComputer Science (R0)