skip to main content
research-article

Synchronization cannot be implemented as a library

Published:02 December 2012Publication History
Skip Abstract Section

Abstract

Writing efficient programs for increasingly parallel computer architectures requires the use of hardware primitives, such as atomic read-modify-write instructions or transactional memory. While new libraries and language constructs are introduced to expose the new capabilities, we argue that they are implementation details best left hidden. High-level synchronization constructs, such as those provided by Java and Ada, are both sufficient and necessary for modern programming languages to take full advantage of today's and tomorrow's hardware. While defined in terms of mutual exclusion, we show that these constructs are general enough to allow an enhanced compiler to automatically generate the appropriate lock-free synchronization code for the target system. Language support for synchronization is necessary for efficient, reliable and portable programs.

References

  1. Amdahl, G. M. Validity of the single processor approach to achieving large scale computing capabilities. In Proceedings of the April 18-20, 1967, spring joint computer conference (New York, NY, USA, 1967), AFIPS '67 (Spring), ACM, pp. 483--485. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Blumofe, R. D., and Leiserson, C. E. Scheduling multithreaded computations by work stealing. J. ACM 46, 5 (Sept. 1999), 720--748. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Boehm, H.-J. Threads cannot be implemented as a library. SIGPLAN Not. 40, 6 (June 2005), 261--268. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Boehm, H.-J. Transactional memory should be an implementation technique, not a programming interface. In Proceedings of the First USENIX conference on Hot topics in parallelism (Berkeley, CA, USA, 2009), HotPar'09, USENIX Association, pp. 15--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Franke, H., Russell, R., and Fuss, M. K. futexes and furwocks: Fast userlevel locking in linux. In Proceedings of the 2002 Ottawa Linux Summit (2002), Ottawa Linux Symposium 2002, pp. 479--495.Google ScholarGoogle Scholar
  6. Gosling, J., Joy, B., Steele, G., and Bracha, G. Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)). Addison-Wesley Professional, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Hansen, P. B. History of programming languages|ii. ACM, New York, NY, USA, 1996, ch. Monitors and Concurrent Pascal: a personal history, pp. 121--172. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Herlihy, M., and Moss, J. E. B. Transactional memory: architectural support for lock-free data structures. SIGARCH Comput. Archit. News 21, 2 (May 1993), 289--300. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Taft, S. T., Duff, R. A., Brukardt, R. L., Ploedereder, E., and Leroy, P. Ada 2005 Reference Manual. Language and Standard Libraries: International Standard ISO/IEC 8652/1995(E) with Technical Corrigendum 1 and Amendment 1 (Lecture Notes in Computer Science). Springer-Verlag New York, Inc., Secaucus, NJ, USA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Yue, K.-b., Davari, S., and Leibfried, T. Priority ceiling protocol in ada. In Proceedings of the conference on TRI-Ada '96: disciplined software development with Ada (New York, NY, USA, 1996), TRI-Ada '96, ACM, pp. 3--9. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Synchronization cannot be implemented as a library

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGAda Ada Letters
          ACM SIGAda Ada Letters  Volume 32, Issue 3
          HILT '12
          December 2012
          89 pages
          ISSN:1094-3641
          DOI:10.1145/2402709
          Issue’s Table of Contents
          • cover image ACM Conferences
            HILT '12: Proceedings of the 2012 ACM conference on High integrity language technology
            December 2012
            118 pages
            ISBN:9781450315050
            DOI:10.1145/2402676

          Copyright © 2012 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 2 December 2012

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!