Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Run-time support for distributed sharing in safe languages

Published: 01 February 2003 Publication History

Abstract

We present a new run-time system that supports object sharing in a distributed system. The key insight in this system is that a handle-based implementation of such a system enables efficient and transparent sharing of data with both fine- and coarse-grained access patterns. In addition, it supports efficient execution of garbage-collected programs. In contrast, conventional distributed shared memory (DSM) systems are limited to providing only one granularity with good performance, and have experienced difficulty in efficiently supporting garbage collection. A safe language, in which no pointer arithmetic is allowed, can transparently be compiled into a handle-based system and constitutes its preferred mode of use. A programmer can also directly use a handle-based programming model that avoids pointer arithmetic on the handles, and achieve the same performance but without the programming benefits of a safe programming language. This new run-time system, DOSA (Distributed Object Sharing Architecture), provides a shared object space abstraction rather than a shared address space abstraction. The key to its efficiency is the observation that a handle-based distributed implementation permits VM-based access and modification detection without suffering false sharing for fine-grained access patterns. We compare DOSA to TreadMarks, a conventional DSM system that is efficient at handling coarse-grained sharing. The performance of fine-grained applications and garbage-collected applications is considerably better than in TreadMarks, and the performance of coarse-grained applications is nearly as good as in TreadMarks. Inasmuch as the performance of such applications is already good in TreadMarks, we consider this an acceptable performance penalty.

References

