Skip to main content
Log in

A strategy for array management in local memory

  • Published:
Mathematical Programming Submit manuscript

Abstract

One major point in loop restructuring for data locality optimization is the choice and the evaluation of data locality criteria. In this paper we show how to compute approximations of window sets defined by Gannon, Jalby, and Gallivan. The window associated with an iterationi describes the “active” portion of an array: elements that have already been referenced before iterationi and that will be referenced after iterationi. Such a notion is extremely useful for data localization because it identifies the portions of arrays that are worth keeping in local memory because they are going to be referenced later. The computation of these window approximations can be performed symbolically at compile time and generates a simple geometrical shape that simplifies the management of the data transfers. This strategy allows derivation of a global strategy of data management for local memories which may be combined efficiently with various parallelization and/or vectorization optimizations. Indeed, the effects of loop transformations fit naturally into the geometrical framework we use for the calculations.

The determination of window approximations is studied both from a theoretical and a computational point of view, and examples of applications are given.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. M. Burke and R. Cytron, “Interprocedural analysis and parallelization,” in:Proceedings of SIGPLAN 86, Symposium on Compiler Construction (1986) pp. 162–175.

  2. C.H. Chi and H. Dietz, “Unified management of registers and cache using liveness and cache bypass,”Proceedings of 1989 SIGPLAN Conference on Programming Language. Design and Implementation (1989).

  3. K. Gallivan, D. Gannon and W. Jalby, “On the problem of optimizing data transfers for complex memory systems,” in:Proceedings of ACM International Conference on Supercomputing (ACM, New York, (1988) pp. 238–253.

    Google Scholar 

  4. K. Gallivan, D. Gannon, W. Jalby, A. Malony and H. Wijshoff, “Experimentally characterizing the behavior of multiprocessor memory systems: A case study,”IEEE Transaction on Software Engineering 16(2) (1990).

  5. K. Gallivan, W. Jalby, A. Malony and H. Wijshoff, “Performance prediction of loop constructs on multiprocessor hierarchical memory systems,” in:Proceedings of ACM International Conference on Supercomputing (ACM, New York, 1989) pp. 433–442.

    Google Scholar 

  6. D. Gannon, W. Jalby and K. Gallivan, “Strategies for cache and local memory management by global program transformation,” in:Proceedings of the International Conference on Supercomputing (Springer Verlag, New York, 1987) andJournal of Parallel and Distributed Computing 5 (1988) 587–616.

    Google Scholar 

  7. K. Kennedy, “Automatic translation of Fortran programs to vector form,” Technical Report, Rice University (Houston, TX, 1980).

    Google Scholar 

  8. D. Kuck, R. Kuhn, B. Leasure and M. Wolfe, “Dependence graphs and compiler optimization,”Proceedings of the Symposium on POPL (1981).

  9. D. Padua and D. Kuck, “High-speed multiprocessors and compilation techniques,”IEEE Transactions on Computers C-29(9) (1980) 763–776.

    Google Scholar 

  10. D. Padua and M. Wolfe, “Advanced compiler optimizations for supercomputers,”Communications of the ACM 29(12) (1986) 1184–1201.

    Google Scholar 

  11. G. Pfister and A. Norton, “Hot spot contention and combining in multistage interconnection networks,” in:Proceedings of the 1985 International Conference on Parallel Processing (1985) pp. 790–797.

  12. A. Porterfield, “Compiler management of program locality,” Technical Report, Rice University (Houston, TX, 1988).

    Google Scholar 

  13. S. Sahni, “Approximate algorithms for the [0, 1] knapsack problem,”Journal of the ACM 22 (1975) 115–124.

    Google Scholar 

  14. A. Veidenbaum and H. Cheong, “Cache Coherence Scheme with Fast Selective Invalidation,” in:Proceedings of the International Symposium on Computer Architecture (1988).

  15. M. Wolf and M. Lam, “An algorithm to generate sequential and parallel code with improved data locality,” Technical Report, Stanford University (Stanford, CA, 1990).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Eisenbeis, C., Jalby, W., Windheiser, D. et al. A strategy for array management in local memory. Mathematical Programming 63, 331–370 (1994). https://doi.org/10.1007/BF01582075

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01582075

Keywords

Navigation