An Efficient Semi-Hierarchical Array Layout
For high-level programming languages, linear array layout have de facto been the sole form of mapping array elements to memory, to see widespread use. The increasingly deep and complex memory hierarchies present in current computer systems expose several deficiencies of linear array layouts. One such deficiency is that linear array layouts strongly favor locality in one index dimension of multidimensional arrays. Secondly, the exact mapping of array elements to cache locations depend on the array’s size, which effectively renders linear array layouts non-analyzable with respect to cache behavior. We present and evaluate an alternative, semi-hierarchical, array layout which differs from linear array layouts by being neutral with respect to locality in different index dimensions and by enabling accurate and precise analysis of cache behaviors at compile-time.
KeywordsArray Element Iteration Space Cache Line Index Expression Array Reference
Unable to display preview. Download preview PDF.
- Carter, L., Ferrante, J., and Hummel, S. (1995). Hierarchical tiling for improved superscalar performance. In International Parallel Processing Symposium.Google Scholar
- Chatterjee, S., Gilbert, J., Schreiber, R., and Teng, S.-H. (1992). Optimal evaluation of array expressions on massively parallel machines. Technical report, XEROX PARC.Google Scholar
- Chatterjee, S., Jain, V. V., Lebeck, A. R., Mundhra, S., and Thottethodi, M. (1999a). Nonlinear array layouts for hierarchical memory systems. In Proc. 1999 ACM Int. Conf. on Supercomputing,pages 444-453, Rhodes, Greece.Google Scholar
- Cmelik, R. F. (1993). Spixtools user’s manual. Technical Report SMLI TR-93–6, Sun Microsystems Labs, Mountain View, CA.Google Scholar
- Coleman, S. and McKinley, K. S. (1995). Tile size selection using cache organization and data layout. In Proc. ACM Conf. on Programming Language Design and Implementation, pages 279–290, La Jolla, CA.Google Scholar
- Drakenberg, N. P. (2001). Hierarchical Array Tiling. Licentiate thesis, Department of Teleinformatics, Royal Institute of Technology, Stockholm. In preparation. http://www.it.kth.se/-npd/lic-thesis.ps.
- Ghosh, S., Martonosi, M., and Malik, S. (1997). Cache miss equations: An analytical representation of cache misses. In Proc. 1997 International Conference on Supercomputing, pages 317–324, Vienna, Austria.Google Scholar
- Ghosh, S., Martonosi, M., and Malik, S. (1998). Precise miss analysis for program transformations with caches of arbitrary associativity. In Proc. 8th Int. Conf. on Architectural Support for Programming Languages and Operating Systems,Vienna, Austria.Google Scholar
- Gupta, M. (1992). Automatic Data Partitioning on Distributed Memory Multicomputers. PhD thesis, University of Illinios at Urbana-Champaign, Urbana, IL.Google Scholar
- Knobe, K., Lucas, J. D., and Daily, W. J. (1992). Dynamic alignment on distributed memory systems. In Proc. 3rd Workshop on Compilers for Parallel Computers, pages 394–404.Google Scholar
- Lam, M. S., Rothberg, E. E., and Wolf, M. E. (1991). The cache performance and optimizations of blocked algorithms. In Proc. 4th Int. Conf. on Architectural Support for Programming Languages and Operating Systems, pages 63–74.Google Scholar
- Mitchell, N., Carter, L., and Ferrante, J. (1997). A compiler perspective on architectural evolutions. In Workshop on Interaction between Compilers and Computer Architectures,San Antonio, Texas.Google Scholar
- Morton, G. M. (1966). A computer oriented geodetic data base and a new technique in file sequencing. Technical report, IBM Ltd., Ottawa, Ontario.Google Scholar
- Rivera, G. and Tseng, C.-W. (1998a). Data transformations for eliminating conflict misses. In Proc. ACM SIGPLAN’98 Conference on Programming Language Design and Implementation, pages 3849, Montreal, Canada.Google Scholar
- Rivera, G. and Tseng, C.-W. (1998b). Eliminating conflict misses for high performance architectures. In Proc. 1998 International Conference on Supercomputing, pages 353–360, Melbourne, Australia.Google Scholar
- Schrijver, A. (1986). Teory of Linear and Integer Programming. John Wiley and Sons, Chichester.Google Scholar
- Temam, O., Granston, E. D., and Jalby, W. (1993). To copy or not to copy: A compile-time technique for assessing when data copying should be used to eliminate cache conflicts. In Proc. Supercomputing ‘83, Portland, OR.Google Scholar
- Vera, X., Llosa, J., Gonzalez, A., and Ciuraneta, C. (2000). A fast implementation of cache miss equations. In Proc. 8th Workshop on Compilers for Parallel Computers, pages 321–328, Aussois, France.Google Scholar
- Wise, D. S. (2000). Ahnentafel indexing into morton-ordered arrays, or matrix locality for free. In Bode, A. et al., editors, Proc. Euro-Par 2000, pages 774–783. Springer-Verlag.Google Scholar
- Wolfe, M. (1996). High Performance Compilers for Parallel Computing. Addison-Wesley, Redwood City, CA.Google Scholar