An evaluation of Java's I/O capabilities for high-performance computing.
Java is quickly becoming the preferred language for writing distributed applications because of its inherent support for programming on distributed platforms. In particular, Java provides compile-time and run-time security, automatic garbage collection, inherent support for multithreading, support for persistent objects and object migration, and portability. Given these significant advantages of Java, there is a growing interest in using Java for high-performance computing applications. To be successful in the high-performance computing domain, however, Java must have the capability to efficiently handle the significant I/O requirements commonly found in high-performance computing applications. While there has been significant research in high-performance I/O using languages such as C, C++, and Fortran, there has been relatively little research into the I/O capabilities of Java. In this paper, we evaluate the I/O capabilities of Java for high-performance computing. We examine several approaches that attempt to provide high-performance I/O--many of which are not obvious at first glance--and investigate their performance in both parallel and multithreaded environments. We also provide suggestions for expanding the I/O capabilities of Java to better support the needs of high-performance computing applications.
- Research Organization:
- Argonne National Lab., IL (US)
- Sponsoring Organization:
- US Department of Energy (US)
- DOE Contract Number:
- W-31109-ENG-38
- OSTI ID:
- 768615
- Report Number(s):
- ANL/MCS/CP-103360; TRN: US200304%%207
- Resource Relation:
- Conference: ACM 2000 Java Grande, San Francisco, CA (US), 06/03/2000--06/04/2000; Other Information: PBD: 10 Nov 2000; PBD: 10 Nov 2000; PBD: 10 Nov 2000
- Country of Publication:
- United States
- Language:
- English
Similar Records
Java Performance for Scientific Applications on LLNL Computer Systems
PyOMP: Multithreaded Parallel Programming in Python