High-performance file I/O in Java: Existing approaches and bulk I/O extensions

Citation
D. Bonachea et al., High-performance file I/O in Java: Existing approaches and bulk I/O extensions, CONCURR COM, 13(8-9), 2001, pp. 713-736
Citations number
30
Categorie Soggetti
Computer Science & Engineering
Journal title
CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE
ISSN journal
15320626 → ACNP
Volume
13
Issue
8-9
Year of publication
2001
Pages
713 - 736
Database
ISI
SICI code
1532-0626(200107/08)13:8-9<713:HFIIJE>2.0.ZU;2-4
Abstract
There is a growing interest in using Java as the language for developing hi gh-performance computing applications. To be successful in the high-perform ance 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 thei r 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 deficie ncies in the Java I/O API and improve performance dramatically. The extensi ons add bulk (array) I/O operations to Java, thereby removing much of the o verhead currently associated with array I/O in Java. We have implemented th e extensions in two ways: in a standard JVM using the Java Native Interface (JNI) and in a high-performance parallel dialect of Java called Titanium. We describe the two implementations and present performance results that de monstrate the benefits of the proposed extensions. Copyright (C) 2001 John Wiley & Sons, Ltd.