Stencil codes are a lass of iterative kernels which update array elements according to some fixed patten. They are commonly used in computer simulations , like computational fluid dynamics in the context of scientific and engineering application, solving partial differential equations, Jacobi kernel, Gauss-Seidel method, image processing and cellular automata.
Stencil codes usually perform a sequence of sweeps through a given 2- or 3- dimensional array. In addition to their importance in scientific calculations, stencils are interesting as an architectural evaluation benchmark because they have abundant parallelism and low computational intensity, offering a mixture of opportunities for on-chip parallelism and challenges for associated memory systems.
- Data Layout Transformation for Structured-Grid Codes on GPU I-Jui Sung, Wen-Mei Hwu University of Illinois at Urbana-Champaign(PACT 2010)
- Stencil Computation Optimization and Auto-tuning on State-of-the-Art Multicore Architectures, Kaushik Datta, SC’08
- Tiling optimizations for 3D scientific computations ( Supercomputing’00)
- Impact of modern memory subsystems on cache optimizations for stencil computations ( MSP’05)
- Schedule-independent storage mapping for loops (ASPLOS’98)
- Optimization and Performance Modeling of Stencil Computations on Modern Microprocessors (SIAM’09)
- http://en.wikipedia.org/wiki/Stencil_codes
- Andreas Schäfer’s PhD project: LibGeoDecomp, a great self-adapting stencil codes for the grid.
- According to Andreas Schäfer, The paper–3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs–is currently best performing multi core implemenation for LBM and Jacobi.

近期评论