@InProceedings{dickens:javaio,
  author = {Phillip M. Dickens and Rajeev Thakur},
  title = {An Evaluation of {Java's I/O} Capabilities for High-Performance
  Computing},
  booktitle = {Proceedings of the ACM 2000 Java Grande Conference},
  year = {2000},
  month = {June},
  pages = {26--35},
  publisher = {ACM Press},
  URL = {http://www.mcs.anl.gov/~thakur/papers/javaio.ps},
  keywords = {parallel I/O, Java, pario-bib},
  abstract = {Java is quickly becoming the preferred language for writing
  distributed applications because of its inherent support for programming on
  distributed platforms. In particular, Java provides compile-time and run-time
  security, automatic garbage collection, inherent support for multithreading,
  support for persistent objects and object migration, and portability. Given
  these significant advantages of Java, there is a growing interest in using
  Java for high-performance computing applications. To be successful in the
  high-performance computing domain, however, Java must have the capability to
  efficiently handle the significant I/O requirements commonly found in
  high-performance computing applications. \par While there has been
  significant research in high-performance I/O using languages such as C, C++,
  and Fortran, there has been relatively little research into the I/O
  capabilities of Java. In this paper, we evaluate the I/O capabilities of Java
  for high-performance computing. We examine several approaches that attempt to
  provide high-performance I/O---many of which are not obvious at first
  glance---and investigate their performance in both parallel and multithreaded
  environments. We also provide suggestions for expanding the I/O capabilities
  of Java to better support the needs of high-performance computing
  applications.}
}

