Programming for parallelism and locality with hierarchically tiled arrays

  • Authors:
  • Ganesh Bikshandi;Jia Guo;Daniel Hoeflinger;Gheorghe Almasi;Basilio B. Fraguela;María J. Garzarán;David Padua;Christoph von Praun

  • Affiliations:
  • University of Illinois at Urbana-Champaign;University of Illinois at Urbana-Champaign;University of Illinois at Urbana-Champaign;IBM T.J. Watson Research Center;Universidade da Coruña,Spain;University of Illinois at Urbana-Champaign;University of Illinois at Urbana-Champaign;IBM T.J. Watson Research Center

  • Venue:
  • Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Tiling has proven to be an effective mechanism to develop high performance implementations of algorithms. Tiling can be used to organize computations so that communication costs in parallel programs are reduced and locality in sequential codes or sequential components of parallel programs is enhanced.In this paper, a data type - Hierarchically Tiled Arrays or HTAs - that facilitates the direct manipulation of tiles is introduced. HTA operations are overloaded array operations. We argue that the implementation of HTAs in sequential OO languages transforms these languages into powerful tools for the development of high-performance parallel codes and codes with high degree of locality. To support this claim, we discuss our experiences with the implementation of HTAs for MATLAB and C++ and the rewriting of the NAS benchmarks and a few other programs into HTA-based parallel form.