Widely recognized problems of programming with threads and locks include race conditions, priority inversion, and deadlock, problems notoriously difficult both to avoid and to diagnose. We need better abstractions for ordinary programmers to use to exploit concurrency. A promising direction that solves the problems with locks is the various forms of atomic action (AA). An AA is a collection of computational actions that are guaranteed to appear to occur: either entirely or not at all, and in a definite order with respect to other AAs. Atom-like notions have enjoyed great success in database applications.
Intellectual Merit
-A precise programming model for AAs, with a focus on closed and open nesting. - Overheads of alternative AA implementations on existing hardware. - Performance benefits of AAs resulting from increased parallelism, despite their overheads. - Hardware-assist for AAs: hardware interfaces (APIs) and virtualization to mask hardware limits. - AAs vis-a-vis non-transactional activities such as I/O, networking, etc. - AAs vis-a-vis run-time services such as garbage collection (GC), exceptions, and traps. - Tools for profiling and tuning performance of AAs, and their refinement re: bottlenecks.
Broader Impact
Delivering on AAs will lead to significant economic and security benefits through improved robustness and performance of applications for new commodity hardware. AAs will make it possible to increase concurrency, and thus performance, of software while also increasing reliability and simplifying tuning and maintenance. Ordinary programmers will more readily exploit thread-level parallelism on the desktop, writing programs they could not write, and get to work, before. The project will benefit the hardware industry by exploiting their new offerings, and the software industry by increasing the robustness of concurrent software, while also contributing to economic and national security. All project results and tools will be available to the public, and the project will train graduates in important high-demand skills, and thus contribute to the technical work-force.