TY - GEN
T1 - Programming with tiles
AU - Guo, Jia
AU - Bikshandit, Ganesh
AU - Fraguela, Basilio B.
AU - Garzarán, María J.
AU - Padua, David
PY - 2008
Y1 - 2008
N2 - The importance of tiles or blocks in scientific computing cannot be overstated. Many algorithms, both iterative and recursive, can be expressed naturally if tiles are represented explicitly. From the point of view of performance, tiling, either as a code or a data layout transformation, is one of the most effective ways to exploit locality, which is a must to achieve good performance in current computers because of the significant difference in speed between processor and memory. Furthermore, tiles are also useful to express data distribution in parallel computations. However, despite the importance of tiles, most languages do not support them directly. This gives place to bloated programs populated with numerous subscript expressions which make the code difficult to read and coding mistakes more likely. This paper discusses Hierarchically Tiled Arrays (HTAs), a data type which facilitates the easy manipulation of tiles in objectoriented languages with emphasis on two new features, dynamic partitioning and overlapped tiling. These features facilitate the expression of locality and communication while maintaining the same performance of algorithms written using conventional languages.
AB - The importance of tiles or blocks in scientific computing cannot be overstated. Many algorithms, both iterative and recursive, can be expressed naturally if tiles are represented explicitly. From the point of view of performance, tiling, either as a code or a data layout transformation, is one of the most effective ways to exploit locality, which is a must to achieve good performance in current computers because of the significant difference in speed between processor and memory. Furthermore, tiles are also useful to express data distribution in parallel computations. However, despite the importance of tiles, most languages do not support them directly. This gives place to bloated programs populated with numerous subscript expressions which make the code difficult to read and coding mistakes more likely. This paper discusses Hierarchically Tiled Arrays (HTAs), a data type which facilitates the easy manipulation of tiles in objectoriented languages with emphasis on two new features, dynamic partitioning and overlapped tiling. These features facilitate the expression of locality and communication while maintaining the same performance of algorithms written using conventional languages.
KW - Data-parallel
KW - Locality
KW - Parallel programming
KW - Tiling
UR - http://www.scopus.com/inward/record.url?scp=79959486752&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=79959486752&partnerID=8YFLogxK
M3 - Conference contribution
AN - SCOPUS:79959486752
SN - 9781595939609
T3 - Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP
SP - 1
EP - 10
BT - PPoPP'08 - Proceedings of the 2008 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
T2 - 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP'08
Y2 - 20 February 2008 through 23 February 2008
ER -