Skip to main content
Log in

Distributed shared arrays: A distributed virtual machine with mobility support for reconfiguration

  • Published:
Cluster Computing Aims and scope Submit manuscript

Abstract

Distributed Shared Arrays (DSA) is a distributed virtual machine that supports Java-compliant multithreaded programming with mobility support for system reconfiguration in distributed environments. The DSA programming model allows programmers to explicitly control data distribution so as to take advantage of the deep memory hierarchy, while relieving them from error-prone orchestration of communication and synchronization at run-time. The DSA system is developed as an integral component of mobility support middleware for Grid computing so that DSA-based virtual machines can be reconfigured to adapt to the varying resource supplies or demand over the course of a computation. The DSA runtime system also features a directory-based cache coherence protocol in support of replication of user-defined sharing granularity and a communication proxy mechanism for reducing network contention. System reconfiguration is achieved by a DSA service migration mechanism, which moves the DSA service and residing computational agents between physical servers for load balancing and fault resilience. We demonstrate the programmability of the model in a number of parallel applications and evaluate its performance by application benchmark programs, in particular, the impact of the coherence granularity and service migration overhead.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. C. Amza et al., TreadMarks: Shared memory computing on networks of workstations. IEEE Computer (Feb. 1996) pp. 18–28.

  2. M. Baker et al., mpiJava: A java interface to MPI. In: Proc. of the First UK Workshop on Java for High Performance Network Computing, Europar (1998).

  3. H. E. Bal, R. Bhoedigang, B. Hofman, C. Jacobs, K. Langendoen, T. Ruhl, and M. F. Kassehoek, Orca: A portable user-level shared object system. Technical Report IR-408, Vrije Universiteit, Amsterdam (June 1996).

  4. A. Basumallik, S.-J. Min, and R. Eigenmann, Towards OpenMP execution on software distributed shared memory systems. In: Proc. of Int’l Workshop on OpenMP: Experiences and Implementations (May 2002).

  5. F. Berman, R.Wolski, H. Casanova, W. Cirne, H. Dail, M. Faerman, S. Figueira, J. Hayes, G. Obertelli, J. Schopf, G. Shao, S. Smallen, N. Spring, A. Su, and D. Zagorodnov, Adaptive computing on the grid using AppLeS. IEEE Transactions on Parallel and Distributed Systems 14(4) (April 2003) 369–382.

    Article  Google Scholar 

  6. N. Carriero and D. Gelernter, Linda in context. Communication of ACM 32(4) (April 1989) pp. 444–458.

    Article  Google Scholar 

  7. R. Chandra et al., Parallel Programming in OpenMP (Morgan Kaufmann, 2001).

  8. D. Culler, A. Dusseau, S. Goldstein, A. Krishnamurthy, S. Lumetta, T. von Ericken, and K. Yelick, Parallel programming in Split-C. In: Proc. of SC’93, pp. 262–273.

  9. D. Culler and J. Singh, Parallel Computer Architecture: A Hardware/Software Approach. (Morgan Kaufmann Pub., 1998).

  10. S. B. Davidson, H. Garcia-Molina, and D. Skeen, Consistency in partitioned networks. ACM Computing Surveys 17(3) (1985) 341–370.

    Article  Google Scholar 

  11. B. Falsafi and D. A. Wood, Scheduling communication on a SMP node parallel machine. In: Proc. of HPCA’97 (February 1997).

  12. A. J. Ferrari, JPVM: Network parallel computing in Java. In: Proc. of ACM 1998 Workshop on Java for High Performance Network Computing (1998).

  13. R. Figueiredo, P. Dinda, and J. Fortes, A case for grid computing on virtual machines. In: Proc. of the 23 rd Int’l Conference on Distributed Computing Systems (ICDCS’03) (May 2003).

  14. I. Foster and C. Kesselman (eds.), The Grid: Blueprint for a New Computing Infrastructure (Morgan Kaufmann, San Fransisco, 1999).

  15. S. Fu and C.-Z. Xu, Migration decision for hybrid mobility in reconfigurable distributed virtual machines. In: Proc. of the 33 rd Int’l Conference on Parallel Processing (ICPP) (Montreal, Quebec, Canada, August 2004).

  16. A. Fuggetta, G. P. Picco, and G. Vigna, Understanding code mobility. IEEE Transactions on Software Engineering 24(5) (1998) 342–361.

    Article  Google Scholar 

  17. V. Getov, G. V. Laszewski, M. Philippsen, I. T. Foster, Multiparadigm communications in Java for grid computing. Communication of ACM 44(10) (2001) 118–125.

    Article  Google Scholar 

  18. L. Giannini and A. Chien, A software architecture for global address space communication on clusters: Put/Get on Fast Messages. In: Proc. of the 7th IEEE HPDC (July 1998) pp. 330–337.

  19. Y. Hu and H. Lu, A. Cox and W. Zwaenepoel, OpenMP for networks of SMPs. Journal of Parallel and Distributed Computing 60(12) (2000) 1512–1530.

    Article  MATH  Google Scholar 

  20. JavaSpaces. http://www.java.sun.com/products/javaspaces/specs/js.pdf

  21. H. Jiang and V. Chaudhary, MigThread: Thread migration in DSM systems. In: Proc. of Int’l Conference on Parallel Processing Workshops (August 2002) pp. 581–588.

  22. Y.-S. Kee, J.-S. Kim, and S. Ha, ParADE: An OpenMP programming environment for SMP cluster systems. In: Proc. of ACM/IEEE Supercomputing Conference (November 2003).

  23. P. Keleher, CVM: The coherent virtual machine. University of Maryland, CVM Ver. 2.0 (1997).

  24. D. Kondo, M. Taufer, C. Brooks, H. Casanova, and A. Chien, Characterizing and evaluating desktop grids: An empirical study. In: Proc. of the 18th Int’l Parallel and Distributed Processing Symposium (IPDPS) (Sante Fe, NM, April 2004).

  25. K. Li and P. Hudak, Memory conherence in shared virtual memory systems. ACM Transactions on Computer Systems 7(4) (November 1989) 321–359.

    Article  Google Scholar 

  26. B.-H. Lim, P. Heidelberger, P. Pattnaik, and M. Snir, Message proxies for efficient, protected communication on SMP clusters. In: Proc. of HPDC’1997.

  27. T. Lindholm and F. Yellin, The Java(TM) Virtual Machine Specification, Addison-Wesley, 2nd edition (1999).

  28. D. Milojicic, F. Douglis, Y. Panedeine, R. Wheeler, and S. Zhou, Process migration. ACM Computing Surveys 32(3) (2000) 241–299.

    Article  Google Scholar 

  29. J. Nieplocha, R. J. Harrison, and R. J. Littlefield, Global arrays: A portable shared-memory programming model for distributed memory computers. In: Supercomputing’94 (1994).

  30. L. Peng, W. F. Wong, M. D. Feng, and C. K. Yuen, SilkRoad: A Multithreaded Runtime System with Software Distributed Shared Memory for SMP Clusters. In: Proc. of IEEE International Conferrence on Cluster Computing (Cluster2000) (November 2000).

  31. J. Protic, M. Tomasevic, and V. Milutinovic, Distributed shared memory: Concepts and systems. IEEE Parallel and Distributed Technology (summer 1996) pp. 63–79.

  32. M. Philippsen, B. Haumacher, and C. Nester, More efficient serialization and RMI for Java. Concurrency: Practice and Experience 12(7) (May 2000) 495–518.

    Article  Google Scholar 

  33. M. Philippsen and M. Zenger, “JavaParty—Transparent Remote Objects in Java”, University of Karlsruhe, Germany. In: Proceedings of PPoPP, Workshop on Java for Science and Engineering Computation (22 July 1997) .

  34. A. Rao, K. Lakshminarayanan, S. Surana, R. Karp, and I. Stoica, Load balancing in structured p2p systems. In: Proc. of the 2 nd International Workshop on Peer-to-Peer Systems (IPTPS) (February 2003).

  35. R. L. Ribler, J. S. Vetter, H. Simitci, and D. A. Reed, Autopilot: Adaptive control of distributed applications. In: Proc. of the 7th IEEE Symposium on High-Performance Distributed Computing (HPDC) (July 1998) pp. 172–179.

  36. S. Roy and V. Chaudhary, Strings: A high performance distributed shared memory for symmetric multi-processor clusters. In: Proc. of the 7th IEEE HPDC (August 1998).

  37. C. P. Sapuntzakis, R. Chandra, B. Pfaff, J. Chow, M. S. Lam, and M. Rosenblum, Optimizing the migration of virtual computers. In: Proc. of the 5 Symposium on Operating Systems Design and Implementation (OSDI’02) (December 2002).

  38. SETI@home project. http://setiathome.ssl.berkeley.edu/(Date of access: February 20, 2004).

  39. E. G. Sirer, R. Grimm, A. J. Gregory, and B. N. Bershad, Design and implementation of a distributed virtual machine for networked computers. In: Proc. of the 17th ACM symposium on Operating systems principles (SOSP’99) (December 1999) pp. 202–216.

  40. E. Speight and J. Bennett, Brazos: A third generation DSM system. In: Proc. of the First USENIX Windows NT Workshop (August 1997).

  41. The University of Texas and IBM to Build Nation’s Largest Campus Grid. http://www-1.ibm.com/grid/grid_press/pr_ut.shtml.

  42. G. Thiruvathukal, P. Dickens, and S. Bhatti, Java on networks of workstations (JavaNOW): A parallel computing framework inspired by Linda and the message passing interface (MPI). Concurrency: Practice and Experience 12(11) (November 2000) 1093–1116.

    Article  Google Scholar 

  43. E. Truyen, B. Robben, B. Vanhaute, T. Coninx, W. Joosen, and P. Verbaeten, Portable support for transparent thread migration in Java. In: Proc. of the 4 th Int’l Symposium on Mobile Agents (Springer-Verlag, 2000) pp. 29–43.

  44. R. van Nieuwpoort, J. Maassen, H. E. Bal, T. Kielmann, and R. Veldema, Wide-area parallel computing using the remote method invocation model. Concurrency: Practice and Experience 12(8) (June 1999) 643–666.

    Article  Google Scholar 

  45. R. Veldema, R. Bhoedjang, and H. Bal, Jackal: A compiler based implementation of Java for clusters of workstations. In: Proc. of the 8 th ACM SIGPLAN Symp. on Principles and Parallel Programming (PPoPP) (Snowbird, June 2001).

  46. R.Veldema, R. Hofman, R. Bhoedjang, and H. Bal, Runtime optimizations for a Java DSM implementation. Concurrency & Computation: Practice and Experience 15(3–5) (2003) 299– 316.

    Google Scholar 

  47. V. Welch, F. Siebenlist, I. Foster, J. Bresnahan, K. Czajkowski, J. Gawor, C. Kesselman, S. Meder, L. Pearlman, and S. Tuecke, Security for grid services. In: Proc. of the 12thIEEE Int’l Symposium on High Performance Distributed Computing (HPDC) (June 2003) pp. 48–57.

  48. B. Wims and C.-Z. Xu, Traveler: A mobile agent infrastructure for global parallel computing. In: Proc. of 1 st Joint Symposium: Int’l Symp. on Agent Systems and Applications (ASA’99) and Third Int. Symp. on Mobile Agents (MA’99) (October 1999).

  49. S. Woo, M. Ohara, E. Torrie, J. Singh, and A. Gupta, The SPLASH-2 programs: Characterization and methodological considerations. In: Proc. of the 22 nd Annual Int’l Symposium on Computer Architecture (June 1995).

  50. C. Wyckoff and T Spaces, IBM Systems Journal 37(3) (1998).

  51. C.-Z. Xu and F. Lau, Load Balancing in Parallel Computers. (Kluwer Academic Publishers, 1997).

  52. C.-Z. Xu and B. Wims, A mobile agent based push methodology for global parallel computing. Concurrency: Practice and Experience 12(8) (2000) 705–726.

    Article  MATH  Google Scholar 

  53. C.-Z. Xu, W. Brian, and R. Basharahil, Distributed shared array: an integration of message passing and multithreading on SMP clusters. In: Proc. of the 11th IASTED Int’l Conf. on Parallel and Distributed Computing and Systems (Cambridge, MA, November 1999) pp. 305–310.

  54. A. Yu and W. Cox, Java/DSM: A platform for heterogeneous computing. In: Proceedings of ACM 1997 Workshop on Java for Science and Engineering Computation (June 1997).

  55. W. Zhu, C.-L. Wang, and F. Lau, JESSICA2: A distributed Java virtual machine with transparent thread migration support. In: Proc. of the 4th IEEE Conf. on Cluster Computing (September 2002) pp. 381–388.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Cheng-Zhong Xu.

