Welcome to Pochoir

Pochoir (pronounced "PO-shwar") is a compiler and run-time system for
implementing stencil computations on multicore processors. A stencil defines
the value of a grid point in a d-dimensional spatial grid at time t as a
function of neighboring grid points at recent times before t. A stencil
computation computes the stencil for each grid point over many time steps.

In Pochoir, user typically just need to specify his /or her stencil
computing kernel and boundary conditions in an embedded domain specific
language in C++. Depending on the purpose of checking functional correctness or
performance, user can employ either a native C++ compiler or Pochoir compiler
to compile and run his /or her code. If the user employs the Pochoir compiler,
the basic parallelization and optimization strategy of Pochoir is
divide-and-conquer (cache-oblivious algorithm). In higher dimensional
space-time grid, Pochoir employs a novel cutting strategy of Hyper-Space
cut.

Pochoir is an open source software project hosted by SuperTech group at
CSAIL, MIT. You are invited to contribute in many forms (documentation,
translation, writing code, fixing bugs, porting to other platforms...).

The Pochoir package contains three (3) main components: an embedded domain
specific language (EDSL) in native C++ for stencil, a C++ template run-time
library, and a domain specific compiler to optimize the performance at
compile-time.

The Pochoir EDSL is native C++, the library is C++ template library, and the
DSL compiler is written in Haskell. Currently, the Pochoir package is only
tested on Linux system.

Please send your name and affiliation to Pochoir Development List to let us know that
you are interested in using Pochoir, so that we can provide better technical
support to all our known customers, which includes bug fix, new release
notification, new feature incorporation, etc.