Computational Science Technical Note CSTN-106


Automated and Parallel Code Generation for Finite-Differencing Stencils with Arbitrary Data Types

K. A. Hawick and D. P. Playne

Archived December 2009


Finite-Differencing and other regular and direct approaches to solving partial differential equations (PDEs) are methods that fit well on data-parallel computer systems. These problems continue to arise in many application areas of computational science and engineering but still offer some programming challenges as they are not readily incorporated into a general standard software library that could cover all possible PDEs. Achieving high performance on numerical solutions to PDEs generally requires exposure of the field data structures and application of knowledge of how best to map them to the memory and processing architecture of a particular parallel computer system. Stencil methods for solving PDEs are however readily implemented as semi-automatically generated skeletal frameworks. We have implemented semi automated stencil source code generators for a number of target programming languages including data-parallel languages such as CUDA for graphics processing units (GPUs) and other accelerators. We report on some performance evaluations for our generated PDE simulations on GPUs and other platforms. In this article we focus on (diffusive) PDEs with a non-trivial data type requirement such as having vector or complex field variables. We discuss the issues and compromises involved implementing equation solvers with fields comprising arbitrary data types on GPUs and other current compute devices.

Keywords: partial differential equation; stencil; parallel code generation; GPU; CUDA.

Full Document Text: PDF version.

Citation Information: BiBTeX database for CSTN Notes.

BiBTeX reference:

  author = {K. A. Hawick and D. P. Playne},
  title = {Automated and Parallel Code Generation for Finite-Differencing Stencils
	with Arbitrary Data Types},
  booktitle = {Proc. Int. Conf. Computational Science, (ICCS), Workshop on Automated
	Program Generation for Computational Science,},
  year = {2010},
  volume = {1},
  number = {1},
  pages = {1795-1803},
  address = {Amsterdam, The Netherlands},
  month = {31 May},
  publisher = {Procedia, Elsevier},
  institution = {Computer Science, Massey University},
  timestamp = {2009.12.14}

[ CSTN Index | CSTN BiBTeX ]