Additional information

Song Fu received the BS degreee in computer science from Nanjing University of Aeronautics and Astronautics, China, in 1999, and the MS degree in computer science from Nanjing University, China, in 2002. He is currently a PhD candidate in computer engineering at Wayne State University. His research interests include the resource management, security, and mobility issues in wide-area distributed systems.

Cheng-Zhong Xu received the BS and MS degrees in computer science from Nanjing University in 1986 and 1989, respectively, and the Ph.D. degree in computer science from the University of Hong Kong in 1993. He is an Associate Professor in the Department of Electrical and Computer Engineer of Wayne State University. His research interests lie in distributed are in distributed and parallel systems, particularly in resource management for high performance cluster and grid computing and scalable and secure Internet services. He has published more than100 peer-reviewed articles in journals and conference proceedings in these areas. He is the author of the book Scalable and Secure Internet Services and Architecture (CRC Press, 2005) and a co-author of the book Load Balancing in Parallel Computers: Theory and Practice (Kluwer Academic, 1997). He serves on the editorial boards of J. of Parallel and Distributed Computing, J. of Parallel, Emergent, and Distributed Systems, J. of High Performance Computing and Networking, and J. of Computers and Applications. He was the founding program co-chair of International Workshop on Security in Systems and Networks (SSN), the general co-chair of the IFIP 2006 International Conference on Embedded and Ubiquitous Computing (EUC06), and a member of the program committees of numerous conferences. His research was supported in part by the US National Science Foundation, NASA, and Cray Research. He is a recipient of the Faculty Research Award of Wayne State University in 2000, the Presidents Award for Excellence in Teaching in 2002, and the Career Development Chair Award in 2003. He is a senior member of the IEEE.

