Abstract
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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)
Aho, A.V., Sethi, R., Ullman, J.D.: Compilers Principles, Techniques, and Tools. Addison-Wesley publishing company, Reading (1986)
Bernstein, A.J.: Analysis of programs for parallel processing. IEEE Transactions on Electronic Computers EC-15(5) (October 1966)
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)
Krishnamurthy, A.: Compiler analyses and system support for optimizing shared address space programs. PhD thesis, University of California Berkeley (1999)
Krishnamurthy, A., Yelick, K.: Optimizing parallel spmd programs. Languages and Compilers for Parallel Computing (1994)
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)
Krishnamurthy, A., Yelick, K.: Analyses and optimizations for shared address space. Journal of Parallel and Distributed Computing (1996)
Lamport, L.: How to make multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers C-28(9) (September 1979)
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)
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)
Tarjan, R.: Depth-first search and linear graph algorithms. SIAM Journal on Computing 1(2), 146–160 (1972)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kurhekar, M.P., Barik, R., Kumar, U. (2003). An Efficient Algorithm to Compute Delay Set in SPMD Programs. In: Pinkston, T.M., Prasanna, V.K. (eds) High Performance Computing - HiPC 2003. HiPC 2003. Lecture Notes in Computer Science, vol 2913. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24596-4_31
Download citation
DOI: https://doi.org/10.1007/978-3-540-24596-4_31
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20626-2
Online ISBN: 978-3-540-24596-4
eBook Packages: Springer Book Archive