Skip to main navigation Skip to search Skip to main content

The pochoir stencil compiler

  • Fudan University
  • Massachusetts Institute of Technology
  • Tokutek Inc.
  • Intel

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

269 Scopus citations

Abstract

A stencil computation repeatedly updates each point of a d-dimensional grid as a function of itself and its near neighbors. Parallel cache-efficient stencil algorithms based on "trapezoidal decompositions" are known, but most programmers find them difficult to write. The Pochoir stencil compiler allows a programmer to write a simple specification of a stencil in a domain-specific stencil language embedded in C++ which the Pochoir compiler then translates into high-performing Cilk code that employs an efficient parallel cache-oblivious algorithm. Pochoir supports general d-dimensional stencils and handles both periodic and aperiodic boundary conditions in one unified algorithm. The Pochoir system provides a C++ template library that allows the user's stencil specification to be executed directly in C++ without the Pochoir compiler (albeit more slowly), which simplifies user debugging and greatly simplified the implementation of the Pochoir compiler itself. A host of stencil benchmarks run on a modern multicore machine demonstrates that Pochoir outperforms standard parallelloop implementations, typically running 2-10 times faster. The algorithm behind Pochoir improves on prior cache-efficient algorithms on multidimensional grids by making "hyperspace" cuts, which yield asymptotically more parallelism for the same cache efficiency.

Original languageEnglish
Title of host publicationSPAA'11 - Proceedings of the 23rd Annual Symposium on Parallelism in Algorithms and Architectures
Pages117-128
Number of pages12
DOIs
StatePublished - 2011
Event23rd ACM Symposium on Parallelism in Algorithms and Architectures, SPAA'11 - San Jose, CA, United States
Duration: Jun 4 2011Jun 6 2011

Publication series

NameAnnual ACM Symposium on Parallelism in Algorithms and Architectures

Conference

Conference23rd ACM Symposium on Parallelism in Algorithms and Architectures, SPAA'11
Country/TerritoryUnited States
CitySan Jose, CA
Period06/4/1106/6/11

Keywords

  • C++
  • cache-oblivious algorithm
  • cilk
  • compiler
  • embedded domain-specific language
  • multicore
  • parallel computation
  • stencil computation
  • trapezoidal decomposition

Fingerprint

Dive into the research topics of 'The pochoir stencil compiler'. Together they form a unique fingerprint.

Cite this