[1]
Adl-Tabatabai, A., Cierniak, M., Lueh, G., Parakh, V. M., and Stichnoth, J. M. 1998. Fast effective code generation in a just-in-time Java compiler. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI), 280--290.]]
[2]
Adve, S. and Hill, M. 1990. Weak ordering: A new definition. In Proceedings of the Seventeenth Annual International Symposium on Computer Architecture, 2--14.]]
[3]
Amza, C., Cox, A., Dwarkadas, S., Keleher, P., Lu, H., Rajamony, R., Yu, W., and Zwaenepoel, W. 1996. TreadMarks: Shared memory computing on networks of workstations. IEEE Computer 29, 2 (Feb.), 18--28.]]
[4]
Amza, C., Cox, A., Rajamani, K., and Zwaenepoel, W. 1997. Trade-offs between false sharing and aggregation in software distributed shared memory. In Proceedings of the Sixth Symposium on the Principles and Practice of Parallel Programming, 90--99.]]
[5]
Andersen, L. 1994. Program analysis and specialization for the C programming language. PhD Thesis, DIKU University of Copenhagen.]]
[6]
Baker, H. 1991. The TreadMill: Realtime garbage collection without motion sickness. In Proceedings of the OOPSLA '91 Workshop on Garbage Collection in Object-Oriented Systems.]]
[7]
Bershad, B., Zekauskas, M., and Sawdon, W. 1993. The Midway distributed shared memory system. In Proceedings of the '93 CompCon Conference, 528--537.]]
[8]
Bevan, D. I. 1987. Distributed garbage collection using reference counting. In Parallel Architecture and Languages, Europe. Lecture Notes in Computer Science, vol. 259, Springer-Verlag, Eindhoven, The Netherlands, 117--187.]]
[9]
Bixby, R., Cook, W., Cox, A., and Lee, E. 1999. Computational experience with parallel mixed integer programming in a distributed environment. Ann. Oper. Res. 90, 19--43.]]
[10]
Brecht, T. and Sandhu, H. 1999. The region trap library: Handling traps on application-defined regions of memory. In Proceedings of the 1999 USENIX Annual Technical Conference.]]
[11]
Budimlic, Z. and Kennedy, K. 1997. Optimizing Java: Theory and practice. Concurr. Pract. Exper. 9, 6, 445--463.]]
[12]
Budimlic, Z. and Kennedy, K. 1999. Prospects for scientific computing in polymorphic, object-oriented style. In Proceedings of the Ninth SIAM Conference on Parallel Processing for Scientific Computing.]]
[13]
Burke, M. G., Choi, J.-D., Fink, S., Grove, D., Hind, M., Sarkar, V., Serrano, M. J., Sreedhar, V. C., Srinivasan, H., and Whaley, J. 1999. The Jalapeno dynamic optimizing compiler for Java. In Proceedings of the ACM 1999 Java Grande Conference, 129--141.]]
[14]
Carey, M., DeWitt, D., and Naughton, J. 1994. The OO7 benchmark. Tech. Rep., University of Wisconsin-Madison, July.]]
[15]
Carter, J., Bennett, J., and Zwaenepoel, W. 1991. Implementation and performance of Munin. In Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles, 152--164.]]
[16]
Carter, J., Bennett, J., and Zwaenepoel, W. 1995. Techniques for reducing consistency-related information in distributed shared memory systems. ACM Trans. Comput. Syst. 13, 3 (Aug.), 205--243.]]
[17]
Casanova, H., Dongarra, J., and Doolin, D. 1997. Java access to numerical libraries. Concurr. Pract. Exper. 9, 11.]]
[18]
Castro, M., Adya, A., Liskov, B., and Myer, A. C. 1997. Hac: Hybrid adaptive caching for distributed storage systems. In Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles.]]
[19]
Chandra, R., Gupta, A., and Hennessy, J. 1994. Cool: An object-based language for parallel programming. IEEE Computer 27, 8 (Aug.), 14--26.]]
[20]
Christiansen, B., Cappello, P., Ionescu, M. F., Neary, M. O., Schauser, K. E., and Wu, D. 1997. Javelin: Internet-based parallel computing using Java. Concurr. Pract. Exper. 9, 11 (Nov.), 1139--1160.]]
[21]
Das, M. 2000. Unification-based pointer analysis with directional assignments. In Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation.]]
[22]
Deutsch, L. P. and Schiffman, A. M. 1984. Efficient implementation of the Smalltalk-80 system. In Proceedings of the Eleventh Annual ACM Symposium on Principles of Programming Languages, 297--302.]]
[23]
Dwarkadas, S., Gharachorloo, K., Kontothanassis, L., Scales, D. J., Scott, M. L., and Stets, R. 1999. Comparative evaluation of fine- and coarse-grain approaches for software distributed shared memory. In Proceedings of the Fifth International Symposium on High-Performance Computer Architecture, 260--269.]]
[24]
Ferreira, P. and Shapiro, M. 1994. Garbage collection and DSM consistency. In Proceedings of the First USENIX Symposium on Operating System Design and Implementation.]]
[25]
Fox, G. and Furmanski, W. 1996. Towards Web/Java based high performance distributed computing---an evolving virtual machine. In Proceedings of the Fifth IEEE International Symposium on High Performance Distributed Computing.]]
[26]
Freeh, V. and Andrews, G. 1996. Dynamically controlling false sharing in distributed shared memory. In Proceedings of the Fifth Symposium on High-Performance Distributed Computing.]]
[27]
Gharachorloo, K., Lenoski, D., Laudon, J., Gibbons, P., Gupta, A., and Hennessy, J. 1990. Memory consistency and event ordering in scalable shared-memory multiprocessors. In Proceedings of the Seventeenth Annual International Symposium on Computer Architecture, 15--26.]]
[28]
Goldberg, A. and Robson, D. 1983. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, Mass.]]
[29]
Harris, J. and Sarkar, V. 1998. Lightweight object-oriented shared variables for distributed applications on the Internet. In OOPSLA '98 Conference Proceedings, 296--309.]]
[30]
Herlihy, M. 1999. The aleph toolkit: Support for scalable distributed shared objects. In CANPC '99. Lecture Notes in Computer Science, vol. 1602, Springer-Verlag, New York.]]
[31]
Intel Corporation. 2001. IA-32 Intel Architecture Software Developer's Manual, Volume 3: System Programming Guide.]]
[32]
Itzkovitz, A. and Schuster, A. 1999. Multiview and millipage---fine-grain sharing in page-based DSMs. In Proceedings of the Third USENIX Symposium on Operating System Design and Implementation.]]
[33]
James, J. and Singh, A. K. 2000. Design of the Kan distributed object system. Concurr. Pract. Exper. 12, 8, 755--797.]]
[34]
JavaGrande. Javagrande. Available at http://www.javagrande.org/.]]
[35]
Kachler, T. and Krasner, G. 1990. LOOM---Large Object-Oriented Memory for Smalltalk-80 Systems. Morgan Kaufmann, San Francisco, 298--307.]]
[36]
Kale, L., Bhandarkar, M., and Wilmarth, T. 1997. Design and Implementation of Parallel Java with Global Object Sace. Morgan Kaufmann, San Francisco, 235--244.]]
[37]
Keleher, P., Cox, A. L., and Zwaenepoel, W. 1992. Lazy release consistency for software distributed shared memory. In Proceedings of the Nineteenth Annual International Symposium on Computer Architecture, 13--21.]]
[38]
Kordale, R., Ahamad, M., and Shilling, J. 1993. Distributed/concurrent garbage collection in distributed shared memory systems. In Proceedings of the International Workshop on Object Orientation and Operating Systems.]]
[39]
Lamb, C., Landis, G., Orenstein, J., and Weinreb, D. 1991. The objectstore database system. CACM 34, 10 (Oct.), 50--63.]]
[40]
Lamport, L. 1979. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. C-28, 9 (Sept.), 690--691.]]
[41]
Landi, W. and Ryder, B. 1992. A safe approximate algorithm for interprocedural pointer aliasing. In Proceedings of the ACM SIGPLAN 92 Conference on Programming Language Design and Implementation.]]
[42]
Le Sergent, T. and Berthomieu, B. 1992. Incremental multi-threaded garbage collection on virtually shared memory architectures. In Proceedings of the International Workshop on Memory Management.]]
[43]
Li, K. and Hudak, P. 1989. Memory coherence in shared virtual memory systems. ACM Trans. Comput. Syst. 7, 4 (Nov.), 321--359.]]
[44]
Lu, H., Dwarkadas, S., Cox, A. L., and Zwaenepoel, W. 1997. Quantifying the performance differences between PVM and TreadMarks. J. Parallel Distrib. Comput. 43, 2 (June), 56--78.]]
[45]
Matthews, D. C. J. and Le Sergent, T. 1995. Lemma: A distributed shared memory with global and local garbage collections. In Proceedings of the International Workshop on Memory Management.]]
[46]
Philipsen, M. and Zenger, M. 1997. Javaparty---transparent remote objects in Java. Concur. Pract. Exper. 9, 11 (Nov.), 1225--1242.]]
[47]
Rinard, M. C. and Lam, M. S. 1998. The design, implementation, and evaluation of Jade. ACM Trans. Program. Lang. Syst. 20, 3 (May), 483--545.]]
[48]
Scales, D., Gharachorloo, K., and Thekkath, C. 1996. Shasta: A low overhead software-only approach for supporting fine-grain shared memory. In Proceedings of the Seventh Symposium on Architectural Support for Programming Languages and Operating Systems.]]
[49]
Scales, D. J. and Lam, M. S. 1994. The design and evaluation of a shared object system for distributed memory machines. In Proceedings of the First USENIX Symposium on Operating System Design and Implementation, 101--114.]]
[50]
Schoinas, I., Falsafi, B., Lebeck, A. R., Reinhardt, S. K., Larus, J. R., and Wood, D. A. 1994. Fine-grain access control for distributed shared memory. In Proceedings of the Sixth Symposium on Architectural Support for Programming Languages and Operating Systems, 297--306.]]
[51]
Singh, J., Weber, W.-D., and Gupta, A. 1992. SPLASH: Stanford parallel applications for shared-memory. Comput. Arch. News 20, 1 (Mar.), 2--12.]]
[52]
Tanenbaum, A., Kaashoek, M., and Bal, H. 1992. Parallel programming using shared objects and broadcasting. IEEE Computer 25, 8 (Aug.), 10--20.]]
[53]
Tarditi, D. and Diwan, A. 1996. Measuring the cost of storage management. Lisp Symbol. Comput. 9, 4 (Dec.).]]
[54]
Thomas, R. 1981. A dataflow computer with improved asymptotic performance. Tech. Rep. TR-265, MIT Laboratory for Computer Science.]]
[55]
Timber. Timber: A Spar/Java compiler. Available at http://www.pds.twi.tudelft.nl/timber/.]]
[56]
Tower Technologies. Towerj 3.0: A new generation native Java compiler and runtime environment. Available at http://www.towerj.com/.]]
[57]
Veldema, R., Hofman, R., Bhoedjang, R., and Bal, H. E. 2001a. Runtime optimizations for a Java DSM implementation. In Proceedings of the Joint ACM Java Grande---ISCOPE 2001 Conference.]]
[58]
Veldema, R., Hofman, R., Bhoedjang, R., Jacobs, C., and Bal, H. E. 2001b. Jackal: A compiler-supported distributed shared memory implementation of Java. In Proceedings of the Eighth Symposium on the Principles and Practice of Parallel Programming.]]
[59]
Watson, P. and Watson, I. 1987. An efficient garbage collection scheme for parallel computer architectures. In PARLE'87---Parallel Architectures and Languages Europe. Lecture Notes in Computer Science, vol. 259, Springer-Verlag, Eindhoven, the Netherlands.]]
[60]
White, S. and DeWitt, D. 1992. A performance study of alternative object faulting and pointer swizzling strategies. In Proceedings of the Eighteenth International Conference on Very Large Data Bases.]]
[61]
White, S. and DeWitt, D. 1994. Quickstore: A high performance mapped object store. In Proceedings of the 1994 ACM SIGMOD Conference.]]
[62]
Wilkinson, T. 1996. Kaffe: A virtual machine to run Java code. Available at http://www.kaffe.org/.]]
[63]
Wilson, P. R. and Moher, T. G. 1989. Design of the opportunistic garbage collector. In Proceedings of the Fourth ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, 23--35.]]
[64]
Wilson, P. R. and Moher, T. G. 1992. Pointer swizzling at page fault time: Efficiently and compatibly supporting huge address spaces on standard hardware. In Proceedings of the International Workshop on Object Orientation in Operating Systems, 364--377.]]
[65]
Woo, S. C., Ohara, M., Torrie, E., Singh, J. P., and Gupta, A. 1995. The SPLASH-2 programs: Characterization and methodological considerations. In Proceedings of the Twentysecond Annual International Symposium on Computer Architecture, 24--36.]]
[66]
Yu, W. and Cox, A. L. 1996. Conservative garbage collection on DSM systems. In Proceedings of the Sixteenth International Conference on Distributed Computing Systems.]]

