@Article{ferreira:data-intensive,
  author = {Renato Ferreira and Gagan Agrawal and Joel Saltz},
  title = {Data parallel language and compiler support for data intensive
  applications},
  journal = {Parallel Computing},
  year = {2002},
  month = {May},
  volume = {28},
  number = {5},
  pages = {725--748},
  publisher = {Elsevier Science},
  URL = {http://www.elsevier.com/gej-ng/10/35/21/60/57/30/abstract.html},
  keywords = {parallel I/O, parallel applications, data parallel, pario-bib},
  abstract = {Processing and analyzing large volumes of data plays an
  increasingly important role in many domains of scientific research.
  High-level language and compiler support for developing applications that
  analyze and process such datasets has, however, been lacking so far. \par In
  this paper, we present a set of language extensions and a prototype compiler
  for supporting high-level object-oriented programming of data intensive
  reduction operations over multidimensional data. We have chosen a dialect of
  Java with data-parallel extensions for specifying a collection of objects, a
  parallel for loop, and reduction variables as our source high-level language.
  Our compiler analyzes parallel loops and optimizes the processing of datasets
  through the use of an existing run-time system, called active data repository
  (ADR). We show how loop fission followed by interprocedural static program
  slicing can be used by the compiler to extract required information for the
  run-time system. We present the design of a compiler/run-time interface which
  allows the compiler to effectively utilize the existing run-time system. \par
  A prototype compiler incorporating these techniques has been developed using
  the Titanium front-end from Berkeley. We have evaluated this compiler by
  comparing the performance of compiler generated code with hand customized ADR
  code for three templates, from the areas of digital microscopy and scientific
  simulations. Our experimental results show that the performance of compiler
  generated versions is, on the average 21% lower, and in all cases within a
  factor of two, of the performance of hand coded versions.}
}

