Asynchronous Bulk File I/O in Titanium,
a High-Performance SPMD Java Dialect
(CS264 Final Project, Fall 1999)
Dan Bonachea
EECS Department
University of California, Berkeley
Berkeley, CA 94720-1776
(email)
Abstract
Titanium is a high-performance explicitly parallel SPMD dialect of Java. Currently, the runtime support for file I/O is limited to the classes present in Java, which have proven too inefficient to meet the demands of high-performance scientific applications which perform large amounts of file I/O. A new library is presented which adds support for asynchronous file I/O operations to enable masking I/O latency with overlapped computation. The new library also provides support for bulk (array) I/O operations, removing much of the overhead associated with the Java I/O libraries which require the programmer to read arrays a single element at a time. Experimental results are presented which compare the performance of the new library with the existing I/O libraries on a simple external merge sort, and show the performance of the new library to be vastly superior to the existing I/O facilities for this application.Paper
Available here as : Postscript (ps) and Acrobat (pdf)
Related Resources
Titanium's Bulk I/O Library Extensions - This page documents the library extensions now available to Titanium users that were developed as a result of this investigation.
AsyncFile Class Interface Specification - The public interface specification which appears in the paper above
Double-Buffered External Merge Sort (first pass) - This is the full code for the Sample Titanium Application used to collect benchmarks
Solaris 2.6 Reference Manual Answerbook
The Java Language Specification