Argonne National Laboratory Mathematics and Computer Science Division
Argonne Home > MCS Division >

Publications

D. Bonachea, P. Dickens, R. Thakur, "High-Performance File I/O in Java: Existing Approaches and Bulk I/O Extensions," Preprint ANL/MCS-P840-0800, August 2000. [pdf]

There is a growing interest in using Java as the language for developing high-performance computing applications. To be successful in the high-performance computing domain, however, Java must not only be able to provide high computational performance, but also high-performance I/O. In this paper, we first examine several approaches that attempt to provide high-performance I/O in Java—many of which are not obvious at first glance—and evaluate their performance on two parallel machines, the IBM SP and the SGI Origin2000. We then propose extensions to the Java I/O library that address the deficiencies in the Java I/O API and improve performance dramatically. The extensions add bulk (array) I/O operations to Java, thereby removing much of the overhead currently associated with array I/O in Java. We have implemented the extensions in two ways: in a standard JVM using the Java Natice Interface (JNI) and in a high-performance parallel dialect of Java called Titanium. We describe the two implementations and present performancae results that demonsrate the benefits of the proposed extensions.


The Office of Advanced Scientific Computing Research | UChicago Argonne LLC | Privacy & Security Notice | ContactUs