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.
- 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 Scholar
Digital Library
- Blumofe, R. D., and Leiserson, C. E. Scheduling multithreaded computations by work stealing. J. ACM 46, 5 (Sept. 1999), 720--748. Google Scholar
Digital Library
- Boehm, H.-J. Threads cannot be implemented as a library. SIGPLAN Not. 40, 6 (June 2005), 261--268. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Gosling, J., Joy, B., Steele, G., and Bracha, G. Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)). Addison-Wesley Professional, 2005. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Synchronization cannot be implemented as a library
Recommendations
Synchronization cannot be implemented as a library
HILT '12: Proceedings of the 2012 ACM conference on High integrity language technologyWriting 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 ...
Lock-free and scalable multi-version software transactional memory
PPoPP '11Software Transactional Memory (STM) was initially proposed as a lock-free mechanism for concurrency control. Early implementations had efficiency limitations, and soon obstruction-free proposals appeared, to tackle this problem, often simplifying STM ...
Lock-free and scalable multi-version software transactional memory
PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programmingSoftware Transactional Memory (STM) was initially proposed as a lock-free mechanism for concurrency control. Early implementations had efficiency limitations, and soon obstruction-free proposals appeared, to tackle this problem, often simplifying STM ...







Comments