Mark Moir

dblp:m/MarkMoir · DBLP profile ↗
← Back
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
YearPublicationVenuePosition
2021 Formal verification of authenticated, append-only skip lists in Agda
abstract
Authenticated 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.
CPP3
2016 Blockchains and the Logic of Accountability: Keynote Address
abstract
research-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
LICS2
2014 Adaptive integration of hardware and software lock elision techniques
abstract
Transactional 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
SPAA5
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
OPODIS7
2013 Using hardware transactional memory to correct and simplify and readers-writer lock algorithm
abstract
Designing 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
PPoPP5
2013 Scalable statistics counters
abstract
Naive 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
PPoPP3
2013 Scalable statistics counters
abstract
Statistics 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
SPAA3
2013 Towards formally specifying and verifying transactional memory
abstract
Abstract 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
CONCUR3
2011 Hybrid NOrec: a case study in the effectiveness of best effort hardware transactional memory
abstract
Transactional 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
ASPLOS5
2011 On the power of hardware transactional memory to simplify memory management
abstract
Dynamic 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
PODC4
2010 Simplifying concurrent algorithms by exploiting hardware transactional memory
abstract
We 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
SPAA4
2009 Early experience with a commercial hardware transactional memory implementation
abstract
We 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
ASPLOS3
2009 NZTM: nonblocking zero-indirection transactional memory
abstract
This 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
SPAA2
2009 Nonblocking Algorithms and Backward Simulation
Simon Doherty, Mark Moir
DISC2
2009 Nonblocking k -Compare-Single-Swap
Victor Luchangco, Mark Moir, Nir Shavit
Theory Comput. Syst.2
2008 Toward high performance nonblocking software transactional memory
abstract
Substantial 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
PPoPP2
2008 The adaptive transactional memory test platform: a tool for experimenting with transactional code for rock (poster)
abstract
Sun 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
SPAA1
2007 SNZI: scalable NonZero indicators
abstract
We 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
PODC4
2007 Efficient nonblocking software transactional memory
abstract
Foundational 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
PPoPP2
2006 Hybrid transactional memory
abstract
Transactional 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
ASPLOS5
2006 Formal Verification of a Lazy Concurrent List-Based Set Algorithm
Robert Colvin, Lindsay Groves, Victor Luchangco, Mark Moir
CAV4
2006 Composite Abortable Locks
abstract
The 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
IPDPS2
2006 A flexible framework for implementing software transactional memory
abstract
We 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
OOPSLA3
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
OPODIS4
2005 Using elimination to implement scalable and lock-free FIFO queues
abstract
This 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
SPAA1
2005 Obstruction-Free Algorithms Can Be Practically Wait-Free
Faith Ellen, Victor Luchangco, Mark Moir, Nir Shavit
DISC3
2005 Obstruction-Free Step Complexity: Lock-Free DCAS as an Example
Faith Ellen, Victor Luchangco, Mark Moir, Nir Shavit
DISC3
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 structures
abstract
Conventional 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
FORTE4
2004 Bringing practical lock-free synchronization to 64-bit applications
abstract
Many 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
PODC4
2004 DCAS is not a silver bullet for nonblocking algorithm design
abstract
Despite 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.
SPAA7
2003 Obstruction-Free Synchronization: Double-Ended Queues as an Example
abstract
We 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
ICDCS3
2003 Software transactional memory for dynamic-sized data structures
abstract
We 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
PODC3
2003 Nonblocking k-compare-single-swap
abstract
The 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
SPAA2
2003 On the Uncontended Complexity of Consensus
Victor Luchangco, Mark Moir, Nir Shavit
DISC2
2002 Dynamic-sized lock-free data structures
abstract
We 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
PODC4
2002 The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized, Lock-Free Data Structures
Maurice Herlihy, Victor Luchangco, Mark Moir
DISC3
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 Problem
abstract
We 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
ICDCS2
2001 Lock-free reference counting
abstract
Assuming 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.
PODC3
2001 Correction: practical implementations of non-blocking synchronization primitives
abstract
I describe a problem with an algorithm in my previous paper “Practical Implementations of Synchronization Primitives”, and its correction.
Mark Moir
PODC1
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 Algorithm
abstract
This 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 scheme
abstract
In 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é
ICCCN2
2000 Laziness pays! using lazy synchronization mechanisms to improve non-blocking constructions
abstract
We 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
PODC1
2000 Static-Priority Periodic Scheduling on Multiprocessors
abstract
Presents 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
RTSS2
1999 Wait-Free Synchronization in Multiprogrammed Systems: Integrating Priority-Based and Quantum-Based Scheduling
abstract
We 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
PODC2
1999 A Simple Local-Spin Group Mutual Exclusion Algorithm
abstract
This 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
PODC2
1999 Pfair Scheduling of Fixed and Migrating Periodic Tasks on Multiple Resources
abstract
This 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
RTSS1
1999 Universal Constructions for Large Objects
abstract
We 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+ Systems
abstract
SCRAMNet 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
PODC2
1998 Fast, Long-Lived Renaming Improved and Simplified
Mark Moir
Sci. Comput. Program.1
1997 Practical Implementations of Non-Blocking Synchronization Primitives
abstract
This 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
PODC1
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)
abstract
In 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
PODC1
1996 Real-Time Object Sharing with Minimal System Support (Extended Abstract)
Srikanth Ramamurthy, Mark Moir, James H. Anderson
PODC2
1995 Universal Constructions for Multi-Object Operations
abstract
We 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
PODC2
1995 Long-Lived Renaming Made Fast
abstract
In 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
PODC4
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)
abstract
We 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
PODC2