Future Technologies Colloquium Series


Hierarchically Tiled Arrays: A Programming Paradigm for Parallelism and Locality


Ganesh Bikshandi
Computer Science Department University of Illinois at Urbana
September 18, 2006
11:00 AM

ORNL 5100-Auditorium

Host: Jeff Vetter (vetter@ornl.gov )


ABSTRACT:

Tiling is a well-known program optimization technique that transforms a n-deep loop nest in to a 2n-deep loop nest. Tiling is 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 talk, a data type - Hierarchically Tiled Array or HTA - that facilitates the direct manipulation of tiles is introduced. HTAs are arrays, whose elements can in turn be HTAs or scalars. The elements can be distributed among a cluster of computers or be collocated in a single processor. They can be accessed like the scalars of the conventional n-dimensional arrays. We have extended several array operations to HTAs, using which an HTA can also be assigned to or operated with another HTA. In essence, HTA is an attempt to adopt tiles as first class data types. 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, I will discuss our experience 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. The NAS benchmark suite consists of a wide range of challenging parallel programs - a Gaussian random deviates generator, a Multi Grid solver, a Conjugate Gradient solver, an Integer Sorting program, a Fourier Transform program and solvers for Navier-Stoke's equations. They are characterized by different forms of computation, communication and parallelism. All of these programs are expressible in HTAs, and the resulting programs are more readable than the SPMD based MPI programs.


# # #