Implementation techniques for nested-data-parallel languages

  • Authors:
  • John H. Reppy;Adam Michael Shaw

  • Affiliations:
  • The University of Chicago;The University of Chicago

  • Venue:
  • Implementation techniques for nested-data-parallel languages
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

The implementation of nested-data-parallel programming languages is a challenging and important problem. Well-engineered parallel languages help programmers make better use of the parallel computing resources at their ever-increasing disposal. Nested-data-parallelism is an especially attractive model for parallel programming, since it enables high-level parallel programs to exploit parallel resources well, regardless of the regularity or irregularity of a particular programming problem. In nested-data-parallel programs, programmers can employ the idioms to which they are accustomed and achieve parallel speedups with only modest accommodations in their source code. Nested-data-parallel languages have been in existence for over two decades now, but the ground has shifted underneath them. As a platform for parallel computing, multicore computers long ago superseded the wide-vector machines for which nested-data-parallel compilers were originally designed. Nevertheless, nested-data-parallel compilation, while adapted to ever more sophisticated languages, has remained fundamentally unaltered in its orientation toward vector instructions. This dissertation challenges long-standing techniques for compiling nested-data-parallel programs in a vector-machine style, on the basis that they are not appropriate for multicore targets. We present hybrid flattening as a suitable alternative to traditional techniques for the compilation of nested data parallelism. Hybrid flattening transforms nested data structures in order to expose programs to various optimizations, while leaving control structures intact. We provide a semantics of hybrid flattening in the form of Flatland, a model language with a rewriting system, and prove properties about its formal integrity. We then define aggressive hybrid flattening, a practical application of Flatland's rewriting rules in an optimizing transformation. We demonstrate the effectiveness of aggressive hybrid flattening with our Parallel ML implementation, and we report encouraging experimental results across various benchmark applications.