Michael Spear
YOU?
Author Swipe
View article: Skip Hash: A Fast Ordered Map Via Software Transactional Memory
Skip Hash: A Fast Ordered Map Via Software Transactional Memory Open
Scalable ordered maps must ensure that range queries, which operate over many consecutive keys, provide intuitive semantics (e.g., linearizability) without degrading the performance of concurrent insertions and removals. These goals are di…
View article: The Next 700 Benchmarking Frameworks for Concurrent Data Structures
The Next 700 Benchmarking Frameworks for Concurrent Data Structures Open
Concurrent data structures are essential building blocks for applications in almost every domain. However, differences among domains make it difficult to share results. Some testing frameworks model specific workloads, while others emphasi…
View article: Efficient Hardware Primitives for Immediate Memory Reclamation in Optimistic Data Structures
Efficient Hardware Primitives for Immediate Memory Reclamation in Optimistic Data Structures Open
Safe memory reclamation (SMR) algorithms are crucial for preventing use-after-free errors in optimistic data structures. SMR algorithms typically delay reclamation for safety and reclaim objects in batches for efficiency. It is difficult t…
View article: Engaging Native American Students in Research Methodology through Development and Validation of a Tobacco Survey
Engaging Native American Students in Research Methodology through Development and Validation of a Tobacco Survey Open
Background: The purpose of this project was to provide a learning experience for AIAN undergraduate students participating in a summer academic enrichment program, Native Americans into Medicine (NAM). Through NAM, operated by the Center o…
View article: SPX64
SPX64 Open
General-purpose computing systems employ memory hierarchies to provide the appearance of a single large, fast, coherent memory. In special-purpose CPUs, programmers manually manage distinct, non-coherent scratchpad memories. In this articl…
View article: Optimizing Linearizable Bulk Operations on Data Structures
Optimizing Linearizable Bulk Operations on Data Structures Open
We study the problem of ensuring the correctness of concurrent programs that perform mutating foreach and range operations over concurrent data structures. We introduce three algorithms which vary in the location and the granularity of con…
View article: Brief Announcement: On Implementing Software Transactional Memory in the C++ Memory Model
Brief Announcement: On Implementing Software Transactional Memory in the C++ Memory Model Open
High-performance software transactional memory (STM) implementations rely on nuanced use of synchronization variables to coordinate speculative accesses to program data. We discuss some consequences of the C++ memory model on STM, identify…
View article: Simplifying Transactional Memory Support in C++
Simplifying Transactional Memory Support in C++ Open
C++ has supported a provisional version of Transactional Memory (TM) since 2015, via a technical specification. However, TM has not seen widespread adoption, and compiler vendors have been slow to implement the technical specification. We …
View article: NUMASK: High Performance Scalable Skip List for NUMA
NUMASK: High Performance Scalable Skip List for NUMA Open
This paper presents NUMASK, a skip list data structure specifically designed to exploit the characteristics of Non-Uniform Memory Access (NUMA) architectures to improve performance. NUMASK deploys an architecture around a concurrent skip l…
View article: Extending Transactional Memory with Atomic Deferral
Extending Transactional Memory with Atomic Deferral Open
This paper introduces atomic deferral, an extension to TM that allows programmers to move long-running or irrevocable operations out of a transaction while maintaining serializability: the transaction and its de- ferred operation appear to…
View article: Languages Must Expose Memory Heterogeneity
Languages Must Expose Memory Heterogeneity Open
The last decade has seen an explosion in new and innovative memory technologies. While certain technologies, like transactional memory, have seen adoption at the language level, others, such as sandboxed memory, scratchpad memory, and pers…
View article: Towards migrating computation to distributed memory caches
Towards migrating computation to distributed memory caches Open
Memcached and other in-memory distributed key-value stores play a critical role in large-scale web applications, by reducing traffic to persistent storage and providing an easy-to-access look-aside cache in which programmers can store arbi…