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


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.


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

Titanium Project Home Page

Back to Dan's Homepage