@InProceedings{gotwals:streams,
  author = {Jacob Gotwals and Suresh Srinivas and Dennis Gannon},
  title = {{pC++}/streams: a Library for {I/O} on Complex Distributed Data
  Structures},
  booktitle = {Proceedings of the Fifth ACM SIGPLAN Symposium on Principles and
  Practice of Parallel Programming},
  year = {1995},
  month = {July},
  pages = {11--19},
  publisher = {ACM Press},
  address = {Santa Barbara, CA},
  URL = {ftp://ftp.cs.indiana.edu/pub/techreports/TR422a.ps.Z},
  keywords = {parallel I/O, object-oriented, distributed data structures,
  runtime library, pario-bib},
  comment = {URL is for tech report version. They have a language called pC++
  that allows object-parallel programming. They have a library called d/streams
  for I/O of distributed arrays. pC++/streams is a combination. You open a
  file, specify the in-memory distribution, read from the stream, and then
  extract some variables. Likewise, you insert some variables (into the stream
  buffer), then write it. They manage the distribution, and they store
  necessary metadata to reassemble the data structure when reading. Variables
  can be arbitrary classes, with $>>$ and $<<$ overloaded as the insert and
  extract operators. Performance is reasonable on Intel Paragon and SGI
  Challenge.}
}

