Inh.: Dr. Renate Gorre
Fon: +49 (0)7533 97227
Fax: +49 (0)7533 97228
Series in Computational Science
edited by Illia Horenka, Rolf Krause, Olaf Schenk
Generating and Auto-Tuning
Parallel Stencil Codes
edition/ 1. Auflage 2011. VI, 284 pages/Seiten, € 64,00.
In this thesis, we present a software framework, Patus, which generates high performance stencil codes for different types of hardware platforms, including current multicore CPU and graphics processing unit architectures. The ultimate goals of the framework are productivity, portability (of both the code and performance), and achieving a high performance on the target platform.
A stencil computation updates every grid point in a structured grid based on the values of its neighboring points. This class of computations occurs frequently in scientific and general purpose computing (e.g., in partial differential equation solvers or in image processing), justifying the focus on this kind of computation. The proposed key ingredients to achieve the goals of productivity, portability, and performance are domain
specific languages (DSLs) and the auto-tuning methodology.
The Patus stencil specification DSL allows the programmer to express a stencil computation in a concise way independently of hardware architecture-specific details. Thus, it increases the programmer productivity by disburdening her or him of low level programming model issues and of manually applying hardware platformspecific code optimization techniques. The use of domain specific languages also implies code reusability: once implemented, the same stencil specification can be reused on different hardware platforms, i.e., the specification code is portable across hardware architectures. Constructing the language to be geared towards a special purpose makes it amenable to more aggressive optimizations and therefore to potentially higher performance.
Auto-tuning provides performance and performance portability by automated adaptation of implementation-specific parameters to the characteristics of the hardware on which the code will run. By automating the process of parameter tuning - which essentially amounts to solving an integer programming problem in which the objective function is the number representing the code‘s performance as a function of the parameter configuration, - the system can also be used more productively than if the programmer had to fine-tune thecode manually.
We show performance results for a variety of stencils, for which Patus was used to generate the corresponding implementations. The selection includes stencils taken from two real-world applications: a simulation of the temperature within the human body during hyperthermia cancer treatment and a seismic application. These examples demonstrate the framework‘s flexibility and ability to produce high performance code.
About the Author:
Matthias Christen studied Mathematics, Computer Science, and Musicology at the University of Basel, Switzerland, from where he received his diploma in 2006. In his doctoral studies in Computer Science, also at the University of Basel, he worked as a research assistant in the fields of Scientific Computing and High Performance Computing. During this time he also took two research internships at the Lawrence Berkeley National Laboratory in Berkeley, CA, USA. He was awarded the Ph.D. degree from the University of Basel in 2011.
Keywords: Scientific Computing, High Performance Computing, Stencil Codes
Series in Computational Science
Bookorders at / Buchbestellungen in Ihrer Buchhandlung oder bei Amazon.de
Hartung-Gorre Verlag D-78465 Konstanz // Germany
Telefon: +49 (0) 7533 97227 // Telefax: +49 (0) 7533 97228