There has been a significant amount of research on hardware and software support for efficient concurrent data structures; yet, the question of how to build correct, simple, and scalable data structures has not yet been definitively settled. In this paper, we revisit this question from a minimalist perspective, and ask: what is the smallest amount of synchronization required for correct and efficient concurrent search data structures, and how could this minimal synchronization support be provided in hardware? To address these questions, we introduce memory tagging, a simple hardware mechanism which enables the programmer to "tag" a dynamic set of memory locations, at cache-line granularity, and later validate whether the memory has been co...
his paper addresses the problem of universal synchronization primitives that can support scalable th...
Concurrent search trees are crucial data abstractions widely used in many important systems such as ...
File systems that allocate data contiguously often use bitmaps to represent and manage free space. I...
We introduce “asynchronized concurrency (ASCY), ” a paradigm consisting of four complementary progra...
In this paper, a new methodology for writing concurrent data structures is proposed. This methodolog...
Practical and efficient concurrent systems are notoriously hard to design, implement, and verify. As...
The convergence of highly parallel many-core graphics processors with conventional multi-core proces...
Parallel Breadth-First Heuristic Search on a Shared-Memory Architecture We consider a breadth-first ...
The increase in the number of cores in processors has been an important trend over the past decade. ...
Synchronization of concurrent threads is the central problem in order to design efficient concurrent...
The increase in size and decrease in cost of DRAMs has led to a rapid growth of in-memory solutions ...
The multicore revolution means that programmers have many cores at their disposal in everything from...
Building a library of concurrent data structures is an essential way to simplify the difficult task ...
Establishing the scalability of a concurrent algorithm a priori, before implementing and evaluating ...
This paper presents the design and evaluation of the M-cache, a small, fast and intelligent memory f...
his paper addresses the problem of universal synchronization primitives that can support scalable th...
Concurrent search trees are crucial data abstractions widely used in many important systems such as ...
File systems that allocate data contiguously often use bitmaps to represent and manage free space. I...
We introduce “asynchronized concurrency (ASCY), ” a paradigm consisting of four complementary progra...
In this paper, a new methodology for writing concurrent data structures is proposed. This methodolog...
Practical and efficient concurrent systems are notoriously hard to design, implement, and verify. As...
The convergence of highly parallel many-core graphics processors with conventional multi-core proces...
Parallel Breadth-First Heuristic Search on a Shared-Memory Architecture We consider a breadth-first ...
The increase in the number of cores in processors has been an important trend over the past decade. ...
Synchronization of concurrent threads is the central problem in order to design efficient concurrent...
The increase in size and decrease in cost of DRAMs has led to a rapid growth of in-memory solutions ...
The multicore revolution means that programmers have many cores at their disposal in everything from...
Building a library of concurrent data structures is an essential way to simplify the difficult task ...
Establishing the scalability of a concurrent algorithm a priori, before implementing and evaluating ...
This paper presents the design and evaluation of the M-cache, a small, fast and intelligent memory f...
his paper addresses the problem of universal synchronization primitives that can support scalable th...
Concurrent search trees are crucial data abstractions widely used in many important systems such as ...
File systems that allocate data contiguously often use bitmaps to represent and manage free space. I...