An Evaluation of Java's I/O Capabilities for High-Performance Computing

TitleAn Evaluation of Java's I/O Capabilities for High-Performance Computing
Publication TypeReport
Year of Publication2000
AuthorsDickens, PM, Thakur, R
Series TitleProc. ACM 2000 Java Grande Conf
Date Published09/2000
Other NumbersANL/MCS-P849-1000

<p>Java is quickly becoming the preferred language for writing distributed applications becasue 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 relatiavely 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.</p>