Skip to main content

Automatic Implementation of Programming Language Consistency Models

  • Conference paper
Book cover Languages and Compilers for Parallel Computing (LCPC 2002)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 2481))

Abstract

Concurrent threads executing on a shared memory system can access the same memory locations. A consistency model defines constraints on the order of these shared memory accesses. For good run-time performance, these constraints must be as few as possible. Programmers who write explicitly parallel programs must take into account the consistency model when reasoning about the behavior of their programs. Also, the consistency model constrains compiler transformations that reorder code. It is not known what consistency models best suit the needs of the programmer, the compiler, and the hardware simultaneously. We are building a compiler infrastructure to study the effect of consistency models on code optimization and run-time performance. The consistency model presented to the user will be a programmable feature independent of the hardware consistency model. The compiler will be used to mask the hardware consistency model from the user by mapping the software consistency model onto the hardware consistency model. When completed, our compiler will be used to prototype consistency models and to measure the relative performance of different consistency models. We present preliminary experimental data for performance of a software implementation of sequential consistency using manual inter-thread analysis.

This material is based upon work supported by the NSF under Grant No. CCR-0081265, and the IBM Corporation. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the NSF or the IBM Corporation. Also supported in part by the Korean Ministry of Education under the BK21 program and by the Korean Ministry of Science and Technology under the National Research Laboratory program.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Adve, S.V., Gharachorloo, K.: Shared memory consistency models: A tutorial. IEEE Computer, 66–76 (December 1996)

    Google Scholar 

  2. Alpern, B., et al.: The Jalapeno virtual machine. IBM Systems Journal (February 2000)

    Google Scholar 

  3. Choi, J.-D., Gupta, M., Serrano, M., Sreedhar, V.C., Midkiff, S.: Escape analysis for Java. In: Proceedings ACM 1999 Conference on Object-Oriented Programming Systems (OOPSLA 1999), November 1999, pp. 1–19 (1999)

    Google Scholar 

  4. Emrath, P.A., Ghosh, S., Padua, D.A.: Event synchronization analysis for debugging parallel programs. In: Proceedings of Supercomputing, pp. 580–588 (1989)

    Google Scholar 

  5. Fang, X.: Inserting fences to guarantee sequential consistency. Master’s thesis, Michigan State University (July 2002)

    Google Scholar 

  6. Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. The Java Series. Addison-Wesley Publishing Company, Redwood City (2000)

    Google Scholar 

  7. Hill, M.D.: Multiprocessors should support simple memory-consistency models. IEEE Computer, 28–34 (August 1998)

    Google Scholar 

  8. Krishnamurthy, A., Yelick, K.: Optimizing parallel SPMD programs. In: Seventh Workshop on Languages and Compilers for Parallel Computing (August 1994)

    Google Scholar 

  9. Krishnamurthy, A., Yelick, K.: Analyses and optimizations for shared address space programs. Journal of Parallel and Distributed Computing 38, 139–144 (1996)

    Article  Google Scholar 

  10. Lee, J., Midkiff, S.P., Padua, D.A.: Concurrent static single assignment form and constant propagation for explicitly parallel programs. In: Proceedings of The 10th International Workshop on Languages and Compilers for Parallel Computing, pp. 114–130. Springer, Heidelberg (1997)

    Google Scholar 

  11. Lee, J., Padua, D.A.: Hiding relaxed memory consistency with compilers. In: Proceedings of The 2000 International Conference on Parallel Architectures and Compilation Techniques (October 2000)

    Google Scholar 

  12. Lee, J., Padua, D.A., Midkiff, S.P.: Basic compiler algorithms for parallel programs. In: Proceedings of The 1999 ACM SIGPLAN Symposiun on Principles and Practice of Parallel Programming, May 1999, pp. 1–12 (1999)

    Google Scholar 

  13. Naumovich, G., Avruninand, G.S., Clarke, L.A.: An efficient algorithm for computing MHP information for concurrent Java programs. In: Proceedings of Seventh European Software Engineering Conference and Seventh ACM SIGSOFT Symposium on the Foundations of Software Engineering (September 1999)

    Google Scholar 

  14. Pugh, W.: Fixing the Java memory model. In: Proceedings of the ACM 1999 Java Grande Conference (June 1999)

    Google Scholar 

  15. Rugina, R., Rinard, M.: Pointer analysis for multithreaded programs. In: Proceedings of the ACM SIGPLAN 1999 Conference on Programming Language Design and Implementation, June 1999, pp. 77–90 (1999)

    Google Scholar 

  16. Shasha, D., Snir, M.: Efficient and correct execution of parallel programs that share memory. ACM Transactions on Programming Languages and Systems 10(2), 282–312 (1988)

    Article  Google Scholar 

  17. Wong, C.-L., Sura, Z., Fang, X., Midkiff, S.P., Lee, J., Padua, D.: The Pensieve Project: A Compiler Infrastructure for Memory Models. In: The International Symposium on Parallel Architectures, Algorithms, and Networks (May 2002)

    Google Scholar 

  18. Eclipse Platform Technical Overview. Object Technology International, Inc. (July 2001), Available at http://www.eclipse.org

  19. The NetBeans Platform. Sun Microsystems, Inc., Documentation, available at http://www.netbeans.org

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sura, Z., Wong, CL., Fang, X., Lee, J., Midkiff, S.P., Padua, D. (2005). Automatic Implementation of Programming Language Consistency Models. In: Pugh, B., Tseng, CW. (eds) Languages and Compilers for Parallel Computing. LCPC 2002. Lecture Notes in Computer Science, vol 2481. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11596110_12

Download citation

  • DOI: https://doi.org/10.1007/11596110_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-30781-5

  • Online ISBN: 978-3-540-31612-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics