With the introduction of multi-core CPUs, multi-threaded programming is becoming significantly more popular. Unfortunately, it is difficult for programmers to ensure their code is correct because current languages are too low-level. Atomic sections are a recent language primitive that expose a higher level interface to programmers. Thus they make concurrent programming more straightforward. Atomic sections can be compiled using transactional memory or lock inference, but ensuring correctness and good performance is a challenge. Transactional memory has problems with IO and contention, whereas lock inference algorithms are often too imprecise which translates to a loss of parallelism at runtime. We define a lock inference algorithm tha...
We introduce lock allocation, an automatic technique that takes a multi-threaded program annotated w...
Concurrent object-oriented programming languages coordinate conflicting memory accesses through lock...
In the modern, multi-threaded, multi-core programming environment, correctly managing system resourc...
Atomicity is a technique that is important for concurrent applications because it can strongly guara...
Locks are a frequently used synchronisation mechanism in shared memory concurrent programs. They are...
Transactional memory has great potential for simplifying multithreaded programming by allowing progr...
From the introduction to concurrency, we saw one of the fundamental problems in concurrent programmi...
The movement to multi-core processors increases the need for simpler, more robust parallel programmi...
Atomic sections are a recent and popular idiom to support the development of concurrent programs. Up...
Abstract. When verifying a concurrent program, it is usual to assume that memory is sequentially con...
Modern multi-core processors provide primitives to allow parallel programs to atomically perform sel...
The multi-core revolution has pushed programmers and algorithm designers to build algorithms that le...
Arguably, one of the biggest deterrants for software developers who might otherwise choose to write ...
Software transactional memory (STM) provides programmers with a high-level programming abstraction f...
Journal ArticleWe have developed task scheduler logic (TSL) to automate reasoning about scheduling a...
We introduce lock allocation, an automatic technique that takes a multi-threaded program annotated w...
Concurrent object-oriented programming languages coordinate conflicting memory accesses through lock...
In the modern, multi-threaded, multi-core programming environment, correctly managing system resourc...
Atomicity is a technique that is important for concurrent applications because it can strongly guara...
Locks are a frequently used synchronisation mechanism in shared memory concurrent programs. They are...
Transactional memory has great potential for simplifying multithreaded programming by allowing progr...
From the introduction to concurrency, we saw one of the fundamental problems in concurrent programmi...
The movement to multi-core processors increases the need for simpler, more robust parallel programmi...
Atomic sections are a recent and popular idiom to support the development of concurrent programs. Up...
Abstract. When verifying a concurrent program, it is usual to assume that memory is sequentially con...
Modern multi-core processors provide primitives to allow parallel programs to atomically perform sel...
The multi-core revolution has pushed programmers and algorithm designers to build algorithms that le...
Arguably, one of the biggest deterrants for software developers who might otherwise choose to write ...
Software transactional memory (STM) provides programmers with a high-level programming abstraction f...
Journal ArticleWe have developed task scheduler logic (TSL) to automate reasoning about scheduling a...
We introduce lock allocation, an automatic technique that takes a multi-threaded program annotated w...
Concurrent object-oriented programming languages coordinate conflicting memory accesses through lock...
In the modern, multi-threaded, multi-core programming environment, correctly managing system resourc...