International Journal of Parallel Programming

, Volume 34, Issue 2, pp 113–142 | Cite as

A Platform-Independent Distributed Runtime for Standard Multithreaded Java

  • Michael Factor
  • Assaf Schuster
  • Konstantin Shagin

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.


distributed computing Java bytecode instrumentation distributed shared memory 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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: Scholar
  2. 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: Scholar
  3. 3.
    Philippsen M. and Zenger M. (1997). JavaParty—Transparent Remote Objects in Java. Concurrency: Practice and Experience 9(11):1225–1242 [Online]. Available: Scholar
  4. 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: Scholar
  5. 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: Scholar
  6. 6.
    E. Tilevich and Y. Smaragdakis, J-Orchestra: Automatic Java Application Partitioning, European Conference on Object-Oriented Programming (ECOOP), Malaga, Spain (June 2002).Google Scholar
  7. 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).Google Scholar
  8. 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: Scholar
  9. 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: Scholar
  10. 10.
    JSR 133, Java Memory Model and Thread Specification Revision, jsr/detail/133.jspGoogle Scholar
  11. 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: Scholar
  12. 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: Scholar
  13. 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).Google Scholar
  14. 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: Scholar
  15. 15.
    Iftode L. (1998). Home-based Shared Virtual Memory Ph.D. dissertation, Princeton University, New Jersey, New York, USA [Online]. Available: Scholar
  16. 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: Scholar
  17. 17.
    Gosling J., Joy B., Steele G., and Bracha G. (2000). The Java Language Specification, 2nd edn. Addison-Wesley, Boston, Mass [Online]. Available: Scholar
  18. 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).Google Scholar
  19. 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: Scholar
  20. 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: veldema01sourcelevel.htmlCrossRefGoogle Scholar
  21. 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).Google Scholar
  22. 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: Scholar
  23. 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: Scholar
  24. 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).Google Scholar
  25. 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).Google Scholar

Copyright information

© Springer Science+Business Media, Inc. 2006

Authors and Affiliations

  • Michael Factor
    • 1
  • Assaf Schuster
    • 2
  • Konstantin Shagin
    • 2
  1. 1.IBM Research Lab in HaifaHaifa University CampusHaifaIsrael
  2. 2.Computer Science DepartmentIsrael Institute of TechnologyTechnion CityIsrael

Personalised recommendations