Efficient and correct stencil computation via pattern matching and static typing

5Citations
Citations of this article
15Readers
Mendeley users who have this article in their library.

Abstract

Stencil computations, involving operations over the elements of an array, are a common programming pattern in scientific computing, games, and image processing. As a programming pattern, stencil computations are highly regular and amenable to optimisation and parallelisation. However, general-purpose languages obscure this regular pattern from the compiler, and even the programmer, preventing optimisation and obfuscating (in) correctness. This paper furthers our work on the Ypnos domain-specific language for stencil computations embedded in Haskell. Ypnos allows declarative, abstract specification of stencil computations, exposing the structure of a problem to the compiler and to the programmer via specialised syntax. In this paper we show the decidable safety guarantee that well-formed, well-typed Ypnos programs cannot index outside of array boundaries. Thus indexing in Ypnos is safe and run-time bounds checking can be eliminated. Program information is encoded as types, using the advanced type-system features of the Glasgow Haskell Compiler, with the safe-indexing invariant enforced at compile time via type checking.

Cite

CITATION STYLE

APA

Orchard, D., & Mycroft, A. (2011). Efficient and correct stencil computation via pattern matching and static typing. In Electronic Proceedings in Theoretical Computer Science, EPTCS (Vol. 66, pp. 68–92). Open Publishing Association. https://doi.org/10.4204/EPTCS.66.4

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free