Locality optimization for program instances

  • Claudia Leopold
Workshop on Biologically Inspired Solutions to Parallel Processing Problems Albert Y. Zomaya, The University of Western Australia Fikret Ercal, University of Missouri-Rolla Stephan Olariu, Old Dominion Univesity
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1388)


The degree of locality of a program reflects the level of temporal and spatial concentration of related data and computations. Locality optimization can speed up programs by reducing the communication costs. A possible human approach to locality optimization is to consider several small program instances of a given program, find optimal or close to optimal mappings of data and computations for the program instances, and generalize them to the program.

This paper suggests the use of this approach in a semi-automatic locality optimization method. Emphasis is given to the phase of optimizing the program instances. We introduce a fuzzy objective function that reflects the degree of locality of a program instance, and show its advantages over a crisp function such as communication costs. We provide a framework for applying several optimization techniques and describe an implementation that uses local search. The paper refers to a two-level memory hierarchy.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    J.M. Anderson, S.P. Amarasinghe, M.S. Lam: Data and Computation Transformations for Multiprocessors. Proc. ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming, pp. 166–178, 1995Google Scholar
  2. 2.
    M. Cierniak, W. Li: Unifying Data and Control Transformations for Distributed Shared Memory Machines. Proc. ACM SIGPLAN'95 Conf. on Programming Language Design and Implementation, pp.205–217, 1995Google Scholar
  3. 3.
    Y. Crama, A.W.J. Kolen, E.J. Pesch: Local Search in Combinatorial Optimization. Artificial Neural Networks, LNCS 931, pp. 157–174, 1991Google Scholar
  4. 4.
    K. Dussa-Zieger: Configuration, Mapping and Sequencing by Genetic Algorithms. Proc. Int. Workshop on Approximate Reasoning in Scheduling, ICSC Press, pp. 11–17, 1997Google Scholar
  5. 5.
    H. El-Rewini, T.G. Lewis, H.H. Ali: Task Scheduling in Parallel and Distributed Systems. Prentice Hall, 1994Google Scholar
  6. 6.
    M. Kandemir, J. Ramanujam, A. Choudhary: A Compiler Algorithm for Optimizing Locality in Loop Nests. Proc. ACM Int. Conf. on Supercomputing, pp. 269–276, 1997Google Scholar
  7. 7.
    A. LaMarca, R.E. Ladner: The Influence of Caches on the Performance of Sorting. Proc. ACM SIGPLAN Symp. on Discrete Algorithms, pp. 370–379, 1997Google Scholar
  8. 8.
    J.S. Vitter, E.A.M. Shriven Algorithms for Parallel Memory I: Two-Level Memories. Algorithmica, Vol. 12, No. 2/3, pp. 110–147, 1994CrossRefGoogle Scholar
  9. 9.
    M.E. Wolf, M.S. Lam: A Data Locality Optimizing Algorithm. Proc. ACM SIGPLAN'91 Conf. on Programming Language Design and Implementation, pp. 30–44, 1991Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Claudia Leopold
    • 1
  1. 1.Fakultät für Mathematik und InformatikFriedrich-Schiller-Universität JenaJenaGermany

Personalised recommendations