Cited By

View all
  • (2021)Gengar: An RDMA-based Distributed Hybrid Memory Pool2021 IEEE 41st International Conference on Distributed Computing Systems (ICDCS)10.1109/ICDCS51616.2021.00018(92-103)Online publication date: Jul-2021
  • (2018)Remote regionsProceedings of the 2018 USENIX Conference on Usenix Annual Technical Conference10.5555/3277355.3277430(775-787)Online publication date: 11-Jul-2018
  • (2011)Handles revisitedACM SIGPLAN Notices10.1145/2076022.199349246:11(89-98)Online publication date: 4-Jun-2011
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Computer Systems
ACM Transactions on Computer Systems  Volume 21, Issue 1
February 2003
115 pages
ISSN:0734-2071
EISSN:1557-7333
DOI:10.1145/592637
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 February 2003
Published in TOCS Volume 21, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Communications
  2. distributed sharing
  3. memory consistency
  4. safe programming languages

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Gengar: An RDMA-based Distributed Hybrid Memory Pool2021 IEEE 41st International Conference on Distributed Computing Systems (ICDCS)10.1109/ICDCS51616.2021.00018(92-103)Online publication date: Jul-2021
  • (2018)Remote regionsProceedings of the 2018 USENIX Conference on Usenix Annual Technical Conference10.5555/3277355.3277430(775-787)Online publication date: 11-Jul-2018
  • (2011)Handles revisitedACM SIGPLAN Notices10.1145/2076022.199349246:11(89-98)Online publication date: 4-Jun-2011
  • (2011)Handles revisitedProceedings of the international symposium on Memory management10.1145/1993478.1993492(89-98)Online publication date: 4-Jun-2011
  • (2007)Complete distributed garbage collection using DGC-consistent cuts and .NET AOP-supportIET Software10.1049/iet-sen:200700151:6(263)Online publication date: 2007
  • (2004)LOTS: a software DSM supporting large object space2004 IEEE International Conference on Cluster Computing (IEEE Cat. No.04EX935)10.1109/CLUSTR.2004.1392620(225-234)Online publication date: 2004
  • (2004)An Overview of the Virtuosi ToolkitAdvanced Distributed Systems10.1007/978-3-540-25958-9_4(31-41)Online publication date: 2004

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media