An Efficient Algorithm to Compute Delay Set in SPMD Programs

  • Manish P. Kurhekar
  • Rajkishore Barik
  • Umesh Kumar
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2913)


We present compiler analysis for single program multiple data (SPMD) programs that communicate through shared address space. The choice of memory consistency model is sequential consistency as defined by Lamport [9]. Previous research has shown that these programs require cycle detection to perform any kind of code re-ordering either at hardware or software. So far, the best known cycle detection algorithm for SPMD programs has been given by Krishnamurthy et al [5, 6, 8]. Their algorithm computes a delay set that is composed of those memory access pairs that if re-ordered either by hardware or software may cause violation of sequential consistency. This delay set is computed in O(m 3) time where m is the number of read/write accesses. In this paper, we present O(m 2) algorithm for computing analogous delay set for SPMD programs that are used in practice. These programs must be structured with the property that all the variables are initialized before their value is read.


Memory Access Critical Section Program Variable Sequential Consistency Cycle Detection 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Adve, S.A., Hill, M.D.: Weak ordering - a new definition. In: Proceedings of the 17th Annual International Symposium on Computer Architecture, May 1990, pp. 2–14 (1990)Google Scholar
  2. 2.
    Aho, A.V., Sethi, R., Ullman, J.D.: Compilers Principles, Techniques, and Tools. Addison-Wesley publishing company, Reading (1986)Google Scholar
  3. 3.
    Bernstein, A.J.: Analysis of programs for parallel processing. IEEE Transactions on Electronic Computers EC-15(5) (October 1966)Google Scholar
  4. 4.
    Culler, D.E., Dusseau, A., Goldstein, S.C., Krishnamurthy, A., Lumetta, S., von Eicken, T., Yelick, K.: Parallel programming in split-c. In: Proceedings of Supercomputing, pp. 262–273 (1993)Google Scholar
  5. 5.
    Krishnamurthy, A.: Compiler analyses and system support for optimizing shared address space programs. PhD thesis, University of California Berkeley (1999)Google Scholar
  6. 6.
    Krishnamurthy, A., Yelick, K.: Optimizing parallel spmd programs. Languages and Compilers for Parallel Computing (1994)Google Scholar
  7. 7.
    Krishnamurthy, A., Yelick, K.: Optimizing parallel programs with explicit synchronization. In: Proceedings of the ACM SIGPLAN 1995 conference on Programming Languages Design and Implementation(PLDI), June 1995, pp. 196–204 (1995)Google Scholar
  8. 8.
    Krishnamurthy, A., Yelick, K.: Analyses and optimizations for shared address space. Journal of Parallel and Distributed Computing (1996)Google Scholar
  9. 9.
    Lamport, L.: How to make multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers C-28(9) (September 1979)Google Scholar
  10. 10.
    Midkiff, S.P., Padua, D.A.: Issues in the optimization of parallel programs. In: International Conference on Parallel Processing, vol. II, pp. 105–113 (1990)Google Scholar
  11. 11.
    Shasha, D., Snir, M.: Efficient and correct execution of parallel programs that share memory. ACM Transactions on Programming Languages and Systems 10(2) (April 1988)Google Scholar
  12. 12.
    Tarjan, R.: Depth-first search and linear graph algorithms. SIAM Journal on Computing 1(2), 146–160 (1972)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Manish P. Kurhekar
    • 1
  • Rajkishore Barik
    • 2
  • Umesh Kumar
    • 3
  1. 1.IBM India Research LabIndian Institute of TechnologyDelhiIndia
  2. 2.Institute of Computer SystemsETH ZentrumZurichCH
  3. 3.Indian Institute of TechnologyDelhiIndia

Personalised recommendations