EDBT 2026 Demo / reviewers in the wild / expert
Michael F. Spear
dblp:67/6345
· DBLP profile ↗
63ranked-venue papers
12as first author
8since 2021 · last 2026
0000-0002-7681-5877ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 52 · 10 first-author · 7 since 2021Software engineering, systems software and programming languages · 5 · 1 first-authorHuman-computer interaction and ubiquitous computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Brief Announcement: QPID: A Scalable, Strict Concurrent Priority QueueabstractThis work challenges the perceived tradeoff between strict semantics and scalable performance in priority schedulers. We break down and analyze the use of relaxation in existing priority queue designs, aiming to show that by tailoring the design to workload characteristics, priority queues can retain strong semantics while achieving competitive scalability. In fact, many widely used applications of priority queues exhibit workloads with common characteristics: the number of distinct priorities is few relative to the number of jobs, and insertions tend to be low-priority. We use these observations to design QPID, a strict, concurrent priority queue. Our experimental results show that QPID scales nearly as well as the best relaxed competitor and outperforms all other strict and relaxed competitors in most cases. Olivia Grimes, Matthew Rodriguez, Michael F. Spear, Roberto Palmieri |
SPAA | 4 |
| 2025 | Skip Hash: A Fast Ordered Map Via Software Transactional MemoryabstractScalable 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 difficult to achieve simultaneously when concurrent data structures are built using only locks and compare-and-swap objects. However, recent innovations in software transactional memory (STM) allow programmers to assume that multi-word atomic operations can be fast and simple.This paper introduces the skip hash, which uses STM to combine a skip list and a hash map behind a single ordered map abstraction, resulting in O(1) overhead for most operations. The skip hash makes use of a novel range query manager—again leveraging STM—to achieve fast, linearizable range queries that do not inhibit scalability. In performance evaluation, we show that the skip hash outperforms the state of the art in almost all cases. This places the skip hash in the uncommon position of being both exceedingly fast and exceedingly simple, which demonstrates that designing novel STM-based data structures is a promising direction for future research. Matthew Rodriguez, Vitaly Aksenov, Michael F. Spear |
ICDCS | 3 |
| 2025 | Transactional Data Structures with Orthogonal MetadataabstractTransactional Data Structure Programming Systems (TD-SPSs) let programmers compose method invocations on concurrent data structures into coarse-grained, isolated transactions. They detect conflicts among concurrent transactions and recover when operations do not commute. Yaodong Sheng, Michael F. Spear |
PPoPP | 3 |
| 2023 | Separating Mechanism from Policy in STMabstractWhen designing concurrent data structures (CDSs), it can feel like programmers must choose between performance and convenience. On one hand, Software Transactional Memory (STM) is easy, because it allows programmers to simply mark regions of sequential code as requiring atomicity, and then the compiler ensures that no races manifest. However, this can easily lead to false conflicts that hinder scalability. On the other hand, programmers can craft custom lock-based or non-blocking protocols for operating on the CDS. This approach increases scalability, but is hard to get right. For lock-based optimistic data structures, we identify a compelling design point that effectively unifies the two approaches. The key idea is to employ the systems concept of “separation of policy and mechanism”. This allows different operations to use the same transactional synchronization mechanism in different ways, on the same data structure, at the same time. That is, some operations can access the CDS via STM, while others use custom synchronization. We define exoTM as a synchronization mechanism extracted from a popular STM. We then introduce a high-performance exoTM-based multi-word compare-and-swap policy (STMCAS) for creating CDSs. STMCAS can checkpoint and resume read-only operations, and can run concurrently with an exoTM-based STM policy. This allows programmers to create CDSs by starting with STM and then incrementally optimizing with STMCAS until the desired performance is reached. Our experiments find that the low-level mechanisms are fast: our STMCAS-based data structures usually outperform lock-based and lock-free CDSs, at roughly the same level of effort. Furthermore, for complex CDSs (e.g., red/black trees), we can mix STMCAS and STM to keep complicated operations (re-balancing) simple while using STMCAS to optimize the common case (read-only traversal). Yaodong Sheng, Michael F. Spear |
PACT | 3 |
| 2023 | Brief Announcement: BatchBoost: Universal Batching for Concurrent Data Structures
Vitaly Aksenov, Michael Anoprenko, Michael F. Spear |
DISC | 4 |
| 2021 | Exploiting Locality in Scalable Ordered MapsabstractWe present the skip vector, a novel highperformance concurrent data structure based on the skip list. The key innovation in the skip vector is to flatten the index and data layers of the skip list into vectors. This increases spatial locality, reduces synchronization overhead, and avoids much of the costly pointer chasing that skip lists incur. We evaluate a skip vector implementation in C++. Our implementation coordinates interactions among threads by utilizing optimistic traversal with sequence locks. To ensure memory safety, it employs hazard pointers; this leads to tight bounds on wasted space, but due to the skip vector design, does not lead to high overhead. Performance of the skip vector for small data set sizes is higher than for a comparable skip list, and as the amount of data increases, the benefits of the skip vector over a skip list increase. Matthew Rodriguez, Michael F. Spear |
ICDCS | 3 |
| 2021 | Semantic Conflict Detection for Transactional Data Structure LibrariesabstractThe Transactional Data Structure Library (TDSL) methodology improves the programmability and performance of concurrent software by making it possible for programmers to compose multiple concurrent data structure operations into coarse-grained transactions. Like transactional memory, TDSL enables arbitrarily many operations on arbitrarily many data structures to appear to other threads as a single atomic, isolated transaction. Like concurrent data structures, the individual operations on a TDSL data structure are optimized to avoid artificial contention. We introduce techniques for reducing false conflicts in TDSL implementations. Our approach allows expressing the postconditions of operations entirely via semantic properties, instead of through low-level structural properties. Our design is general enough to support lists, deques, ordered and unordered maps, and vectors. It supports richer programming interfaces than are available in existing TDSL implementations. It is also capable of precise memory management, which is necessary in low-level languages like C++. Yaodong Sheng, Michael F. Spear |
SPAA | 3 |
| 2021 | SPX64: A Scratchpad Memory for General-purpose MicroprocessorsabstractGeneral-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 article, we combine these mechanisms by adding a virtually addressed, set-associative scratchpad to a general purpose CPU. Our scratchpad exists alongside a traditional cache and is able to avoid many of the programming challenges associated with traditional scratchpads without sacrificing generality (e.g., virtualization). Furthermore, our design delivers increased security and improves performance, especially for workloads with high locality or that interact with nonvolatile memory. Shail Dave, Pantea Zardoshti, Robert Brotzman, Chao Zhang 0039, Aviral Shrivastava, Gang Tan, Michael F. Spear |
ACM Trans. Archit. Code Optim. | 9 |
| 2020 | Exploiting Locality in Scalable Ordered MapsabstractThis paper presents the skip vector, a novel high-performance concurrent data structure based on the skip list. Traversal is sped up by flattening the layers of the skip list into vectors, avoiding much of the costly pointer chasing that skip lists incur. The skip vector utilizes optimistic traversal with sequence locks, and hazard pointers for fast, memory-safe, concurrent access. In microbenchmark evaluation, we show that the skip vector offers excellent performance across a range of key ranges, thread counts, and operation mixes. Matthew Rodriguez, Michael F. Spear |
PACT | 3 |
| 2020 | Optimizing Linearizable Bulk Operations on Data StructuresabstractWe 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 concurrency control metadata. Our algorithms make the linearization of bulk operations visible to concurrent elemental operations, which enables them to scale well, keep overhead low, and operate within tight memory bounds. In our experimental evaluation, we demonstrate that our techniques do not hinder the performance of elemental operations in elemental-only workloads, and allow scalability among concurrent mutating bulk operations. Furthermore, in mixed workloads, our algorithms outperform the baseline, sometimes by an order of magnitude or more. Matthew Rodriguez, Michael F. Spear |
ICPP | 2 |
| 2020 | Understanding and Improving Persistent Transactions on Optane™ DC MemoryabstractStoring data structures in high-capacity byte-addressable persistent memory instead of DRAM or a storage device offers the opportunity to (1) reduce cost and power consumption compared with DRAM, (2) decrease the latency and CPU resources needed for an I/O operation compared with storage, and (3) allow for fast recovery as the data structure remains in memory after a machine failure. The first commercial offering in this space is Intel® Optane™ Direct Connect (Optane™ DC) Persistent Memory. Optane™ DC promises access time within a constant factor of DRAM, with larger capacity, lower energy consumption, and persistence. We present an experimental evaluation of persistent transactional memory performance, and explore how Optane™ DC durability domains affect the overall results. Given that neither of the two available durability domains can deliver performance competitive with DRAM, we introduce and emulate a new durability domain, called PDRAM, in which the memory controller tracks enough information (and has enough reserve power) to make DRAM behave like a persistent cache of Optane™ DC memory.In this paper we compare the performance of these durability domains on several configurations of five persistent transactional memory applications. We find a large throughput difference, which emphasizes the importance of choosing the best durability domain for each application and system. At the same time, our results confirm that recently published persistent transactional memory algorithms are able to scale, and that recent optimizations for these algorithms lead to strong performance, with speedups as high as 6× at 16 threads. Pantea Zardoshti, Michael F. Spear, Aida Vosoughi, Garret Swart |
IPDPS | 2 |
| 2020 | Brief Announcement: On Implementing Software Transactional Memory in the C++ Memory ModelabstractHigh-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 an easy-to-fix implementation error, and describe an unavoidable formal race condition that occurs in an important class of STM algorithms. Matthew Rodriguez, Michael F. Spear |
PODC | 2 |
| 2019 | Optimizing Persistent Memory TransactionsabstractByte-addressable, non-volatile, random access memory (NVM) has the potential to dramatically accelerate the performance of storage-intensive workloads. For applications with irregular data access patterns, and applications that rely on ad-hoc data structures, the most promising model for interacting with NVM is a transactional model. However, the specifics of the model matter significantly. We introduce two models for programming persistent transactions. We show how to build concurrent persistent transactional memory from traditional software transactional memories. We then introduce general and model-specific optimizations that can substantially improve the performance of persistent transactions. Our evaluation shows a substantial improvement in the both the latency and scalability of persistent transactions. Pantea Zardoshti, Tingzhe Zhou, Yujie Liu 0003, Michael F. Spear |
PACT | 4 |
| 2019 | A Practical, Scalable, Relaxed Priority QueueabstractPriority queues are a fundamental data structure, and in highly concurrent software, scalable priority queues are an important building block. However, they have a fundamental bottleneck when extracting elements, because of the strict requirement that each extract() returns the highest priority element. In many workloads, this requirement can be relaxed, improving scalability. Tingzhe Zhou, Maged M. Michael, Michael F. Spear |
ICPP | 3 |
| 2019 | Optimizing Persistent Transactions (Brief Announcement)abstractThere is a mechanical transformation by which algorithms for software transactional memory can be transformed to work with persistent memory. While correct, this transformation does not take into account differences between the persistent and volatile programming models. We show that fundamental properties of the data regions accessed by a persistent software transaction allow for a variety of optimizations not available in the volatile setting, and these lead to significant performance gains. Tingzhe Zhou, Pantea Zardoshti, Michael F. Spear |
SPAA | 3 |
| 2019 | Simplifying Transactional Memory Support in C++abstractC++ 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 conjecture that the proposed TM support is too difficult for programmers to use, too complex for compiler designers to implement and verify, and not industry-proven enough to justify final standardization in its current form. To address these problems, we present a different design for supporting TM in C++. By forbidding explicit self-abort, and by introducing an executor-based mechanism for running transactions, our approach makes it easier for developers to get code up and running with TM. Our proposal should also be appealing to compiler developers, as it allows a spectrum of levels of support for TM, with varying performance, and varying reliance on hardware TM support in order to provide scalability. <?tight?>While our design does not enable some of the optimizations admitted by the current technical specification, we show that it enables the implementation of robust support for TM in a small, orthogonal compiler extension. Our implementation is able to handle a wide range of transactional programs, delivering low instrumentation overhead and scalability and performance on par with the current state of the art. Based on this experience, we believe our approach to be a viable means of reinvigorating the standardization of TM in C++. Pantea Zardoshti, Tingzhe Zhou, Pavithra Balaji, Michael L. Scott, Michael F. Spear |
ACM Trans. Archit. Code Optim. | 5 |
| 2018 | NUMASK: High Performance Scalable Skip List for NUMAabstractThis 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 list so that all metadata accesses (e.g., traversals of the skip list index levels) read and write memory blocks allocated in the NUMA zone where the thread is executing. To the best of our knowledge, NUMASK is the first NUMA-aware skip list design that goes beyond merely limiting the performance penalties introduced by NUMA, and leverages the NUMA architecture to outperform state-of-the-art concurrent high-performance implementations. We tested NUMASK on a four-socket server. Its performance scales for both read-intensive and write-intensive workloads (tested up to 160 threads). In write-intensive workload, NUMASK shows speedups over competitors in the range of 2x to 16x. Henry Daly, Michael F. Spear, Roberto Palmieri |
DISC | 3 |
| 2017 | Redesigning Go's Built-In Map to Support Concurrent OperationsabstractThe Go language lacks built-in data structures that allow fine-grained concurrent access. In particular, its map data type, one of only two generic collections in Go, limits concurrency to the case where all operations are read-only; any mutation (insert, update, or remove) requires exclusive access to the entire map. The tight integration of this map into the Go language and runtime precludes its replacement with known scalable map implementations.This paper introduces the Interlocked Hash Table (IHT). The IHT is the result of language-driven data structure design: it requires minimal changes to the Go map API, supports the full range of operations available on the sequential Go map, and provides a path for the language to evolve to become more amenable to scalable computation over shared data structures. The IHT employs a novel optimistic locking protocol to avoid the risk of deadlock, and allows large critical sections that access a single IHT element, and can easily support multikey atomic operations. These features come at the cost of relaxed, though still straightforward, iteration semantics. In experimentation in both Java and Go, the IHT performs well, reaching up to 7× the performance of the state of the art in Go at 24 threads. In Java, the IHT performs on par with the best Java maps in the research literature, while providing iteration and other features absent from other maps. Louis Jenkins, Tingzhe Zhou, Michael F. Spear |
PACT | 3 |
| 2017 | Practical Experience with Transactional Lock ElisionabstractTransactional Memory (TM) promises both to provide a scalable mechanism for synchronization in concurrent programs, and to offer ease-of-use benefits to programmers. The most straightforward use of TM in real-world programs is in the form of Transactional Lock Elision (TLE). In TLE, critical sections are attempted as transactions, with a fall-back to a lock if conflicts manifest. Thus TLE expects to improve scalability, but not ease of programming. Still, until TLE can deliver performance improvements, transactional styles of programming are unlikely to gain popularity.In this paper, we describe our experiences employing TLE in two real-world programs: the PBZip2 file compression tool, and the x265 video encoder/decoder. We discuss the obstacles we encountered, propose solutions to those obstacles, and introduce open challenges. In experiments using the GCC compiler's hardware and software support for TM, we observe that both are able to outperform the original lock-based code, potentially heralding the readiness of TM to be used more broadly for TLE, if not for truly transactional styles of programming. Tingzhe Zhou, Pantea Zardoshti, Michael F. Spear |
ICPP | 3 |
| 2017 | Extending Transactional Memory with Atomic DeferralabstractThis 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 execute atomically from the perspective of other transactions. Thus, program- mers can adapt lock-based programs to exploit TM with relatively little effort and without sacrificing scalability by atomically deferring the problematic operations. We demonstrate this with several use cases for atomic deferral, as well as an in-depth analysis of its use on the PARSEC dedup benchmark, where we show that atomic deferral enables TM to be competitive with well-designed lock-based code. Tingzhe Zhou, Victor Luchangco, Michael F. Spear |
OPODIS | 3 |
| 2017 | Hand-Over-Hand Transactions with Precise Memory ReclamationabstractIn this paper, we introduce revocable reservations, a transactional memory mechanism to reserve locations in one transaction and check whether they are unchanged in a subsequent transaction without preventing reserved locations from being reclaimed in the interim. We describe several implementations of revocable reservations, and show how to use revocable reservations to implement lists and trees with a transactional analog to hand-over-hand locking. Our evaluation of these data structures shows that revocable reservations allow precise and immediate reclamation within transactional data structures, without sacrificing scalability or introducing excessive latency. Tingzhe Zhou, Victor Luchangco, Michael F. Spear |
SPAA | 3 |
| 2017 | Brief Announcement: Extending Transactional Memory with Atomic DeferralabstractAtomic deferral is a language-level mechanism for transactional memory (TM) that enables programmers to move output and long-running operations out of a transaction's body without sacrificing serializability: the deferred operation appears to execute as part of its parent transaction, even though it does not make use of TM. Tingzhe Zhou, Victor Luchangco, Michael F. Spear |
SPAA | 3 |
| 2016 | Practical condition synchronization for transactional memoryabstractFew transactional memory implementations allow for condition synchronization among transactions. The problems are many, most notably the lack of consensus about a single appropriate linguistic construct, and the lack of mechanisms that are compatible with hardware transactional memory. In this paper, we introduce a broadly useful mechanism for supporting condition synchronization among transactions. Our mechanism supports a number of linguistic constructs for coordinating transactions, and does so without introducing overhead on in-flight hardware transactions. Experiments show that our mechanisms work well, and that the diversity of linguistic constructs allows programmers to chose the technique that is best suited to a particular application. Chao Wang 0090, Michael F. Spear |
EuroSys | 2 |
| 2015 | TSXProf: Profiling Hardware TransactionsabstractThe availability of commercial hardware transactionalmemory (TM) systems has not yet been met with a rise in the numberof large-scale programs that use memory transactions explicitly. Asignificant impediment to the use of TM is the lack of tool support, specifically profilers that can identify and explain performance anomalies. In this paper, we introduce an end-to-end system that enables lowoverheadperformance profiling of large-scale transactional programs. We present algorithms and an implementation for Intel's Haswellprocessors. With our system, it is possible to record a transactionalprogram's execution with minimal overhead, and then replay it withina custom profiling tool to identify causes of contention and aborts, down to the granularity of individual memory accesses. Evaluationshows that our algorithms have low overhead, and our tools enableprogrammers to effectively explain performance anomalies. Yujie Liu 0003, Justin Emile Gottschlich, Gilles Pokam, Michael F. Spear |
PACT | 4 |
| 2015 | Transactional Acceleration of Concurrent Data StructuresabstractConcurrent data structures are a fundamental building block for scalable multi-threaded programs. While Transactional Memory (TM) was originally conceived as a mechanism for simplifying the creation of concurrent data structures, modern hardware TM systems lack the progress properties needed to completely obviate traditional techniques for designing concurrent data structures, especially those requiring nonblocking progress guarantees. In this paper, we introduce the Prefix Transaction Optimization (PTO) technique for employing hardware TM to accelerate existing concurrent data structures. Our technique consists of three stages: the creation of a prefix transaction, the mechanical optimization of the prefix transaction, and then algorithm-specific optimizations to further improve performance. We apply PTO to five nonblocking data structures, and observe speedups of up to 2x at one thread, and up to 3x at 8 threads. Yujie Liu 0003, Tingzhe Zhou, Michael F. Spear |
SPAA | 3 |
| 2015 | Hybrid Transactional Memory Revisited
Wenjia Ruan, Michael F. Spear |
DISC | 2 |
| 2014 | Transactionalizing legacy code: an experience report using GCC and MemcachedabstractThe addition of transactional memory (TM) support to existing languages provides the opportunity to create new soft- ware from scratch using transactions, and also to simplify or extend legacy code by replacing existing synchronization with language-level transactions. In this paper, we describe our experiences transactionalizing the memcached application through the use of the GCC implementation of the Draft C++ TM Specification. We present experiences and recommendations that we hope will guide the effort to integrate TM into languages, and that may also contribute to the growing collective knowledge about how programmers can begin to exploit TM in existing production-quality software. Wenjia Ruan, Trilok Vyas, Yujie Liu 0003, Michael F. Spear |
ASPLOS | 4 |
| 2014 | Dynamic-sized nonblocking hash tablesabstractThis paper presents nonblocking hash table algorithms that support resizing in both directions: shrinking and growing. The heart of the table is a freezable set abstraction, which greatly simplifies the task of moving elements among buckets during a resize. Furthermore, the freezable set abstraction makes possible the use of highly optimized implementations of individual buckets, including implementations in which a single flat array is used for each bucket, which improves cache locality. Yujie Liu 0003, Kunlong Zhang, Michael F. Spear |
PODC | 3 |
| 2014 | Transaction-friendly condition variablesabstractRecent microprocessors and compilers have added support for transactional memory (TM). While state-of-the-art TM systems allow the replacement of lock-based critical sections with scalable, optimistic transactions, there is not yet an acceptable mechanism for supporting the use of condition variables in transactions. We introduce a new implementation of condition variables, which uses transactions internally, which can be used from within both transactions and lock-based critical sections, and which is compatible with existing C/C++ interfaces for condition synchronization. By moving most of the mechanism for condition synchronization into user-space, our condition variables have low overhead and permit flexible interfaces that can avoid some of the pitfalls of traditional condition variables. Performance evaluation on an unmodified PARSEC benchmark suite shows equivalent performance to lock-basedcode, and our transactional condition variables also make it possible to replace all locks in PARSEC with transactions. Chao Wang 0090, Yujie Liu 0003, Michael F. Spear |
SPAA | 3 |
| 2014 | Transactional Read-Modify-Write Without AbortsabstractLanguage-level transactions are said to provide “atomicity,” implying that the order of operations within a transaction should be invisible to concurrent transactions and thus that independent operations within a transaction should be safe to execute in any order. In this article, we present a mechanism for dynamically reordering memory operations within a transaction so that read-modify-write operations on highly contended locations can be delayed until the very end of the transaction. When integrated with traditional transactional conflict detection mechanisms, our approach reduces aborts on hot memory locations, such as statistics counters, thereby improving throughput and reducing wasted work. We present three algorithms for delaying highly contended read-modify-write operations within transactions, and we evaluate their impact on throughput for eager and lazy transactional systems across multiple workloads. We also discuss complications that arise from the interaction between our mechanism and the need for strong language-level semantics, and we propose algorithmic extensions that prevent errors from occurring when accesses are aggressively reordered in a transactional memory implementation with weak semantics. Wenjia Ruan, Yujie Liu 0003, Michael F. Spear |
ACM Trans. Archit. Code Optim. | 3 |
| 2013 | On the platform specificity of STM instrumentation mechanismsabstractSupporting atomic blocks (e.g., Transactional Memory (TM)) can have far-reaching effects on language design and implementation. While much is known about the language-level semantics of TM and the performance of algorithms for implementing TM, little is known about how platform characteristics affect the manner in which a compiler should instrument code to achieve efficient transactional behavior. We explore the interaction between compiler instrumentation and the performance of transactions. Through evaluation on ARM/Android, SPARC/Solaris, IA32/Linux and IA32/MacOS, we show that the compiler must consider the platform when determining which analyses, transformations, and optimizations to perform. Implementation issues include how TM library code is reached, how per-thread TM metadata is stored and accessed, and how a library switches between modes of operation. We also show that different platforms favor different TM algorithms, through the introduction of a new TM algorithm for the ARM processor. Our findings will affect compiler and TM library designers: to achieve peak performance for transactions, the compiler must perform platform-dependent analysis, transformation, and optimization, and the interface to the TM library must differ according to platform. Wenjia Ruan, Yujie Liu 0003, Chao Wang 0090, Michael F. Spear |
CGO | 4 |
| 2013 | Mindicators: A Scalable Approach to QuiescenceabstractWe introduce the Mindicator, a new shared object that is optimized for querying the minimum value of a set of values proposed by several processes. A mindicator may hold at most one value per process. This interface is designed for use in shared memory runtime systems, such as garbage collectors, software transactional memory (TM), and operating system kernels. We introduce linearizable and relaxed mindicator implementations, both of which are lock-free. Our algorithms employ a tree structure, where querying the minimum element takes constant time, and adding and removing elements from the set does not hinder scalability. In microbenchmarks and a synthetic TM workload, we show that both provide good scalability on the x86 and SPARC platforms. Yujie Liu 0003, Victor Luchangco, Michael F. Spear |
ICDCS | 3 |
| 2013 | Reading mobile games throughout the curriculumabstractWe introduce ALE, a new framework for writing games for the Android platform. The primary motivation behind ALE is to emphasize reading code before writing it. Beginners read game code to learn how levels can be made, and advanced users read the code of ALE itself to learn how to create useful and extensible libraries. To date, roughly 200 students at our university have used ALE, ranging from first-semester engineering undergraduates through Masters students. ALE has proven useful in teaching non-majors about CS, in making introductory CS programming courses more exciting, and in encouraging creativity, entrepreneurship, and good program design in upper-level electives. Based on these experiences, we encourage educators at all levels to consider using ALE to improve students' ability to learn by reading code. Jennifer Bayzick, Bradley Askins, Sharon Kalafut, Michael F. Spear |
SIGCSE | 4 |
| 2013 | Brief announcement: between all and nothing - versatile aborts in hardware transactional memoryabstractHardware Transactional Memory (HTM) implementations are becoming available in commercial, off-the-shelf components. While generally comparable, some implementations deviate from the strict all-or-nothing property of pure Transactional Memory. We analyse these deviations and find that with small modifications, they can be used to accelerate and simplify both transactional and non-transactional programming constructs. At the heart of our extensions we enable access to the transaction's full register state in the abort handler in an existing HTM without extending the architectural register state. Access to the full register state enables applications in both transactional and non-transactional parallel programming: hybrid transactional memory; transactional escape actions; transactional suspend/resume; and alert-on-update. Stephan Diestelhorst, Martin Nowack, Michael F. Spear, Christof Fetzer |
SPAA | 3 |
| 2013 | Practical Non-blocking Unordered Lists
Kunlong Zhang, Yujiao Zhao 0004, Yajun Yang, Yujie Liu 0003, Michael F. Spear |
DISC | 5 |
| 2013 | Boosting timestamp-based transactional memory by exploiting hardware cycle countersabstractTime-based transactional memories typically rely on a shared memory counter to ensure consistency. Unfortunately, such a counter can become a bottleneck. In this article, we identify properties of hardware cycle counters that allow their use in place of a shared memory counter. We then devise algorithms that exploit the x86 cycle counter to enable bottleneck-free transactional memory runtime systems. We also consider the impact of privatization safety and hardware ordering constraints on the correctness, performance, and generality of our algorithms. Wenjia Ruan, Yujie Liu 0003, Michael F. Spear |
ACM Trans. Archit. Code Optim. | 3 |
| 2012 | Mounds: Array-Based Concurrent Priority QueuesabstractThis paper introduces a concurrent data structure called the mound. The mound is a rooted tree of sorted lists that relies on randomization for balance. It supports O(log(log(N))) insert and O(log(N)) extract Min operations, making it suitable for use as a priority queue. We present two mound algorithms: the first achieves lock freedom via the use of a pure-software double-compare-and-swap (DCAS), and the second uses fine grained locks. Mounds perform well in practice, and support novel operations that we expect to be useful in parallel applications, such as extract Many and probabilistic extract Min. Yujie Liu 0003, Michael F. Spear |
ICPP | 2 |
| 2012 | A lock-free, array-based priority queueabstractNo abstract available. Yujie Liu 0003, Michael F. Spear |
PPoPP | 2 |
| 2012 | Delegation and nesting in best-effort hardware transactional memoryabstractThe guiding design principle behind best-effort hardware transactional memory (BEHTM) is simplicity of implementation and verification. Only minimal modifications to the base processor architecture are allowed, thereby reducing the burden of verification and long-term support. In exchange, the hardware can support only relatively simple multiword atomic operations, and must fall back to a software run-time for any operation that exceeds the abilities of the hardware. Yujie Liu 0003, Stephan Diestelhorst, Michael F. Spear |
SPAA | 3 |
| 2012 | A transactional memory with automatic performance tuningabstractA significant obstacle to the acceptance of transactional memory (TM) in real-world parallel programs is the abundance of substantially different TM algorithms. Each TM algorithm appears well-suited to certain workload characteristics, but the best choice of algorithm is sensitive to program inputs, available cores, and program phases. Furthermore, operating system and hardware characteristics can affect which algorithm is best, with tradeoffs changing across iterations of a single ISA. This paper introduces methods for constructing policies to dynamically select the most appropriate TM algorithm based on static and dynamic information. We leverage intraprocedural static analysis to create a static profile of the application. We also introduce a low-overhead framework for dynamic profiling of a running transactional application. Armed with these complementary descriptions of a program's behavior, we present novel expert adaptivity policies as well as machine learning policies that are trained off-line using simple microbenchmarks. In our evaluation, we find that both the expert and learned policies provide better performance than any single TM algorithm across the entire STAMP benchmark suite. In addition, policies that combine expert and learned policies offer the best combination of performance, maintainability, and flexibility. Qingping Wang, Sameer Kulkarni, John Cavazos, Michael F. Spear |
ACM Trans. Archit. Code Optim. | 4 |
| 2011 | Hybrid NOrec: a case study in the effectiveness of best effort hardware transactional memoryabstractTransactional memory (TM) is a promising synchronization mechanism for the next generation of multicore processors. Best-effort Hardware Transactional Memory (HTM) designs, such as Sun's prototype Rock processor and AMD's proposed Advanced Synchronization Facility (ASF), can efficiently execute many transactions, but abort in some cases due to various limitations. Hybrid TM systems can use a compatible software TM (STM) in such cases. Luke Dalessandro, François Carouge, Sean White, Yossi Lev, Mark Moir, Michael L. Scott, Michael F. Spear |
ASPLOS | 7 |
| 2011 | A nonblocking set optimized for querying the minimum valueabstractNo abstract available. Yujie Liu 0003, Michael F. Spear |
PODC | 2 |
| 2010 | Transactional Mutex Locks
Luke Dalessandro, David Dice, Michael L. Scott, Nir Shavit, Michael F. Spear |
Euro-Par (2) | 5 |
| 2010 | NOrec: streamlining STM by abolishing ownership recordsabstractDrawing inspiration from several previous projects, we present an ownership-record-free software transactional memory (STM) system that combines extremely low overhead with unusually clean semantics. While unlikely to scale to hundreds of active threads, this "NOrec" system offers many appealing features: very low fast-path latency--as low as any system we know of that admits concurrent updates; publication and privatization safety; livelock freedom; a small, constant amount of global metadata, and full compatibility with existing data structure layouts; no false conflicts due to hash collisions; compatibility with both managed and unmanaged languages, and both static and dynamic compilation; and easy acccommodation of closed nesting, inevitable (irrevocable) transactions, and starvation avoidance mechanisms. To the best of our knowledge, no extant STM system combines this set of features. Luke Dalessandro, Michael F. Spear, Michael L. Scott |
PPoPP | 2 |
| 2010 | Lightweight, robust adaptivity for software transactional memoryabstractWhen a program uses Software Transactional Memory (STM) to synchronize accesses to shared memory, the performance often depends on which STM implementation is used. Im-plementations vary greatly in their underlying mechanisms, in the features they provide, and in the assumptions they make about the common case. Consequently, the best choice of algorithm is workload-dependent. Worse yet, for work-loads composed of multiple phases of execution, the “best” choice of implementation may change during execution. We present a low-overhead system for adapting between STM implementations. Like previous work, our system en-ables adaptivity between different parameterizations of a given algorithm, and it allows adapting between the use of transactions and coarse-grained locks. In addition, we support dynamic switching between fundamentally different STM implementations. We also explicitly support irrevo-cability, retry-based condition synchronization, and priva-tization. Through a series of experiments, we show that our system introduces negligible overhead. We also present a candidate use of dynamic adaptivity, as a replacement for contention management. When using adaptivity in this manner, STM implementations can be simplified to a great degree without lowering throughput or introducing a risk of pathological slowdown, even for challenging workloads. Michael F. Spear |
SPAA | 1 |
| 2010 | A Scalable Lock-Free Universal Construction with Best Effort Transactional Hardware
François Carouge, Michael F. Spear |
DISC | 2 |
| 2010 | Transactions as the Foundation of a Memory Consistency Model
Luke Dalessandro, Michael L. Scott, Michael F. Spear |
DISC | 3 |
| 2009 | Reducing Memory Ordering Overheads in Software Transactional MemoryabstractMost research into high-performance software transactional memory (STM) assumes that transactions will run on a processor with a relatively strict memory model, such as Total Store Ordering (TSO). To execute these algorithms correctly on processors with relaxed memory models, explicit fence instructions may be required on every transactional access, and neither the processor nor the compiler may be able to safely reorder transactional reads. The overheads of fence instructions and read serialization are a significant but unstudied source of latency for STM, with impact on the tradeoffs among different STM systems and on the optimizations that may be possible for any given system. Straightforward ports of STM runtimes from strict to relaxed machines may fail to realize the latter's performance potential. We explore the implementation of STM for machines with relaxed memory consistency using two recent high-performance STM systems. We propose compiler optimizations that can safely eliminate many fence instructions. Using these techniques, we obtain a reduction of up to 89% in the number of fences, and 20% in per-transaction latency, for common transactional benchmarks. Michael F. Spear, Maged M. Michael, Michael L. Scott, Peng Wu 0001 |
CGO | 1 |
| 2009 | A comprehensive strategy for contention management in software transactional memoryabstractIn Software Transactional Memory (STM), contention management refers to the mechanisms used to ensure forward progress--to avoid livelock and starvation, and to promote throughput and fairness. Unfortunately, most past approaches to contention management were designed for obstruction-free STM frameworks, and impose significant constant-time overheads. Priority-based approaches in particular typically require that reads be visible to all transactions, an expensive property that is not easy to support in most STM systems. Michael F. Spear, Luke Dalessandro, Virendra J. Marathe, Michael L. Scott |
PPoPP | 1 |
| 2009 | Compiler and runtime techniques for software transactional memory optimizationabstractAbstract Software transactional memory (STM) systems are an attractive environment to evaluate optimistic concurrency. We describe our experience of supporting and optimizing an STM system at both the managed runtime and compiler levels. We describe the design policies of our STM system and the statistics collected by the runtime to identify performance bottlenecks and guide tuning decisions. We present an initial work on supporting automatic instrumentation of the STM primitives for C/C++ and Java programs in the IBM XL compiler and J9 Java virtual machine. We evaluate and discuss the performance of several transactional programs running on our system. Copyright © 2008 John Wiley & Sons, Ltd. Peng Wu 0001, Maged M. Michael, Christoph von Praun, Takuya Nakaike, Rajesh Bordawekar, Harold W. Cain, Calin Cascaval, Siddhartha Chatterjee, Stefanie Chiras, Mark F. Mergen, Michael F. Spear, Huayong Wang |
Concurr. Comput. Pract. Exp. | 13 |
| 2008 | Scalable Techniques for Transparent Privatization in Software Transactional MemoryabstractWe address the recently recognizedprivatizationproblemin software transactional memory (STM) runtimes, and introduce the notion ofpartiallyvisiblereads(PVRs) to heuristically reduce the overhead of transparent privatization. Specifically, PVRs avoid the need for a "privatization fence" in the absence of conflict with concurrent readers. We present several techniques to trade off the cost of enforcing partial visibility with the precision of conflict detection. We also consider certain special-case variants of our approach, e.g., for predominantly read-only workloads. We compare our implementations to prior techniques on a multicoreNiagara1system using a variety of artificial workloads. Our results suggest that while no one technique performs best in all cases, a dynamic hybrid of PVRs and strict in-order commits is stable and reasonably fast across a wide range of load parameters. At the same time, the remaining overheads are high enough to suggest the need for programming model or architectural support. Virendra J. Marathe, Michael F. Spear, Michael L. Scott |
ICPP | 2 |
| 2008 | Implementing and Exploiting Inevitability in Software Transactional MemoryabstractTransactional Memory (TM) takes responsibility for concurrent, atomic execution of labeled regions of code, freeing the programmer from the need to manage locks. Typical implementations rely on speculation and rollback, but this creates problems for irreversible operations like interactive I/O.A widely assumed solution allows a transaction to operate in an inevitable mode that excludes all other transactions and is guaranteed to complete, but this approach does not scale. This paper explores a richer set of alternatives for software TM, and demonstrates that it is possible for an inevitable transaction to run in parallel with (non-conflicting) non-inevitable transactions, without introducing significant overhead in the non-inevitable case. We report experience with these alternatives in a graphical game application. We also consider the use of inevitability to accelerate certain common-case transactions. Michael F. Spear, Michael Silverman, Luke Dalessandro, Maged M. Michael, Michael L. Scott |
ICPP | 1 |
| 2008 | Ordering-Based Semantics for Software Transactional Memory
Michael F. Spear, Luke Dalessandro, Virendra J. Marathe, Michael L. Scott |
OPODIS | 1 |
| 2008 | Transactional memory retry mechanismsabstractNo abstract available. Michael F. Spear, Andrew Sveikauskas, Michael L. Scott |
PODC | 1 |
| 2008 | RingSTM: scalable transactions with a single atomic instructionabstractExisting Software Transactional Memory (STM) designs attach metadata to ranges of shared memory; subsequent runtime instructions read and update this metadata in order to ensure that an in-flight transaction's reads and writes remain correct. The overhead of metadata manipulation and inspection is linear in the number of reads and writes performed by a transaction, and involves expensive read-modify-write instructions, resulting in substantial overheads. Michael F. Spear, Maged M. Michael, Christoph von Praun |
SPAA | 1 |
| 2007 | An integrated hardware-software approach to flexible transactional memoryabstractThere has been considerable recent interest in the support of transactional memory (TM) in both hardware and software. We present an intermediate approach, in which hardware is used to accelerate a TM implementation controlled fundamentally by software. Our hardware support reduces the overhead of common TM tasks, namely, conflict detection and data isolation, for bounded transactions. Software control allows policy flexibility for conflict detection, contention management, and data granularity, in addition to enabling transactions unbounded in space and time. Our hardware consists of 1) an alert-on-update mechanism for fast eventbased communication, used for software-controlled conflict detection; and 2) support for programmable data isolation, allowing multiple concurrent transactional readers and writers at the software’s behest, along with fast data commit and abort support (using only a few cycles of completely local operation). Our results show that for common-case bounded transactions, the proposed hardware mechanisms eliminate data copying and dramatically reduce the overhead of bookkeeping and validation (resulting in a factor of 2 improvement in performance on average). Moreover, RTM shows good scalability as the number of threads is increased and graceful degradation in performance when transactions overflow available hardware support. Detecting conflicts eagerly (on first access) or lazily (at commit time), enabled by the ability to handle multiple concurrent transactional writers and readers, can result in differences in performance in either direction depending on the application access pattern (up to two orders of magnitude at 16 threads for one workload), demonstrating the need for policy flexibility. Arrvindh Shriraman, Michael F. Spear, Hemayet Hossain, Virendra J. Marathe, Sandhya Dwarkadas, Michael L. Scott |
ISCA | 2 |
| 2007 | Transactions and privatization in Delaunay triangulationabstractNo abstract available. Michael L. Scott, Michael F. Spear, Luke Dalessandro, Virendra J. Marathe |
PODC | 2 |
| 2007 | Privatization techniques for software transactional memoryabstractNo abstract available. Michael F. Spear, Virendra J. Marathe, Luke Dalessandro, Michael L. Scott |
PODC | 1 |
| 2007 | Alert-on-update: a communication aid for shared memory multiprocessorsabstractNo abstract available. Michael F. Spear, Arrvindh Shriraman, Hemayet Hossain, Sandhya Dwarkadas, Michael L. Scott |
PPoPP | 1 |
| 2007 | Nonblocking transactions without indirection using alert-on-updateabstractNonblocking implementations of software transactional memory (STM) typically impose an extra level of indirection when accessing an object; some researchers have claimed that the cost of this indirection outweighs the semantic advantages of nonblocking progress guarantees. We consider this claim in the context of a simple hardware assist, alert-on-update (AOU), which allows a thread to request immediate notification if specified line(s) are replaced or invalidated in its cache. We show that even a single AOU line allows us to construct a simple, nonblocking STM system without extra indirection. At the same time, we observe that per-load validation operations, required for intra-object consistency in both the new system and in lock-based (blocking) STM, at least partially negate the resulting performance gain. Moreover, inter-object consistency checks, also required in both kinds of systems, remain the dominant cost for transactions that access many objects. We therefore present a second nonblocking STM system that uses multiple AOU lines (one per accessed object) to eliminate validation overhead entirely, resulting in a nonblocking, zero-indirection STM system that outperforms competing systems by as much as a factor of 2. Michael F. Spear, Arrvindh Shriraman, Luke Dalessandro, Sandhya Dwarkadas, Michael L. Scott |
SPAA | 1 |
| 2007 | Transaction Safe Nonblocking Data Structures
Virendra J. Marathe, Michael F. Spear, Michael L. Scott |
DISC | 2 |
| 2006 | Solving the starting problem: device drivers as self-describing artifactsabstractRun-time conflicts can affect even the most rigorously tested software systems. A reliance on execution-based testing makes it prohibitively costly to test every possible interaction among potentially thousands of programs with complex configurations. In order to reduce configuration problems, detect developer errors, and reduce developer effort, we have created a new first class operating system abstraction, the application abstraction, which enables both online and offline reasoning about programs and their configuration requirements.We have implemented a subset of the application abstraction for device drivers in the Singularity operating system. Programmers use the application abstraction by placing declarative statements about hardware and communication requirements within their code. Our design enables Singularity to learn the input/output and interprocess communication requirements of drivers without executing driver code. By reasoning about this information within the domain of Singularity's strong software isolation architecture, the installer can execute a subset the system's resource management algorithm at install time to verify that a new driver will not conflict with existing software. This abstract representation also allows the system to run the full algorithm at driver start time to ensure that there are never resource conflicts between executing drivers, and that drivers never use undeclared resources. Michael F. Spear, Tom Roeder, Orion Hodson, Galen C. Hunt, Steven Levi |
EuroSys | 1 |
| 2006 | Conflict Detection and Validation Strategies for Software Transactional Memory
Michael F. Spear, Virendra J. Marathe, William N. Scherer III, Michael L. Scott |
DISC | 1 |