Brian A. Wims was born in Washington, DC in 1967. He received the Bachelor of Science in Electrical Engineering from GMI-EMI (now called Kettering University) in 1990; and Master of Science in Computer Engineering from Wayne State University in 1999. His research interests are primarily in the fields of parallel and distributed systems with applications in Mobile Agent technologies.

From 1990–2001 he worked in various Engineering positions in General Motors, including Electrical Analysis, Software Design, and Test and Development. In 2001, he joined the General Motors IS&S department where he is currently a Project Manager in the Computer Aided Test group. Responsibilities include managing the development of test automation applications in the Electrical, EMC, and Safety Labs.

Ramzi Basharahil was born in Aden, Yemen in 1972. He received the Bachelor of Science degree in Electrical Engineering from the United Arab Emirates University. He graduated top of his engineering graduated class of 1997. He obtained Master of Science degree in 2001 from Wayne State University in the Department of Electrical and Computer Engineering. His main research interests are primarily in the fields of parallel and distributed systems with applications to distributed processing across cluster of servers.

From 1997 to 1998, he worked as a Teaching Assistant in the Department of Electrical Engineering at the UAE University. In 2000, he joined Internet Security Systems as a security software engineer. He later joined NetIQ Corporation in 2002 and still working since then. He is leading the security events trending and events management software development where he is involved in designing and the implementing event/log managements products.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Fu, S., Xu, CZ., Wims, B. et al. Distributed shared arrays: A distributed virtual machine with mobility support for reconfiguration. Cluster Comput 9, 237–255 (2006). https://doi.org/10.1007/s10586-006-9739-2

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10586-006-9739-2

Keywords

Navigation