VLDB 2026 Research / reviewers in the wild / expert
Mark Moir
dblp:m/MarkMoir
· DBLP profile ↗
65ranked-venue papers
11as first author
1since 2021 · last 2021
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 42 · 7 first-authorSoftware engineering, systems software and programming languages · 10 · 3 first-author · 1 since 2021Theory of computation · 8 · 1 since 2021Computer networks · 2Applied, interdisciplinary, general and emerging computing · 2 · 1 first-authorDatabases, data management, data science and information retrieval · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | Formal verification of authenticated, append-only skip lists in AgdaabstractAuthenticated Append-Only Skiplists (AAOSLs) enable maintenance and querying of an authenticated log (such as a blockchain) without requiring any single party to store or verify the entire log, or to trust another party regarding its contents. AAOSLs can help to enable efficient dynamic participation (e.g., in consensus) and reduce storage overhead. Victor Cacciari Miraldo, Harold Carr, Mark Moir, Lisandra Silva, Guy L. Steele Jr. |
CPP | 3 |
| 2016 | Blockchains and the Logic of Accountability: Keynote Addressabstractresearch-article Share on Blockchains and the Logic of Accountability: Keynote Address Authors: Maurice Herlihy Brown University and Oracle Labs Brown University and Oracle LabsView Profile , Mark Moir Oracle Labs Oracle LabsView Profile Authors Info & Claims LICS '16: Proceedings of the 31st Annual ACM/IEEE Symposium on Logic in Computer ScienceJuly 2016 Pages 27–30https://doi.org/10.1145/2933575.2934579Published:05 July 2016Publication History 6citation736DownloadsMetricsTotal Citations6Total Downloads736Last 12 Months19Last 6 weeks2 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access Maurice Herlihy, Mark Moir |
LICS | 2 |
| 2014 | Adaptive integration of hardware and software lock elision techniquesabstractTransactional Lock Elision (TLE) and optimistic software execution can both improve scalability of lock-based programs. The former uses hardware transactional memory (HTM) without requiring code changes; the latter involves modest code changes but does not require special hardware support. Numerous factors affect the choice of technique, including: critical section code, calling context, workload characteristics, and hardware support for synchronization. David Dice, Alex Kogan, Yossi Lev, Timothy Merrifield, Mark Moir |
SPAA | 5 |
| 2013 | Message Passing or Shared Memory: Evaluating the Delegation Abstraction for Multicores
Irina Calciu, David Dice, Tim Harris 0001, Maurice Herlihy, Alex Kogan, Virendra J. Marathe, Mark Moir |
OPODIS | 7 |
| 2013 | Using hardware transactional memory to correct and simplify and readers-writer lock algorithmabstractDesigning correct synchronization algorithms is notoriously difficult, as evidenced by a bug we have identified that has apparently gone unnoticed in a well-known synchronization algorithm for nearly two decades. We use hardware transactional memory (HTM) to construct a corrected version of the algorithm. This version is significantly simpler than the original and furthermore improves on it by eliminating usage constraints and reducing space requirements. Performance of the HTM-based algorithm is competitive with the original in "normal" conditions, but it does suffer somewhat under heavy contention. We successfully apply some optimizations to help close this gap, but we also find that they are incompatible with known techniques for improving progress properties. We discuss ways in which future HTM implementations may address these issues. Finally, although our focus is on how effectively HTM can correct and simplify the algorithm, we also suggest bug fixes and workarounds that do not depend on HTM. David Dice, Yossi Lev, Yujie Liu 0003, Victor Luchangco, Mark Moir |
PPoPP | 5 |
| 2013 | Scalable statistics countersabstractNaive statistics counters that are commonly used to monitor system events and performance become a scalability bottleneck as systems become larger and more NUMA; furthermore some are so inaccurate that they are not useful. We present a number of techniques to address these problems, evaluating solutions in terms of performance, scalability, space overhead, and accuracy. David Dice, Yossi Lev, Mark Moir |
PPoPP | 3 |
| 2013 | Scalable statistics countersabstractStatistics counters are important for purposes such as detecting excessively high rates of various system events, or for mechanisms that adapt based on event frequency. As systems grow and become increasingly NUMA, commonly used naive counters impose scalability bottlenecks and/or such inaccuracy that they are not useful. We present both precise and statistical (probabilistic) counters that are nonblocking and provide dramatically better scalability and accuracy properties. Crucially, these counters are competitive with the naive ones even when contention is low. David Dice, Yossi Lev, Mark Moir |
SPAA | 3 |
| 2013 | Towards formally specifying and verifying transactional memoryabstractAbstract Over the last decade, great progress has been made in developing practical transactional memory (TM) implementations, but relatively little attention has been paid to precisely specifying what it means for them to be correct, or formally proving that they are. In this paper, we present TMS1 (Transactional Memory Specification 1), a precise specification of correct behaviour of a TM runtime library. TMS1 targets TM runtimes used to implement transactional features in an unmanaged programming language such as C or C++. In such contexts, even transactions that ultimately abort must observe consistent states of memory; otherwise, unrecoverable errors such as divide-by-zero may occur before a transaction aborts, even in a correct program in which the error would not be possible if transactions were executed atomically. We specify TMS1 precisely using an I/O automaton (IOA). This approach enables us to also model TM implementations using IOAs and to construct fully formal and machine-checked correctness proofs for them using well established proof techniques and tools. We outline key requirements for a TM system. To avoid precluding any implementation that satisfies these requirements, we specify TMS1 to be as general as we can, consistent with these requirements. The cost of such generality is that the condition does not map closely to intuition about common TM implementation techniques, and thus it is difficult to prove that such implementations satisfy the condition. To address this concern, we present TMS2, a more restrictive condition that more closely reflects intuition about common TM implementation techniques. We present a simulation proof that TMS2 implements TMS1, thus showing that to prove that an implementation satisfies TMS1, it suffices to prove that it satisfies TMS2. We have formalised and verified this proof using the PVS specification and verification system. Simon Doherty, Lindsay Groves, Victor Luchangco, Mark Moir |
Formal Aspects Comput. | 4 |
| 2012 | A Framework for Formally Verifying Software Transactional Memory Algorithms
Mohsen Lesani, Victor Luchangco, Mark Moir |
CONCUR | 3 |
| 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 | 5 |
| 2011 | On the power of hardware transactional memory to simplify memory managementabstractDynamic memory management is a significant source of complexity in the design and implementation of practical concurrent data structures. We study how hardware transactional memory (HTM) can be used to simplify and streamline memory reclamation for such data structures. We propose and evaluate several new HTMbased algorithms for the “Dynamic Collect ” problem that lies at the heart of many modern memory management algorithms. We demonstrate that HTM enables simpler and faster solutions, with better memory reclamation properties, than prior approaches. Despite recent theoretical arguments that HTM provides no worst-case advantages, our results support the claim that HTM can provide significantly better common-case performance, as well as reduced conceptual complexity. Aleksandar Dragojevic, Maurice Herlihy, Yossi Lev, Mark Moir |
PODC | 4 |
| 2010 | Simplifying concurrent algorithms by exploiting hardware transactional memoryabstractWe explore the potential of hardware transactional memory (HTM) to improve concurrent algorithms. We illustrate a number of use cases in which HTM enables significantly simpler code to achieve similar or better performance than existing algorithms for conventional architectures. We use Sun's prototype multicore chip, code-named Rock, to experiment with these algorithms, and discuss ways in which its limitations prevent better results, or would prevent production use of algorithms even if they are successful. Our use cases include concurrent data structures such as double ended queues, work stealing queues and scalable non-zero indicators, as well as a scalable malloc implementation and a simulated annealing application. We believe that our paper makes a compelling case that HTM has substantial potential to make effective concurrent programming easier, and that we have made valuable contributions in guiding designers of future HTM features to exploit this potential. David Dice, Yossi Lev, Virendra J. Marathe, Mark Moir, Daniel Nussbaum, Marek Olszewski |
SPAA | 4 |
| 2009 | Early experience with a commercial hardware transactional memory implementationabstractWe report on our experience with the hardware transactional memory (HTM) feature of two revisions of a prototype multicore processor. Our experience includes a number of promising results using HTM to improve performance in a variety of contexts, and also identifies some ways in which the feature could be improved to make it even better. We give detailed accounts of our experiences, sharing techniques we used to achieve the results we have, as well as describing challenges we faced in doing so. This technical report expands on our ASPLOS paper [9], providing more detail and reporting on additional work conducted since that paper was written. David Dice, Yossi Lev, Mark Moir, Daniel Nussbaum |
ASPLOS | 3 |
| 2009 | NZTM: nonblocking zero-indirection transactional memoryabstractThis paper introduces NZTM, a nonblocking, zero-indirection, object-based, hybrid transactional memory system. NZTM comprises a nonblocking software transactional memory (STM) system that can exploit best-effort hardware transactional memory (HTM) if available to improve performance. Fuad Tabba, Mark Moir, James R. Goodman, Andrew W. Hay |
SPAA | 2 |
| 2009 | Nonblocking Algorithms and Backward Simulation
Simon Doherty, Mark Moir |
DISC | 2 |
| 2009 | Nonblocking k -Compare-Single-Swap
Victor Luchangco, Mark Moir, Nir Shavit |
Theory Comput. Syst. | 2 |
| 2008 | Toward high performance nonblocking software transactional memoryabstractSubstantial advances in STM performance in recent years have mostly focused on blocking systems. We describe our work integrating the most important techniques and optimizations emerging from the recent work on blocking STMs into several variants of a nonblocking STM. Virendra J. Marathe, Mark Moir |
PPoPP | 2 |
| 2008 | The adaptive transactional memory test platform: a tool for experimenting with transactional code for rock (poster)abstractSun has recently announced that its forthcoming multicore processor, code-named Rock, will support a form of hardware transactional memory (HTM). Our poster describes this feature, and presents the Adaptive Transactional Memory Test Platform (ATMTP)---a simulator we have developed that allows us and others to experiment with code that uses it, as well as the results of some preliminary experiments conducted using ATMTP. Mark Moir, Daniel Nussbaum |
SPAA | 1 |
| 2007 | SNZI: scalable NonZero indicatorsabstractWe introduce the SNZI shared object, which is related to traditional shared counters, but has weaker semantics. We also introduce a resettable version of SNZI called SNZI-R. We present implementations that are scalable, linearizable, nonblocking, and fast in the absence of contention, properties that are difficult or impossible to achieve simultaneously with the stronger semantics of traditional counters. Our primary motivation in introducing SNZI and SNZI-R is to use them to improve the performance and scalability of software and hybrid transactional memory systems. We present performance experiments showing that our implementations have excellent performance characteristics for this purpose. Faith Ellen, Yossi Lev, Victor Luchangco, Mark Moir |
PODC | 4 |
| 2007 | Efficient nonblocking software transactional memoryabstractFoundational transactional memory research grew out of research into nonblocking concurrent data structures, which aim to overcome the many well-known software engineering, performance, and robustness problems associated with lock-based implementations. Recently, many researchers have developed blocking STMs, recognising that they are much easier to design and that the software engineering benefits of STM can be delivered even by a blocking STM. But hiding blocking from the application programmer does not eliminate all of its disadvantages, and in some cases blocking is unacceptable, for example if STM is to be used to coordinate between an interrupt handler and the interrupted thread. Virendra J. Marathe, Mark Moir |
PPoPP | 2 |
| 2006 | Hybrid transactional memoryabstractTransactional memory (TM) promises to substantially reduce the difficulty of writing correct, efficient, and scalable concurrent programs. But "bounded" and "best-effort" hardware TM proposals impose unreasonable constraints on programmers, while more flexible software TM implementations are considered too slow. Proposals for supporting "unbounded" transactions in hardware entail significantly higher complexity and risk than best-effort designs.We introduce Hybrid Transactional Memory (HyTM), an approach to implementing TMin software so that it can use best effort hardware TM (HTM) to boost performance but does not depend on HTM. Thus programmers can develop and test transactional programs in existing systems today, and can enjoy the performance benefits of HTM support when it becomes available.We describe our prototype HyTM system, comprising a compiler and a library. The compiler allows a transaction to be attempted using best-effort HTM, and retried using the software library if it fails. We have used our prototype to "transactify" part of the Berkeley DB system, as well as several benchmarks. By disabling the optional use of HTM, we can run all of these tests on existing systems. Furthermore, by using a simulated multiprocessor with HTM support, we demonstrate the viability of the HyTM approach: it can provide performance and scalability approaching that of an unbounded HTM implementation, without the need to support all transactions with complicated HTM support. Peter Damron, Alexandra Fedorova, Yossi Lev, Victor Luchangco, Mark Moir, Daniel Nussbaum |
ASPLOS | 5 |
| 2006 | Formal Verification of a Lazy Concurrent List-Based Set Algorithm
Robert Colvin, Lindsay Groves, Victor Luchangco, Mark Moir |
CAV | 4 |
| 2006 | Composite Abortable LocksabstractThe need to allow threads to abort an attempt to acquire a lock (sometimes called a timeout) is an interesting new requirement driven by state-of-the-art database applications with soft real-time constraints. This paper presents a new composite abortable lock (CAL), a combination of abortable queue-based (QL) and test-and-set based backoff (BL) lock mechanisms, which provides non-blocking aborts while ensuring low space requirements without need for a memory reclamation scheme. The key observation motivating our approach is that the fast lock hand-off achieved by QLs only requires the first few threads to be queued (not all waiting threads), and that the remaining threads can run as in a BL. We developed an algorithm that uses only a short fixed size structure for queueing, allowing most threads to back-off. This reduces worst-case space overhead dramatically, and improves performance by eliminating the need for expensive and complicated memory management mechanisms. Experimental results show that our new CAL algorithm not only saves on space, it actually outperforms Scott's state-of-the-art nonblocking abortable QL under contention, and even more so when there are more threads than processors. Moreover, as the rate of lock aborts increases, the CAL continues to perform well, while Scott's algorithm deteriorates rapidly Virendra J. Marathe, Mark Moir, Nir Shavit |
IPDPS | 2 |
| 2006 | A flexible framework for implementing software transactional memoryabstractWe describe DSTM2, a Java™ software library that provides a flexible framework for implementing object-based software transactional memory (STM). The library uses transactional factories to transform sequential (unsynchronized) classes into atomic (transactionally synchronized) ones, providing a substantial improvement over the awkward programming interface of our previous DSTM library. Furthermore, researchers can experiment with alternative STM mechanisms by providing their own factories. We demonstrate this flexibility by presenting two factories: one that uses essentially the same mechanisms as the original DSTM (with some enhancements),and another that uses a completely different approach.Because DSTM2 is packaged as a Java library, a wide range of programmers can easily try it out, and the community can begin to gain experience with transactional programming. Furthermore, researchers will be able to use the body of transactional programs that arises from this community experience to test and evaluate different STM mechanisms simply by supplying new transactional factories. We believe that this flexible approach will help to build consensus about the best ways to implement transactions, and will avoid the premature "lock-in" that may arise if STM mechanisms are baked into compilers before such experimentation is done. Maurice Herlihy, Victor Luchangco, Mark Moir |
OOPSLA | 3 |
| 2006 | A dynamic-sized nonblocking work stealing deque
Danny Hendler, Yossi Lev, Mark Moir, Nir Shavit |
Distributed Comput. | 3 |
| 2005 | A Lazy Concurrent List-Based Set Algorithm
Steve Heller, Maurice Herlihy, Victor Luchangco, Mark Moir, William N. Scherer III, Nir Shavit |
OPODIS | 4 |
| 2005 | Using elimination to implement scalable and lock-free FIFO queuesabstractThis paper shows for the first time that elimination, a scaling technique formerly applied only to counters and LIFO structures, can be applied to FIFO data structures, specifically, to linearizable FIFO queues. We show how to transform existing nonscalable FIFO queue implementations into scalable implementations using the elimination technique, while preserving lock-freedom and linearizablity.We apply our transformation to the FIFO queue algorithm of Michael and Scott, which is included in the Java™ Concurrency Package. Empirical evaluation on a state-of-the-art CMT multiprocessor chip shows that by using elimination as a backoff technique for the Michael and Scott queue algorithm, we can achieve comparable performance at low loads, and improved scalability as load increases. Mark Moir, Daniel Nussbaum, Ori Shalev, Nir Shavit |
SPAA | 1 |
| 2005 | Obstruction-Free Algorithms Can Be Practically Wait-Free
Faith Ellen, Victor Luchangco, Mark Moir, Nir Shavit |
DISC | 3 |
| 2005 | Obstruction-Free Step Complexity: Lock-Free DCAS as an Example
Faith Ellen, Victor Luchangco, Mark Moir, Nir Shavit |
DISC | 3 |
| 2005 | Concurrency and synchronization in Java programs
Mark Moir, Nir Shavit, Jan Vitek |
Sci. Comput. Program. | 1 |
| 2005 | Nonblocking memory management support for dynamic-sized data structuresabstractConventional dynamic memory management methods interact poorly with lock-free synchronization. In this article, we introduce novel techniques that allow lock-free data structures to allocate and free memory dynamically using any thread-safe memory management library. Our mechanisms are lock-free in the sense that they do not allow a thread to be prevented from allocating or freeing memory by the failure or delay of other threads. We demonstrate the utility of these techniques by showing how to modify the lock-free FIFO queue implementation of Michael and Scott to free unneeded memory. We give experimental results that show that the overhead introduced by such modifications is moderate, and is negligible under low contention. Maurice Herlihy, Victor Luchangco, Paul A. Martin, Mark Moir |
ACM Trans. Comput. Syst. | 4 |
| 2004 | Formal Verification of a Practical Lock-Free Queue Algorithm
Simon Doherty, Lindsay Groves, Victor Luchangco, Mark Moir |
FORTE | 4 |
| 2004 | Bringing practical lock-free synchronization to 64-bit applicationsabstractMany lock-free data structures in the literature exploit techniques that are possible only because state-of-the-art 64-bit processors are still running 32-bit operating systems and applications. As software catches up to hardware, "64-bit-clean" lock-free data structures, which cannot use such techniques, are needed.We present several 64-bit-clean lock-free implementations: load-linked/store-conditional variables of arbitrary size, a FIFO queue, and a freelist. In addition to being portable to 64-bit software, our implementations also improve on previous ones in that they are space-adaptive and do not require knowledge of the number of threads that will access them. Simon Doherty, Maurice Herlihy, Victor Luchangco, Mark Moir |
PODC | 4 |
| 2004 | DCAS is not a silver bullet for nonblocking algorithm designabstractDespite years of research, the design of efficient nonblocking algorithms remains difficult. A key reason is that current shared-memory multiprocessor architectures support only single-location synchronisation primitives such as compare-and-swap (CAS) and load-linked/store-conditional (LL/SC). Recently researchers have investigated the utility of double-compare-and-swap (DCAS)--a generalisation of CAS that supports atomic access to two memory locations -- in overcoming these problems. We summarise recent research in this direction and present a detailed case study concerning a previously published nonblocking DCAS-based double-ended queue implementation. Our summary and case study clearly show that DCAS does not provide a silver bullet for nonblocking synchronisation. That is, it does not make the design and verification of even mundane nonblocking data structures with desirable properties easy. Therefore, our position is that while slightly more powerful synchronisation primitives can ave a profound effect on ease of algorithm design and verification, DCAS does not provide sufficient additional power over CAS to justify supporting it in hardware. Simon Doherty, David Detlefs, Lindsay Groves, Christine H. Flood, Victor Luchangco, Paul Alan Martin, Mark Moir, Nir Shavit, Guy L. Steele Jr. |
SPAA | 7 |
| 2003 | Obstruction-Free Synchronization: Double-Ended Queues as an ExampleabstractWe introduce obstruction-freedom, a new nonblocking property for shared data structure implementations. This property is strong enough to avoid the problems associated with locks, but it is weaker than previous nonblocking properties-specifically lock-freedom and wait-freedom-allowing greater flexibility in the design of efficient implementations. Obstruction-freedom admits substantially simpler implementations, and we believe that in practice it provides the benefits of wait-free and lock-free implementations. To illustrate the benefits of obstruction-freedom, we present two obstruction-free CAS-based implementations of double-ended queues (deques); the first is implemented on a linear array, the second on a circular array. To our knowledge, all previous nonblocking deque implementations are based on unrealistic assumptions about hardware support for synchronization, have restricted functionality, or have operations that interfere with operations at the opposite end of the deque even when the deque has many elements in it. Our obstruction-free implementations have none of these drawbacks, and thus suggest that it is much easier to design obstruction-free implementations than lock-free and wait-free ones. We also briefly discuss other obstruction-free data structures and operations that we have implemented. Maurice Herlihy, Victor Luchangco, Mark Moir |
ICDCS | 3 |
| 2003 | Software transactional memory for dynamic-sized data structuresabstractWe propose a new form of software transactional memory (STM) designed to support dynamic-sized data structures, and we describe a novel non-blocking implementation. The non-blocking property we consider is obstruction-freedom. Obstruction-freedom is weaker than lock-freedom; as a result, it admits substantially simpler and more efficient implementations. A novel feature of our obstruction-free STM implementation is its use of modular contention managers to ensure progress in practice. We illustrate the utility of our dynamic STM with a straightforward implementation of an obstruction-free red-black tree, thereby demonstrating a sophisticated non-blocking dynamic data structure that would be difficult to implement by other means. We also present the results of simple preliminary performance experiments that demonstrate that an "early release" feature of our STM is useful for reducing contention, and that our STM lends itself to the effective use of modular contention managers. Maurice Herlihy, Victor Luchangco, Mark Moir, William N. Scherer III |
PODC | 3 |
| 2003 | Nonblocking k-compare-single-swapabstractThe current literature o .ers two extremes of nonblocking software synchronization support for concurrent data structure design:intricate designs of specific structures based on single-location operations such as compare-and-swap (CAS), and general-purpose multilocation transactional memory implementations. While the former are sometimes efficient, they are invariably hard to extend and generalize. The latter are .exible and general, but costly. This paper aims at a middle ground:reasonably efficient multilocation operations that are general enough to reduce the design difficulties of algorithms based on CAS alone. We present an obstruction-free implementation of an atomic k-location-compare single-swap (KCSS)operation. KCSS allows for simple nonblocking manipulation of linked data structures by overcoming the key algorithmic difficulty in their design: making sure that while a pointer is being manipulated, neighboring parts of the data structure remain unchanged. Our algorithm is efficient in the common uncontended case: A successful k location KCSS operation requires only two CAS operations, two stores, and 2 k noncached loads when there is no contention. We therefore believe our results lend themselves to efficient and flexible nonblocking manipulation of list-based data structures in today's architectures. Victor Luchangco, Mark Moir, Nir Shavit |
SPAA | 2 |
| 2003 | On the Uncontended Complexity of Consensus
Victor Luchangco, Mark Moir, Nir Shavit |
DISC | 2 |
| 2002 | Dynamic-sized lock-free data structuresabstractWe address the problem of integrating lockfree shared data structures with standard dynamic allocation mechanisms (such as malloc and free). We have two main contributions. The first is the design and experimental analysis of two dynamic-sized lockfree FIFO queue implementations, which extend Michael and Scott’s previous implementation by allowing unused memory to be freed. We compare our dynamic-sized implementations to the original on 16-processor and 64-processor multiprocessors. Our experimental results indicate that the performance penalty for making the queue dynamic-sized is modest, and is negligible when contention is not too high. These results were achieved by applying a solution to the Repeat Offender Problem (ROP), which we recently posed and solved. Our second contribution is another application of ROP solutions. Specifically, we show how to use any ROP solution to achieve a general methodology for transforming lockfree data structures that rely on garbage collection into ones that use explicit storage reclamation. Maurice Herlihy, Victor Luchangco, Paul A. Martin, Mark Moir |
PODC | 4 |
| 2002 | The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized, Lock-Free Data Structures
Maurice Herlihy, Victor Luchangco, Mark Moir |
DISC | 3 |
| 2002 | Lock-free reference counting
David Detlefs, Paul Alan Martin, Mark Moir, Guy L. Steele Jr. |
Distributed Comput. | 3 |
| 2002 | DCAS-Based Concurrent Deques
Ole Agesen, David Detlefs, Christine H. Flood, Alex Garthwaite, Paul Alan Martin, Mark Moir, Nir Shavit, Guy L. Steele Jr. |
Theory Comput. Syst. | 6 |
| 2001 | A General Resource Allocation Synchronization ProblemabstractWe introduce a new synchronization problem called GRASP. We show that this problem is very general, in that it can provide solutions with strong properties to a wide make of previously-studied and new problems. We present a shared-memory solution to this problem that is based on a new solution to the dining philosophers problem with constant failure locality. We use the powerful tool of wait-free transactions to simplify our solution without restricting concurrency. Patrick Keane, Mark Moir |
ICDCS | 2 |
| 2001 | Lock-free reference countingabstractAssuming the existence of garbage collection makes it easier to design implementations of concurrent data structures. However, this assumption limits their applicability. We present a methodology that, for a significant class of data structures, allows designers to first tackle the easier problem of designing a garbage-collection-dependent implementation, and then apply our methodology to achieve a garbage-collection-independent one. Our methodology is based on the well-known reference counting technique, and employs the double compare-and-swap operation. David Detlefs, Paul Alan Martin, Mark Moir, Guy L. Steele Jr. |
PODC | 3 |
| 2001 | Correction: practical implementations of non-blocking synchronization primitivesabstractI describe a problem with an algorithm in my previous paper “Practical Implementations of Synchronization Primitives”, and its correction. Mark Moir |
PODC | 1 |
| 2001 | Laziness pays! Using lazy synchronization mechanisms to improve non-blocking constructions
Mark Moir |
Distributed Comput. | 1 |
| 2001 | A simple proof technique for priority-scheduled systems
James H. Anderson, Mark Moir, Srikanth Ramamurthy |
Inf. Process. Lett. | 2 |
| 2001 | A Simple Local-Spin Group Mutual Exclusion AlgorithmabstractThis paper presents a new solution to the group mutual exclusion problem recently posed by Joung. In this problem, processes repeatedly request access to various "sessions." It is required that distinct processes are not in different sessions concurrently, that multiple processes may be in the same session concurrently, and that each process that tries to enter a session is eventually able to do so. This problem is a generalization of the mutual exclusion and readers-writers problems. Our algorithm and its correctness proof are substantially simpler than Joung's. This simplicity is achieved by building upon known solutions to the more specific mutual exclusion problem. Our algorithm also has various advantages over Joung's, depending on the choice of mutual exclusion algorithm used. These advantages include admitting a process to its session in constant time in the absence of contention, spinning locally in Cache Coherent (CC) and Nonuniform Memory Access (NUMA) systems, and improvements in the complexity measures proposed by Joung. Patrick Keane, Mark Moir |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 2000 | netnice: nice is not only for CPUs-a simple subnetwork bandwidth management schemeabstractIn this paper, we present "netnice", a mechanism that allows processes to throttle their own network bandwidth consumption. As the name suggests, it is inspired by the Unix "nice" command in that it allows users and administrators to limit the network resources used by individual processes in order to avoid impacting the performance of other processes. In the paper, to address the problem of transient performance deterioration in local area network (LAN) environments, we propose a bandwidth limitation primitive that works within a host's kernel, called netnice. We also show several uses of netnice. Through experimentation in a small LAN of FreeBSD machines, we show how netnice allows for higher degree of controllability in bandwidth management. Takashi Okumura, Mark Moir, Daniel Mossé |
ICCCN | 2 |
| 2000 | Laziness pays! using lazy synchronization mechanisms to improve non-blocking constructionsabstractWe present a simple and efficient wait-free implementation of Lazy Large Load-Linked/Store-Conditional (Lazy-LL/SC), which can be used to atomically modify a dynamically-determined set of shared variables in a lock-free manner. The semantics of Lazy-LL/SC is weaker than that of similar objects used by us previously to design lock-free and wait-free constructions, and as a result can be implemented more efficiently. However, we show that Lazy-LL/SC is strong enough to be used in existing non-blocking universal constructions and to build new ones. Mark Moir |
PODC | 1 |
| 2000 | Static-Priority Periodic Scheduling on MultiprocessorsabstractPresents a new sufficient condition for the schedulability of preemptable, periodic, hard-real-time task sets using the very simple static-priority weight-monotonic scheduling scheme. Like a previous condition due to S. Baruah et al. (1996), our condition actually determines pfair schedulability. Pfairness requires that the schedule, in addition to being periodic, schedules each task at an approximately even rate. Our condition improves on the previous one in two important ways. First, it can determine that task sets with both high utilization and many tasks are schedulable, while the previous condition cannot. Second, our condition applies to both uniprocessors and multiprocessors, while the previous condition applies only to uniprocessors. We present simulations that show that our condition is highly accurate for many cases of interest. Srikanth Rarnarnurthy, Mark Moir |
RTSS | 2 |
| 1999 | Wait-Free Synchronization in Multiprogrammed Systems: Integrating Priority-Based and Quantum-Based SchedulingabstractWe consider wait-free synchronization in multipro grammed uniprocessor and multiprocessor systems in which "hybrid" schedulers are employed that use both priority information and a scheduling quantum in making scheduling decisions.The main contribution of this paper is to show that, in any hybrid-scheduled system, any object with consensus number C 2 P in Herlihy's wait-free hierarchy is universal for any number of processes executing on P processors, provided the scheduling quantum is of a certain size.We also show that if a C-consensus object must be "hard-wired" to the processors that access it, then our characterization of the required quantum is asymptotically tight.If C = P or if C 2 2P, then this characterization is asymptotically tight regardless of whether objects must be "hard-wired". James H. Anderson, Mark Moir |
PODC | 2 |
| 1999 | A Simple Local-Spin Group Mutual Exclusion AlgorithmabstractThis paper presents a new solution to the group mutual exclusion problem, recently posed by Joung. In this problem, processes repeatedly request access to various "sessions". It is required that distinct processes are not in different sessions concurrently, that multiple processes may be in the same session concurrently, and that each process that tries to enter a session is eventually able to do so. This problem is a generalization of the mutual exclusion and readers-writers problems. Our algorithm and its correctness proof are substantially simpler than Joung's. This simplicity is achieved by building upon known solutions to the more specific mutual exclusion problem. Our algorithm also has various advantages over Joung's, depending on the choice of mutual exclusion algorithm used. These advantages include admitting a process to its session in constant time in the absence of contention, spinning locally in Cache Coherent (CC) and Non-Uniform Memory Access (NUMA) systems, an... Patrick Keane, Mark Moir |
PODC | 2 |
| 1999 | Pfair Scheduling of Fixed and Migrating Periodic Tasks on Multiple ResourcesabstractThis paper concerns the problem of scheduling sets of preemptable, periodic tasks on multiple resources. We consider a task model that allows arbitrary mixes of fixed and migratable tasks, and prove the existence of an optimal pfair scheduler in this model. Fixed tasks must always be scheduled on a given resource, while migratable tasks can be scheduled on different resources at different times. A pfair scheduler produces a periodic schedule in which the times each task is allocated a processor are approximately evenly spread throughout its period. This paper extends work of Baruah et al., who proved a similar result for systems in which all tasks are migratable. Mark Moir, Srikanth Ramamurthy |
RTSS | 1 |
| 1999 | Universal Constructions for Large ObjectsabstractWe present lock-free and wait-free universal constructions for implementing large shared objects. Most previous universal constructions require processes to copy the entire object state, which is impractical for large objects. Previous attempts to address this problem require programmers to explicitly fragment large objects into smaller, more manageable pieces, paying particular attention to how such pieces are copied. In contrast, our constructions are designed to largely shield programmers from this fragmentation. Furthermore, for many objects, our constructions result in lower copying overhead than previous ones. Fragmentation is achieved in our constructions through the use of load-linked, store-conditional, and validate operations on a "large" multiword shared variable. Before presenting our constructions, we show how these operations can be efficiently implemented from similar one-word primitives. James H. Anderson, Mark Moir |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 1998 | Synchronization Mechanisms for SCRAMNet+ SystemsabstractSCRAMNet network cards provide a replicated shared memory via a high-speed, fiber-optic ring. Such systems combine the advantages of conventional shared-memory multiprocessors and message-passing networks by allowing a collection of different computers to access a shared memory with low latency. This paper presents several synchronization mechanisms --- both blocking and nonblocking --- for SCRAMNet systems. It is well known that, for general non-blocking synchronization, strong synchronization primitives such as compare-and-swap (CAS) or load-linked/storeconditional (LL/SC) are needed. SCRAMNet cards do not provide such primitives. However, we show that strong synchronization primitives can be implemented in software by exploiting certain features of SCRAMNet cards. In particular, we show that wait-free consensus can be solved in SCRAMNet systems, and we present a simple and efficient wait-free implementation of CAS. We also present new mutual exclusion and renaming algorithms for SCR... Stephen Menke, Mark Moir, Srikanth Ramamurthy |
PODC | 2 |
| 1998 | Fast, Long-Lived Renaming Improved and Simplified
Mark Moir |
Sci. Comput. Program. | 1 |
| 1997 | Practical Implementations of Non-Blocking Synchronization PrimitivesabstractThis paper is concerned with system support for nonblocking synchronization in shared-memory multipr~ cesaors.Many non-blocking algorithms published recently depend on the Load-Linked (L L), Validate (VL), and Store-Con Mark Moir |
PODC | 1 |
| 1997 | Using Local-Spin k-Exclusion Algorithms to Improve Wait-Free Object Implementations
James H. Anderson, Mark Moir |
Distributed Comput. | 2 |
| 1996 | Fast, Long-Lived Renaming Improved and Simplified (Abstract)abstractIn the long-lived M-renaming problem, N processes repeatedly acquire and release names ranging over {0,..., M−1}, where M < N. It is assumed that at most k processes concurrently request or hold names. Efficient solutions to the long-lived renaming problem can be used to improve the performance of applications in which processes repeatedly perform computations whose time complexity depends on the size of the name space containing the processes that participate concurrently. In this paper, we consider wait-free solutions to the long-lived M-renaming problem that use only read and write instructions in an asynchronous, shared-memory multiprocessor. A solution to long-lived renaming is fast if the time complexity of acquiring and releasing a name once is independent of N. We present a new fast, long-lived (k(k + 1)/2)-renaming algorithm that significantly improves upon the time and space complexity of similar previous algorithms, while providing a much simpler solution. We also show for the first time that fast, long-lived (2k − 1)-renaming can be implemented with reads and writes. This result is optimal with respect to the size of the name space. Mark Moir, Juan A. Garay 0001 |
PODC | 1 |
| 1996 | Real-Time Object Sharing with Minimal System Support (Extended Abstract)
Srikanth Ramamurthy, Mark Moir, James H. Anderson |
PODC | 2 |
| 1995 | Universal Constructions for Multi-Object OperationsabstractWe present wait-free and lock-free universal constructions that allow operations to access multiple objects atomically. Such constructions provide functionality similar to nested critical sections in conventional, lockbased systems. In such a system, two critical sections might be nested, for example, to swap the contents of two shared bu ers. Using our constructions, such a transfer can be done in a wait-free or a lock-free manner. Our universal constructions are based upon multiword synchronization primitives. In the rst part of the paper, we present wait-free implementations of such primitives from one-word primitives. These implementations allow processes that access disjoint words to execute in parallel. Previous implementations of multi-word primitives either overly restrict parallelism, or provide only lock-free execution. We also present several implementations involving one-word universal primitives that allow our constructions to be applied with greater exibility. In particular, we present timeoptimal, wait-free implementations of Load-Linked and Store-Conditional from Read and Compare-And-Swap, and vice versa, and implementations that eliminate the need to deal with spurious Store-Conditional failures. 1 James H. Anderson, Mark Moir |
PODC | 2 |
| 1995 | Long-Lived Renaming Made FastabstractIn the long-lived renaming problem --- a generalization of the classical one-time renaming problem --- n processors with unique names ranging over a source name space f0; : : : ; S \\Gamma 1g repeatedly acquire and release unique names from a (smaller) destination name space f0; : : : ; D \\Gamma 1g. It is assumed that at most k out of n processors concurrently request or hold names. An efficient renaming protocol provides a useful front-end for protocols whose time complexity depends on the size of the name space containing the participating processes. We consider long-lived renaming in the context of asynchronous, shared-memory multiprocessing systems that provide only read and write operations. A renaming protocol is fast iff the time complexity of acquiring and releasing a name is polynomial in k and independent of n and S. We present a wait-free, read/write protocol for long-lived renaming that achieves a destination name space of size O(k 2 ) with time complexity O(k 3 ). If ... Harry Buhrman, Juan A. Garay 0001, Jaap-Henk Hoepman, Mark Moir |
PODC | 4 |
| 1995 | Wait-Free Algorithms for Fast, Long-Lived Renaming
Mark Moir, James H. Anderson |
Sci. Comput. Program. | 1 |
| 1994 | Using k-Exclusion to Implement Resilient, Scalable Shared Objects (Extended Abstract)abstractWe present a methodology for the implementation of atomic operations or perform badly.Our k-exclusion algorithms are also the first algorithms based on localspin techniques that tolerate process failures. James H. Anderson, Mark Moir |
PODC | 2 |