Data-only flattening for nested data parallelism

  • Authors:
  • Lars Bergstrom;Matthew Fluet;Mike Rainey;John Reppy;Stephen Rosen;Adam Shaw

  • Affiliations:
  • University of Chicago, Chicago, IL, USA;Rochester Institute of Technology, Rochester, NY, USA;Max Planck Institute for Software Systems, Kaiserslautern, Germany;University of Chicago, Chicago, IL, USA;University of Chicago, Chicago, IL, USA;University of Chicago, Chicago, IL, USA

  • Venue:
  • Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
  • Year:
  • 2013
  • The manticore project

    Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing

Quantified Score

Hi-index 0.00

Visualization

Abstract

Data parallelism has proven to be an effective technique for high-level programming of a certain class of parallel applications, but it is not well suited to irregular parallel computations. Blelloch and others proposed nested data parallelism (NDP) as a language mechanism for programming irregular parallel applications in a declarative data-parallel style. The key to this approach is a compiler transformation that flattens the NDP computation and data structures into a form that can be executed efficiently on a wide-vector SIMD architecture. Unfortunately, this technique is ill suited to execution on today's multicore machines. We present a new technique, called data-only flattening, for the compilation of NDP, which is suitable for multicore architectures. Data-only flattening transforms nested data structures in order to expose programs to various optimizations while leaving control structures intact. We present a formal semantics of data-only flattening in a core language with a rewriting system. We demonstrate the effectiveness of this technique in the Parallel ML implementation and we report encouraging experimental results across various benchmark applications.