Asynchronous Bulk File I/O in Titanium,
a High-Performance SPMD Java Dialect
(CS264 Final Project, Fall 1999)
University of California, Berkeley
Berkeley, CA 94720-1776
AbstractTitanium 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)
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