Writing productive stencil codes with overlapped tiling

  • Authors:
  • Jia Guo;Ganesh Bikshandi;Basilio B. Fraguela;David Padua

  • Affiliations:
  • University of Illinois at Urbana-Champaign, Urbana, IL, U.S.A.;IBM, India;Universidade da Coruña, Spain;University of Illinois at Urbana-Champaign, Urbana, IL, U.S.A.

  • Venue:
  • Concurrency and Computation: Practice & Experience - Compilers for Parallel Computers 2007 Workshop (CPC 2007)
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Stencil computations constitute the kernel of many scientificapplications. Tiling is often used to improve the performance ofstencil codes for data locality and parallelism. However, tiledstencil codes typically require shadow regions, whose managementbecomes a burden to programmers. In fact, it is often the case thatthe code required to manage these regions, and in particular theirupdates, is much longer than the computational kernel of thestencil. As a result, shadow regions usually impact programmers'productivity negatively. In this paper, we describe overlappedtiling, a construct that supports shadow regions in aconvenient, flexible and efficient manner in the context of thehierarchically tiled array (HTA) data type. The HTA is a classdesigned to express algorithms with a high degree of parallelismand-or locality as naturally as possible in terms of tiles. Wediscuss the syntax and implementation of overlapped HTAs as well asour experience in rewriting parallel and sequential codes usingthem. The results have been satisfactory in terms of bothproductivity and performance. For example, overlapped HTAs reducedthe number of communication statements in non-trivial codes by 78%on average while speeding them up. We also examine differentimplementation options and compare overlapped HTAs with previousapproaches. Copyright © 2008 John Wiley & Sons, Ltd.Portions of this paper were previously published in 'Programmingwith Tiles' by Guo J, Bikshandi G, Fraguela BB, Garzarán MJ,Padua D. Proceedings of the 13th ACM SIGPLAN Symposium onPrinciples and Practice of Parallel Programming (PPoPP),February 2008.