A Java Environment for High-Performance Computing
Resumo
There has been an increasing research interest in extending the use of Java towards high-performance demanding systems such as scalable web servers, multimedia applications, and large-scale scientific applications. However, given the low performance provided by current Java implementations, these application domains pose new challenges to both the application designer and systems developer. In this paper we present CoJVM (Cooperative Java Virtual Machine), a new Java environment for high-performance computing designed to speed up Java applications when executing on DSM based architectures implemented on clusters of workstations. The shared memory implementation is based on the HLRC DSM protocol and takes advantage of run-time information, extracted from the NM, to improve application performance.
Referências
ARIDOR, Y. ; FACTOR, M.; TEPERMAN, A. cJVM: a Cluster Aware JVM. Proceedings of the First Annual Workshop on Java for High-Performance Computing in conjunction with the 1999 ACM International Conference on Supercomputing (ICS), Rhodes, Greece, June 1999.
ARNOLD, K.; GOSLING, J. The Java programming Language, First Edition. Addison-Wesley, 1996.
BARATLOO, A.; KARAUL, M.; KARL, H; KEDEM, Z. An lnfrastructure for Network Computing with Java Applets. In Proceedings of the ACM 1998 Workshop on Java for High Performance Network Computing; Pato Alto, California, USA, February 1998.
BOEHM, H.; WEISER, M. Garbage Collection in an Uncooperative Environment. Software: Practice and Experience 1988; 18(9):807-820.
CAPPELLO P.; CHRISTIANSEN B.; IONESCU M.; NEARY M.; SCHAUSER K.; WU, D. Javelin: Internet-Based Parallel Computing Using Java. Concurrency: Practice and Experience 1997; 9(11): 1139-1160.
CAROMEL D.; KLAUSER W.; VAYSSIRE J. Towards Seamless Computing and Metacomputing in Java. Concurrency: Practice and Experience 1998; 10(11 - 13): 1043-106.
CHEN, X.; ALLAN, V. MultiJav: A Distributed Shared Memory System Based on Multiple Java Virtual Machines. The 1998 International Conference on Parallel and Distributed Processing Technique and Applications (PDPTA'98), Las Vegas, Nevada, USA, July 1998.
Compaq Corporation, Intel Corporation, and Microsoft Corporation. Virtual Interface Architecture Specification, Version 1.0. http://www.viarch.org. Accessed on December, 25.
FOX, G.; FURMANSKI, W. Towards Web/Java Based High Performance Distributed Computing - an Evolving Virtual Machine. ln Proceedings of the 5th. IEEE Symposium on High Performance Distributed Computing; 1996.
Java Grande Forum. http://www.javagrande.org. Accessed on December, 25.
GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J.; BOOCH, G. Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
GUPTA, M.; MIDKI, S.; MOREIRA, J. High Performance Numerical Computing in Java: Compiler. Language and Application Solutions. Tutorial at the ACM / IEEE Supercomputing; Dallas, USA, November 2000.
HERLIHY, M. ; WARRES, M. A Tale of Two Directories: lmplementing Distributed Shared Objects in Java. In ACM 1999 Java Grande Conference, Pato Alto, California, USA, June 1999.
HOARE, C. Monitors: An Operating System Structuring Concept, Communications of the ACM, 12(10), October 1974.
KARL, H. Bridging the Gap Between Distributed Shared Memory and Message Passing. In ACM 1998 Workshop on Java for High Performance Network Computing. Palo Alto, California, USA, February 1998.
KELEHER, P.; COX, A.; ZWAENEPOEL, W. Lazy release consistency for software distributed shared memory. Proceedings of the Nineteenth International Symposium on Computer Architecture, pages 13-21, May 1992.
KELEHER, P.; DW ARKADAS, A.; COX, A.; ZWAENEPOEL, W. TreadMarks: Distributed Shared Memory on Standard Workstations and Operating Systems. Proceedings of the 1994 Winter Usenix Conference, pp.115-131, January 1994.
LI, K.; HUDAK, P. Memory coherence in shared virtual memory systems. ACM Transactions on Computer Systems, 7(4):321--359, November 1989.
UNDHOLM, T.; Yellin, F. The Java Virtual Machine Specification. Second edition. Addison-Wesley, 1999.
LOBOSCO, M.; AMORIM, C.; LOQUES, O. Java for High-Performance Computing. Technical Report RT-01/01. Available at http://www.caa.uff.br/reltec.html.
Manta: Fast Parallel Java. http://www.cs.vu.n1/manta/.
RANGARAJAN M.; lFTODE L. Software Distributed Shared Memory over Virtual Interface Architecture: lmplementation and Performance. In Proceedings of the 4th Annual Linux Showcase and Conference, Atlanta, October 10-14,2000, Atlanta, Georgia, USA.
Sun Microsystems. The Java Hotspot TM Performance Engine Architecture. http://java.sun.com/products/hotspot/whitepaper.html. Accessed on December, 25.
ZHOU, Y.; IFTODE, L.; LI, K. Performance evaluation of two home-based lazy release consistency protocols for shared virtual memory systems. Proceedings of the 2nd Symposium on Operating Systems Design and lmplementation, October 1996.
YELICK, K. et al. Titanium: A High-Performance Java Dialect. In ACM 1998 Workshop on Java for High-Performance Network Computing, Stanford, California, February 1998.
YU, W.; COX, A. Java/DSM: a Platform for Heterogeneous Computing. ACM 1997 Workshop on Java for Science and Engineering Computation, June 1997.