2012•Unpublished venueRequires access

Synchronization cannot be implemented as a library

Geert Bosch

Open publisher page 2 citations

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.

About this research paper

What this paper is about

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.

Why it matters

OpenAlex reports 2 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available 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.

Key concepts: Computer science, Compiler, Synchronization (alternating current), Mutual exclusion, Lock (firearm), Programming language, Transactional memory, Java

Related papers

Back to paper searchBrowse research topicsOriginal source
Synchronization cannot be implemented as a library — Research Paper | ScholarLens