Skip to main content
Log in

A Platform-Independent Distributed Runtime for Standard Multithreaded Java

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

JavaSplit is a portable runtime environment for distributed execution of standard multithreaded Java programs. It gains augmented computational power and increased memory capacity by distributing the threads and objects of an application among the available machines. Unlike previous works, which either forfeit Java portability by using a nonstandard Java Virtual Machine (JVM) or compromise transparency by requiring user intervention in making the application suitable for distributed execution, JavaSplit automatically executes standard multithreaded Java on any heterogenous collection of Java-enabled machines. Each machine carries out its part of the computation using nothing but its local standard (unmodified) JVM. Neither the programmer nor the person submitting the program for execution needs to be aware of JavaSplit or its distributed nature. We evaluate the efficiency of JavaSplit on several combinations of operating systems, JVM implementations, and communication hardware.

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.

Similar content being viewed by others

References

  1. Antoniu G., Bougé L., Hatcher P., MacBeth M., McGuigan K., and Namyst R. (2001). The Hyperion System: Compiling Multithreaded Java Bytecode for Distributed Execution. Parallel Computing 27(10):1279–1297 [Online]. Available: citeseer.nj.nec.com/antoniu01hyperion.html.

    Article  MATH  Google Scholar 

  2. Y. Aridor, M. Factor, and A. Teperman, cJVM: A Single System Image of a JVM on a Cluster, International Conference on Parallel Processing, pp. 4–11 (1999). [Online]. Available: citeseer.nj.nec.com/aridor99cjvm.html.

  3. Philippsen M. and Zenger M. (1997). JavaParty—Transparent Remote Objects in Java. Concurrency: Practice and Experience 9(11):1225–1242 [Online]. Available: citeseer.nj.nec.com/philippsen97javaparty.html.

    Article  Google Scholar 

  4. Y. Sohda, H. Nakada, and S. Matsuoka, Implementation of a Portable Software DSM in Java, Java Grande, Stanford University, CA, USA (2001). [Online]. Available: citeseer.nj.nec.com/sohda01implementation.html.

  5. M. Tatsubori, T. Sasaki, S. Chiba, and K. Itano, A Bytecode Translator for Distributed Execution of “Legacy” Java Software, Lecture Notes in Computer Science, vol. 2072 (2001). [Online]. Available: citeseer.nj.nec.com/tatsubori01bytecode.html.

  6. E. Tilevich and Y. Smaragdakis, J-Orchestra: Automatic Java Application Partitioning, European Conference on Object-Oriented Programming (ECOOP), Malaga, Spain (June 2002).

  7. R. Veldema, R. A. F. Bhoedjang, and H. E. Bal, Distributed Shared Memory Management for Java, Proceedings of the Sixth Annual Conference of the Advanced School for Computing and Imaging (ASCI 2000), pp. 256–264 (2000).

  8. Yu W. and Cox A.L. (1997). Java/DSM: A Platform for Heterogeneous Computing. Concurrency – Practice and Experience 9(11):1213–1224 [Online]. Available: citeseer.nj.nec.com/yu97javadsm.html.

    Article  Google Scholar 

  9. W. Zhu, C.-L. Wang, and F. C. M. Lau, JESSICA2: A Distributed Java Virtual Machine with Transparent Thread Migration Support, IEEE Fourth International Conference on Cluster Computing, Chicago, USA (September 2002). [Online]. Available: citeseer.nj.nec.com/zhu02jessica.html.

  10. JSR 133, Java Memory Model and Thread Specification Revision, http://jcp.org/ jsr/detail/133.jsp

  11. P. Keleher, A. L. Cox, and W. Zwaenepoel, Lazy Release Consistency for Software Distributed Shared Memory, Proc. of the 19th Annual Int’l Symp. on Computer Architecture (ISCA’92), pp. 13–21 (1992). [Online]. Available: citeseer.nj.nec.com/keleher92lazy.html.

  12. Y. Zhou, L. Iftode, and K. Li, Performance Evaluation of Two Home-Based Lazy Release Consistency Protocols for Shared Memory Virtual Memory Systems, Proceedings of the 2nd Sympsium on Operating Systems Design and Implementation (OSDI’96), Seattle, Washington, USA, pp. 75–88. (1996). [Online]. Available: citeseer.nj.nec.com/zhou96performance.html.

  13. R. Samanta, A. Bilas, L. Iftode, and J. P. Singh, Home-based SVM Protocols for SMP Clusters: Design, Simulations, Implementation and Performance, Proceedings of the 4th International Symposium on High Performance Computer Architecture, Las Vegas, USA (1998).

  14. J.-D. Choi, M. Gupta, M. J. Serrano, V. C. Sreedhar, and S. P. Midkiff, Escape Analysis for Java, Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Denver, USA, pp. 1–19. (1999). [Online]. Available: citeseer.nj.nec.com/choi99escape.html.

  15. Iftode L. (1998). Home-based Shared Virtual Memory Ph.D. dissertation, Princeton University, New Jersey, New York, USA [Online]. Available: citeseer.nj.nec.com/article/iftode98homebased.html

    Google Scholar 

  16. D. F. Bacon, R. B. Konuru, C. Murthy, and M. J. Serrano, Thin Locks: Featherweight Synchronization for Java, SIGPLAN Conference on Programming Design and Implementation, Montreal, Canada, pp. 258–268. (1998). [Online]. Available: citeseer.nj.nec.com/bacon98thin.html.

  17. Gosling J., Joy B., Steele G., and Bracha G. (2000). The Java Language Specification, 2nd edn. Addison-Wesley, Boston, Mass [Online]. Available: citeseer.nj.nec.com/gosling00java.html

    Google Scholar 

  18. M. Factor, A. Schuster, and K. Shagin, Instrumentation of Standard Libraries in Object-Oriented Languages: The Twin Class Hierarchy Approach, Object-Oriented Programming, System, Languages and Applications, Vancouver, Canada (October 2004).

  19. R. Veldema, R. F. H. Hofman, R. A. F. Bhoedjang, and H. E. Bal, Runtime Optimizations for a Java DSM Implementation, Java Grande, Stanford University, CA, USA, pp. 153–162 (2001). [Online]. Available: citeseer.nj.nec.com/veldema01runtime.html.

  20. Veldema R., Hofman R.F.H., Bhoedjang R.A.F., Jacobs C.J.H., and Bal H.E. (2001). Source-level Global Optimizations for Fine-grain Distributed Shared Memory Systems. ACM SIGPLAN Notices 36(7):83–92 [Online]. Available: citeseer.nj.nec.com/ veldema01sourcelevel.html

    Article  Google Scholar 

  21. L. A. Smith and J. M. Bull, A Multithreaded Java Grande Benchmark Suite, Proceedings of the Third Workshop on Java for High Performance Computing, Amsterdam, Holland (2001).

  22. P. Keleher, S. Dwarkadas, A. L. Cox, and W. Zwaenepoel, Treadmarks: Distributed Shared Memory on Standard Workstations and Operating Systems, Proceedings of the Winter 1994 USENIX Conference, San Francisco, USA, pp. 115–131 (1994). [Online]. Available: citeseer.nj.nec.com/keleher94treadmark.html.

  23. Caromel D., Klauser W., and Vayssière J. (1998). Towards Seamless Computing and Metacomputing in Java. Concurrency: Practice and Experience 10(11–13):1043–1061 [Online]. Available: citeseer.nj.nec.com/article/caromel98towards.html

    Article  Google Scholar 

  24. M. Herlihy, The Aleph Toolkit: Support for Scalable Distributed Shared Objects, Workshop on Communication, Architecture, and Applications for Network-based Parallel Computing, Orlando, USA (January 1999).

  25. N. Camiel, S. London, N. Nisan, and O. Regev, The POPCORN Project: Distributed Computation Over the Internet in Java, 6th International World Wide Web Conference, Santa Clara, CA, USA (1997).

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Konstantin Shagin.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Factor, M., Schuster, A. & Shagin, K. A Platform-Independent Distributed Runtime for Standard Multithreaded Java. Int J Parallel Prog 34, 113–142 (2006). https://doi.org/10.1007/s10766-006-0007-0

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-006-0007-0

Keywords

Navigation