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.
Similar content being viewed by others
References
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.
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.
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.
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.
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.
E. Tilevich and Y. Smaragdakis, J-Orchestra: Automatic Java Application Partitioning, European Conference on Object-Oriented Programming (ECOOP), Malaga, Spain (June 2002).
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).
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.
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.
JSR 133, Java Memory Model and Thread Specification Revision, http://jcp.org/ jsr/detail/133.jsp
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.
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.
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).
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.
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
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.
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
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).
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.
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
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).
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.
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
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).
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).
Author information
Authors and Affiliations
Corresponding author
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-006-0007-0