Nir Shavit

dblp:s/NirShavit · DBLP profile ↗
← Back
141ranked-venue papers
22as first author
7since 2021 · last 2025
0009-0006-1111-1349ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 73 · 17 first-author · 1 since 2021Theory of computation · 25 · 4 first-authorArtificial intelligence and machine learning · 10 · 6 since 2021Applied, interdisciplinary, general and emerging computing · 9Software engineering, systems software and programming languages · 5Graphics, computer vision, multimedia, augmented reality and games · 5 · 2 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Artificial intelligence
10 papers
Efficient and distributed learning · 42% Trustworthy machine learning · 18% Deep learning architectures and training · 12%
Computer architecture, parallel and distributed computing, and storage systems
29 papers
Parallel and multicore computing · 56% Hardware accelerators and domain-specific architectures · 16% Processor architecture and microarchitecture · 14%
Software engineering, system software, and programming languages
17 papers
Concurrent programming · 92% Runtime systems and virtual machines · 8%
Theoretical computer science
30 papers
Distributed computing theory · 83% Algorithms and data structures · 10% Computational complexity · 4%

Topics — the 30 heaviest of 126, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Machine learning › Efficient and distributed learning
model compression
2.642025
Wasserstein Distances, Neuronal Entanglement, and Sparsity · ICLR 2025
Sparsity in Deep Neural Nets (Keynote) · PPoPP 2024
On the Predictability of Pruning Across Scales · ICML 2021
Machine learning › Deep learning architectures and training
scaling laws
0.922021
On the Predictability of Pruning Across Scales · ICML 2021
A Constructive Prediction of the Generalization Error Across Scales · ICLR 2020
Machine learning › Trustworthy machine learning
interpretability
0.912025
Wasserstein Distances, Neuronal Entanglement, and Sparsity · ICLR 2025
Machine learning › Trustworthy machine learning › interpretability › neural network interpretation
neuron analysis
0.912025
Wasserstein Distances, Neuronal Entanglement, and Sparsity · ICLR 2025
Machine learning › Efficient and distributed learning › model compression
sparsity
0.812024
Sparsity in Deep Neural Nets (Keynote) · PPoPP 2024
Hardware accelerators and domain-specific architectures › machine learning accelerator › neural network accelerator
sparse neural network acceleration
0.812024
Sparsity in Deep Neural Nets (Keynote) · PPoPP 2024
Machine learning › Probabilistic and Bayesian machine learning › structured models
latent variable model
0.612022
Connectome-constrained Latent Variable Model of Whole-Brain Neural Activity · ICLR 2022
Machine learning › Trustworthy machine learning
uncertainty estimation
0.612022
Training-Free Uncertainty Estimation for Dense Regression: Sensitivity as a Surrogate · AAAI 2022
Bioinformatics and computational biology
computational neuroscience
0.612022
Connectome-constrained Latent Variable Model of Whole-Brain Neural Activity · ICLR 2022
Machine learning › Graph learning
graph generation
0.512021
HDMapGen: A Hierarchical Graph Generative Model of High Definition Maps · CVPR 2021
Robotics › Autonomous driving
HD map construction
0.512021
HDMapGen: A Hierarchical Graph Generative Model of High Definition Maps · CVPR 2021
Machine learning › Efficient and distributed learning › model compression › pruning
magnitude-based pruning
0.512021
On the Predictability of Pruning Across Scales · ICML 2021
Machine learning › Efficient and distributed learning › model compression
pruning
0.512021
On the Predictability of Pruning Across Scales · ICML 2021
Machine learning › Efficient and distributed learning › model compression › sparsity
activation sparsity
0.412020
Inducing and Exploiting Activation Sparsity for Fast Inference on Deep Neural Networks · ICML 2020
Machine learning › Learning theory
generalization error
0.412020
A Constructive Prediction of the Generalization Error Across Scales · ICLR 2020
Machine learning › Efficient and distributed learning
inference acceleration
0.412020
Inducing and Exploiting Activation Sparsity for Fast Inference on Deep Neural Networks · ICML 2020
Computer vision › 3D vision › point cloud processing
sparse convolution
0.412020
Inducing and Exploiting Activation Sparsity for Fast Inference on Deep Neural Networks · ICML 2020
Concurrent programming
synchronization
0.452015
Read-log-update: a lightweight synchronization mechanism for concurrent programming · SOSP 2015
NUMA-aware reader-writer locks · PPoPP 2013
Potential show-stoppers for transactional synchronization · PPoPP 2007
Distributed computing theory › concurrent objects
concurrent data structures
0.462014
The SkipTrie: low-depth concurrent search without rebalancing · PODC 2013
On the Inherent Sequentiality of Concurrent Objects · SIAM J. Comput. 2012
Are lock-free concurrent algorithms practically wait-free? · STOC 2014
Computer vision › Segmentation and scene understanding › biomedical image segmentation
connectomics segmentation
0.412019
Cross-Classification Clustering: An Efficient Multi-Object Tracking Technique for 3-D Instance Segmentation in Connectomics · CVPR 2019
Computer vision › Segmentation and scene understanding
instance segmentation
0.412019
Cross-Classification Clustering: An Efficient Multi-Object Tracking Technique for 3-D Instance Segmentation in Connectomics · CVPR 2019
Computer vision › Video understanding and tracking
multi-object tracking
0.412019
Cross-Classification Clustering: An Efficient Multi-Object Tracking Technique for 3-D Instance Segmentation in Connectomics · CVPR 2019
Concurrent programming
concurrent data structures
0.452015
The SprayList: a scalable relaxed priority queue · PPoPP 2015
Predictive log-synchronization · EuroSys 2006
Split-ordered lists: lock-free extensible hash tables · PODC 2003
Concurrent programming
transactional memory
0.442015
Reduced Hardware NOrec: A Safe and Scalable Hybrid Transactional Memory · ASPLOS 2015
Potential show-stoppers for transactional synchronization · PPoPP 2007
Leaplist: lessons learned in designing tm-supported range queries · PODC 2013
Parallel and multicore computing › concurrent programming
lock-free algorithms
0.322016
Are Lock-Free Concurrent Algorithms Practically Wait-Free? · J. ACM 2016
Split-ordered lists: Lock-free extensible hash tables · J. ACM 2006
Distributed computing theory › concurrent objects
wait-free hierarchy
0.332016
A Complexity-Based Hierarchy for Multiprocessor Synchronization: [Extended Abstract] · PODC 2016
On the inherent weakness of conditional synchronization primitives · PODC 2004
On the Space Complexity of Randomized Synchronization · PODC 1993
Parallel and multicore computing › concurrent programming
progress guarantees
0.322016
Are Lock-Free Concurrent Algorithms Practically Wait-Free? · J. ACM 2016
Brief announcement: are lock-free concurrent algorithms practically wait-free? · PODC 2014
Machine learning › Deep learning architectures and training › convolutional neural network › convolution design
3d convolution
0.312017
Deep Tensor Convolution on Multicores · ICML 2017
Machine learning › Deep learning architectures and training
convolutional neural network
0.312017
Deep Tensor Convolution on Multicores · ICML 2017
Runtime systems and virtual machines
garbage collection
0.312017
Forkscan: Conservative Memory Reclamation for Modern Operating Systems · EuroSys 2017

Methods — techniques the papers use, named apart from their topics

parallel algorithm · 1.5SIMD · 1.5latent variable model · 1.1wasserstein distance · 0.9sparsification · 0.9mixture of experts · 0.9hardware transactional memory · 0.6perturbation-based inference · 0.6dropout · 0.6bayesian approximation · 0.6autoregressive model · 0.5software transactional memory · 0.4randomized load balancing · 0.4probabilistic balancing · 0.3amortized expected analysis · 0.3winograd convolution · 0.3conservative garbage collection · 0.3cache-aware tiling · 0.3
YearPublicationVenuePosition
2025 Wasserstein Distances, Neuronal Entanglement, and Sparsity
abstract
Disentangling polysemantic neurons is at the core of many current approaches to interpretability of large language models. Here we attempt to study how disentanglement can be used to understand performance, particularly under weight sparsity, a leading post-training optimization technique. We suggest a novel measure for estimating neuronal entanglement: the Wasserstein distance of a neuron's output distribution to a Gaussian. Moreover, we show the existence of a small number of highly entangled "Wasserstein Neurons" in each linear layer of an LLM, characterized by their highly non-Gaussian output distributions, their role in mapping similar inputs to dissimilar outputs, and their significant impact on model accuracy. To study these phenomena, we propose a new experimental framework for disentangling polysemantic neurons. Our framework separates each layer's inputs to create a mixture of experts where each neuron's output is computed by a mixture of neurons of lower Wasserstein distance, each better at maintaining accuracy when sparsified without retraining. We provide strong evidence that this is because the mixture of sparse experts is effectively disentangling the input-output relationship of individual neurons, in particular the difficult Wasserstein neurons.
Shashata Sawmya, Linghao Kong, Ilia Markov, Dan Alistarh, Nir Shavit
ICLR5
2025 A connectomics-driven analysis reveals novel characterization of border regions in mouse visual cortex
Neehal Tumma, Linghao Kong, Shashata Sawmya, Tony T. Wang 0001, Nir Shavit
Neural Networks5
2024 Sparsity in Deep Neural Nets (Keynote)
abstract
Our brain executes very sparse computation, allowing for great speed and energy savings. Deep neural networks can also be made to exhibit high levels of sparsity without significant accuracy loss. As their size grows, it is becoming imperative that we use sparsity to improve their efficiency. This is a challenging task because the memory systems and SIMD operations that dominate todays CPUs and GPUs do not lend themselves easily to the irregular data patterns sparsity introduces. This talk will survey the role of sparsity in neural network computation, and the parallel algorithms and hardware features that nevertheless allow us to make effective use of it.
Nir Shavit
PPoPP1
2022 Training-Free Uncertainty Estimation for Dense Regression: Sensitivity as a Surrogate
abstract
Uncertainty estimation is an essential step in the evaluation of the robustness for deep learning models in computer vision, especially when applied in risk-sensitive areas. However, most state-of-the-art deep learning models either fail to obtain uncertainty estimation or need significant modification (e.g., formulating a proper Bayesian treatment) to obtain it. Most previous methods are not able to take an arbitrary model off the shelf and generate uncertainty estimation without retraining or redesigning it. To address this gap, we perform a systematic exploration into training-free uncertainty estimation for dense regression, an unrecognized yet important problem, and provide a theoretical construction justifying such estimations. We propose three simple and scalable methods to analyze the variance of outputs from a trained network under tolerable perturbations: infer-transformation, infer-noise, and infer-dropout. They operate solely during the inference, without the need to re-train, re-design, or fine-tune the models, as typically required by state-of-the-art uncertainty estimation methods. Surprisingly, even without involving such perturbations in training, our methods produce comparable or even better uncertainty estimation when compared to training-required state-of-the-art methods. Code is available at https://github.com/lumi9587/train-free-uncertainty.
Lu Mi, Hao Wang 0014, Yonglong Tian, Hao He 0011, Nir Shavit
AAAI5
2022 Connectome-constrained Latent Variable Model of Whole-Brain Neural Activity
Lu Mi, Sridhama Prakhya, Nir Shavit, Aravinthan D. T. Samuel, Srinivas C. Turaga
ICLR5
2021 HDMapGen: A Hierarchical Graph Generative Model of High Definition Maps
abstract
High Definition (HD) maps are maps with precise definitions of road lanes with rich semantics of the traffic rules. They are critical for several key stages in an autonomous driving system, including motion forecasting and planning. However, there are only a small amount of real-world road topologies and geometries, which significantly limits our ability to test out the self-driving stack to generalize onto new unseen scenarios. To address this issue, we introduce a new challenging task to generate HD maps. In this work, we explore several autoregressive models using different data representations, including sequence, plain graph, and hierarchical graph. We propose HDMapGen, a hierarchical graph generation model capable of producing high-quality and diverse HD maps through a coarse-to-fine approach. Experiments on the Argoverse dataset and an inhouse dataset show that HDMapGen significantly outperforms baseline methods. Additionally, we demonstrate that HDMapGen achieves high scalability and efficiency.
Lu Mi, Hang Zhao 0021, Charlie Nash, Xiaohan Jin, Jiyang Gao, Chen Sun 0002, Cordelia Schmid, Nir Shavit, Yuning Chai, Dragomir Anguelov
CVPR8
2021 On the Predictability of Pruning Across Scales
abstract
We show that the error of iteratively magnitude-pruned networks empirically follows a scaling law with interpretable coefficients that depend on the architecture and task. We functionally approximate the error of the pruned networks, showing it is predictable in terms of an invariant tying width, depth, and pruning level, such that networks of vastly different pruned densities are interchangeable. We demonstrate the accuracy of this approximation over orders of magnitude in depth, width, dataset size, and density. We show that the functional form holds (generalizes) for large scale data (e.g., ImageNet) and architectures (e.g., ResNets). As neural networks become ever larger and costlier to train, our findings suggest a framework for reasoning conceptually and analytically about a standard method for unstructured pruning.
Jonathan S. Rosenfeld, Jonathan Frankle, Michael Carbin, Nir Shavit
ICML4
2020 A Constructive Prediction of the Generalization Error Across Scales
Jonathan S. Rosenfeld, Amir Rosenfeld, Yonatan Belinkov, Nir Shavit
ICLR4
2020 Inducing and Exploiting Activation Sparsity for Fast Inference on Deep Neural Networks
abstract
Optimizing convolutional neural networks for fast inference has recently become an extremely active area of research. One of the go-to solutions in this context is weight pruning, which aims to reduce computational and memory footprint by removing large subsets of the connections in a neural network. Surprisingly, much less attention has been given to exploiting sparsity in the activation maps, which tend to be naturally sparse in many settings thanks to the structure of rectified linear (ReLU) activation functions. In this paper, we present an in-depth analysis of methods for maximizing the sparsity of the activations in a trained neural network, and show that, when coupled with an efficient sparse-input convolution algorithm, we can leverage this sparsity for significant performance gains. To induce highly sparse activation maps without accuracy loss, we introduce a new regularization technique, coupled with a new threshold-based sparsification method based on a parameterized activation function called Forced-Activation-Threshold Rectified Linear Unit (FATReLU). We examine the impact of our methods on popular image classification models, showing that most architectures can adapt to significantly sparser activation maps without any accuracy loss. Our second contribution is showing that these these compression gains can be translated into inference speedups: we provide a new algorithm to enable fast convolution operations over networks with sparse activations, and show that it can enable significant speedups for end-to-end inference on a range of popular models on the large-scale ImageNet image classification task on modern Intel CPUs, with little or no retraining cost.
Mark Kurtz, Justin Kopinsky, Rati Gelashvili, Alexander Matveev, John Carr, Michael Goin, William M. Leiserson, Sage Moore, Nir Shavit, Dan Alistarh
ICML9
2020 Learning Guided Electron Microscopy with Active Acquisition
Lu Mi, Hao Wang 0014, Yaron Meirovitch, Richard Schalek, Srinivas C. Turaga, Jeff Lichtman, Aravinthan D. T. Samuel, Nir Shavit
MICCAI (5)8
2020 A complexity-based classification for multiprocessor synchronization
Faith Ellen, Rati Gelashvili, Nir Shavit, Leqi Zhu
Distributed Comput.3
2019 Cross-Classification Clustering: An Efficient Multi-Object Tracking Technique for 3-D Instance Segmentation in Connectomics
abstract
Pixel-accurate tracking of objects is a key element in many computer vision applications, often solved by iterated individual object tracking or instance segmentation followed by object matching. Here we introduce cross-classification clustering (3C), a technique that simultaneously tracks complex, interrelated objects in an image stack. The key idea in cross-classification is to efficiently turn a clustering problem into a classification problem by running a logarithmic number of independent classifications per image, letting the cross-labeling of these classifications uniquely classify each pixel to the object labels. We apply the 3C mechanism to achieve state-of-the-art accuracy in connectomics - the nanoscale mapping of neural tissue from electron microscopy volumes. Our reconstruction system increases scalability by an order of magnitude over existing single-object tracking methods (such as flood-filling networks). This scalability is important for the deployment of connectomics pipelines, since currently the best performing techniques require computing infrastructures that are beyond the reach of most laboratories. Our algorithm may offer benefits in other domains that require pixel-accurate tracking of multiple objects, such as segmentation of videos and medical imagery.
Yaron Meirovitch, Lu Mi, Hayk Saribekyan, Alexander Matveev, David Rolnick, Nir Shavit
CVPR6
2018 Generative Compression
abstract
Traditional image and video compression algorithms rely on hand-crafted encoder/decoder pairs (codecs) that lack adaptability and are agnostic to the data being compressed. We describe the concept of generative compression, the compression of data using generative models, and suggest that it is a direction worth pursuing to produce more accurate and visually pleasing reconstructions at deeper compression levels for both image and video data. We also show that generative compression is orders- of-magnitude more robust to bit errors (e.g., from noisy channels) than traditional variable-length coding schemes.
Shibani Santurkar, David M. Budden, Nir Shavit
PCS3
2018 Inherent limitations of hybrid transactional memory
Dan Alistarh, Justin Kopinsky, Petr Kuznetsov, Srivatsan Ravi, Nir Shavit
Distributed Comput.5
2017 Forkscan: Conservative Memory Reclamation for Modern Operating Systems
abstract
The problem of efficient concurrent memory reclamation in unmanaged languages such as C or C++ is one of the major challenges facing the parallelization of billions of lines of legacy code. Garbage collectors for C/C++ can be inefficient; thus, programmers are often forced to use finely-crafted concurrent memory reclamation techniques. These techniques can provide good performance, but require considerable programming effort to deploy, and have strict requirements, allowing the programmer very little room for error.
Dan Alistarh, William M. Leiserson, Alexander Matveev, Nir Shavit
EuroSys4
2017 Deep Tensor Convolution on Multicores
abstract
Deep convolutional neural networks (ConvNets) of 3-dimensional kernels allow joint modeling of spatiotemporal features. These networks have improved performance of video and volumetric image analysis, but have been limited in size due to the low memory ceiling of GPU hardware. Existing CPU implementations overcome this constraint but are impractically slow. Here we extend and optimize the faster Winograd-class of convolutional algorithms to the $N$-dimensional case and specifically for CPU hardware. First, we remove the need to manually hand-craft algorithms by exploiting the relaxed constraints and cheap sparse access of CPU memory. Second, we maximize CPU utilization and multicore scalability by transforming data matrices to be cache-aware, integer multiples of AVX vector widths. Treating 2-dimensional ConvNets as a special (and the least beneficial) case of our approach, we demonstrate a 5 to 25-fold improvement in throughput compared to previous state-of-the-art.
David M. Budden, Alexander Matveev, Shibani Santurkar, Shraman Ray Chaudhuri, Nir Shavit
ICML5
2017 A Multicore Path to Connectomics-on-Demand
abstract
The current design trend in large scale machine learning is to use distributed clusters of CPUs and GPUs with MapReduce-style programming. Some have been led to believe that this type of horizontal scaling can reduce or even eliminate the need for traditional algorithm development, careful parallelization, and performance engineering. This paper is a case study showing the contrary: that the benefits of algorithms, parallelization, and performance engineering, can sometimes be so vast that it is possible to solve "cluster-scale" problems on a single commodity multicore machine.
Alexander Matveev, Yaron Meirovitch, Hayk Saribekyan, Wiktor Jakubiuk, Tim Kaler, Gergely Ódor, David M. Budden, Aleksandar Zlateski, Nir Shavit
PPoPP9
2016 High Throughput Connectomics (Keynote Abstract)
abstract
Connectomics is an emerging field of neurobiology that uses cutting edge machine learning and image processing to extract brain connectivity graphs from electron microscopy images. It has long been assumed that the processing of connectomics data will require mass storage and farms of CPUs and GPUs and will take months if not years. This talk will discuss the feasibility of designing a high-throughput connectomics-on-demand system that runs on a multicore machine with less than 100 cores and extracts connectomes at the terabyte per hour pace of modern electron microscopes. Building this system required solving algorithmic and performance engineering issues related to scaling machine learning on multicore architectures, and may have important lessons for other problem spaces in the natural sciences, where until now large distributed server or GPU farms seemed to be the only way to go.
Nir Shavit
OPODIS1
2016 A Complexity-Based Hierarchy for Multiprocessor Synchronization: [Extended Abstract]
abstract
For many years, Herlihy's elegant computability based Consensus Hierarchy has been our best explanation of the relative power of various types of multiprocessor synchronization objects when used in deterministic algorithms. However, key to this hierarchy is treating these instructions as distinct objects, an approach that is far from the real-world, where multiprocessor programs apply synchronization instructions to collections of arbitrary memory locations. We were surprised to realize that, when considering instructions applied to memory locations, the computability based hierarchy collapses. This leaves open the question of how to better captures the power of various synchronization instructions.
Faith Ellen, Rati Gelashvili, Nir Shavit, Leqi Zhu
PODC3
2016 A Multicore Path to Connectomics-on-Demand
abstract
Connectomics is an emerging field of neurobiology that uses cutting edge machine learning and image processing to extract brain connectivity graphs from electron microscopy images. It has long been assumed that the processing of connectomics data will require mass storage and farms of CPUs and GPUs and will take months if not years. This talk shows the feasibility of designing a high-throughput connectomics-on-demand system that runs on a multicore machine with less than 100 cores and extracts connectomes at the terabyte per hour pace of modern electron microscopes. Building this system required solving algorithmic and performance engineering issues related to scaling machine learning on multicore architectures, and may have important lessons for other problem spaces in the natural sciences, where until now large distributed server or GPU farms seemed to be the only way to go.
Nir Shavit
SPAA1
2016 The computability of relaxed data structures: queues and stacks as examples
Nir Shavit, Gadi Taubenfeld
Distributed Comput.1
2016 Are Lock-Free Concurrent Algorithms Practically Wait-Free?
abstract
Lock-free concurrent algorithms guarantee that some concurrent operation will always make progress in a finite number of steps. Yet programmers prefer to treat concurrent code as if it were wait-free, guaranteeing that all operations always make progress. Unfortunately, designing wait-free algorithms is generally a very complex task, and the resulting algorithms are not always efficient. Although obtaining efficient wait-free algorithms has been a long-time goal for the theory community, most nonblocking commercial code is only lock-free. This article suggests a simple solution to this problem. We show that for a large class of lock-free algorithms, under scheduling conditions that approximate those found in commercial hardware architectures, lock-free algorithms behave as if they are wait-free. In other words, programmers can continue to design simple lock-free algorithms instead of complex wait-free ones, and in practice, they will get wait-free progress. Our main contribution is a new way of analyzing a general class of lock-free algorithms under a stochastic scheduler. Our analysis relates the individual performance of processes to the global performance of the system using Markov chain lifting between a complex per-process chain and a simpler system progress chain. We show that lock-free algorithms are not only wait-free with probability 1 but that in fact a general subset of lock-free algorithms can be closely bounded in terms of the average number of steps required until an operation completes. To the best of our knowledge, this is the first attempt to analyze progress conditions, typically stated in relation to a worst-case adversary, in a stochastic model capturing their expected asymptotic behavior.
Dan Alistarh, Keren Censor-Hillel, Nir Shavit
J. ACM3
2015 Reduced Hardware NOrec: A Safe and Scalable Hybrid Transactional Memory
abstract
Because of hardware TM limitations, software fallbacks are the only way to make TM algorithms guarantee progress. Nevertheless, all known software fallbacks to date, from simple locks to sophisticated versions of the NOrec Hybrid TM algorithm, have either limited scalability or weakened semantics. We propose a novel reduced-hardware (RH) version of the NOrec HyTM algorithm. Instead of an all-software slow path, in our RH NOrec the slow-path is a "mix" of hardware and software: one short hardware transaction executes a maximal amount of initial reads in the hardware, and the second executes all of the writes. This novel combination of the RH approach and the NOrec algorithm delivers the first Hybrid TM that scales while fully preserving the hardware's original semantics of opacity and privatization.
Alexander Matveev, Nir Shavit
ASPLOS2
2015 The SprayList: a scalable relaxed priority queue
abstract
High-performance concurrent priority queues are essential for applications such as task scheduling and discrete event simulation. Unfortunately, even the best performing implementations do not scale past a number of threads in the single digits. This is because of the sequential bottleneck in accessing the elements at the head of the queue in order to perform a DeleteMin operation. In this paper, we present the SprayList, a scalable priority queue with relaxed ordering semantics. Starting from a non-blocking SkipList, the main innovation behind our design is that the DeleteMin operations avoid a sequential bottleneck by ``spraying'' themselves onto the head of the SkipList list in a coordinated fashion. The spraying is implemented using a carefully designed random walk, so that DeleteMin returns an element among the first O(p log^3 p) in the list, with high probability, where p is the number of threads. We prove that the running time of a DeleteMin operation is O(log^3 p), with high probability, independent of the size of the list. Our experiments show that the relaxed semantics allow the data structure to scale for high thread counts, comparable to a classic unordered SkipList. Furthermore, we observe that, for reasonably parallel workloads, the scalability benefits of relaxation considerably outweigh the additional work due to out-of-order execution.
Dan Alistarh, Justin Kopinsky, Jerry Li 0001, Nir Shavit
PPoPP4
2015 The Computability of Relaxed Data Structures: Queues and Stacks as Examples
Nir Shavit, Gadi Taubenfeld
SIROCCO1
2015 Read-log-update: a lightweight synchronization mechanism for concurrent programming
abstract
This paper introduces read-log-update (RLU), a novel extension of the popular read-copy-update (RCU) synchronization mechanism that supports scalability of concurrent code by allowing unsynchronized sequences of reads to execute concurrently with updates. RLU overcomes the major limitations of RCU by allowing, for the first time, concurrency of reads with multiple writers, and providing automation that eliminates most of the programming difficulty associated with RCU programming. At the core of the RLU design is a logging and coordination mechanism inspired by software transactional memory algorithms. In a collection of micro-benchmarks in both the kernel and user space, we show that RLU both simplifies the code and matches or improves on the performance of RCU. As an example of its power, we show how it readily scales the performance of a real-world application, Kyoto Cabinet, a truly difficult concurrent programming feat to attempt in general, and in particular with classic RCU.
Alexander Matveev, Nir Shavit, Pascal Felber, Patrick Marlier
SOSP2
2015 ThreadScan: Automatic and Scalable Memory Reclamation
abstract
The concurrent memory reclamation problem is that of devising a way for a deallocating thread to verify that no other concurrent threads hold references to a memory block being deallocated. To date, in the absence of automatic garbage collection, there is no satisfactory solution to this problem. Existing tracking methods like hazard pointers, reference counters, or epoch-based techniques like RCU, are either prohibitively expensive or require significant programming expertise, to the extent that implementing them efficiently can be worthy of a publication. None of the existing techniques are automatic or even semi-automated. In this paper, we take a new approach to concurrent memory reclamation: instead of manually tracking access to memory locations as done in techniques like hazard pointers, or restricting shared accesses to specific epoch boundaries as in RCU, our algorithm, called ThreadScan, leverages operating system signaling to automatically detect which memory locations are being accessed by concurrent threads. Initial empirical evidence shows that ThreadScan scales surprisingly well and requires negligible programming effort beyond the standard use of Malloc and Free.
Dan Alistarh, William M. Leiserson, Alexander Matveev, Nir Shavit
SPAA4
2015 Amalgamated Lock-Elision
Yehuda Afek, Alexander Matveev, Oscar R. Moll Thomae, Nir Shavit
DISC4
2015 Inherent Limitations of Hybrid Transactional Memory
Dan Alistarh, Justin Kopinsky, Petr Kuznetsov, Srivatsan Ravi, Nir Shavit
DISC5
2014 StackTrack: an automated transactional approach to concurrent memory reclamation
abstract
Dynamic memory reclamation is arguably the biggest open problem in concurrent data structure design: all known solutions induce high overhead, or must be customized to the specific data structure by the programmer, or both. This paper presents StackTrack, the first concurrent memory reclamation scheme that can be applied automatically by a compiler, while maintaining efficiency. StackTrack eliminates most of the expensive bookkeeping required for memory reclamation by leveraging the power of hardware transactional memory (HTM) in a new way: it tracks thread variables dynamically, and in an atomic fashion. This effectively makes all memory references visible without having threads pay the overhead of writing out this information. Our empirical results show that this new approach matches or outperforms prior, non-automated, techniques.
Dan Alistarh, Patrick Eugster, Maurice Herlihy, Alexander Matveev, Nir Shavit
EuroSys5
2014 The LevelArray: A Fast, Practical Long-Lived Renaming Algorithm
abstract
The long-lived renaming problem appears in shared-memory systems where a set of threads need to register and deregister frequently from the computation, while concurrent operations scan the set of currently registered threads. Instances of this problem show up in concurrent implementations of transactional memory, flat combining, thread barriers, and memory reclamation schemes for lock-free data structures. In this paper, we analyze a randomized solution for long-lived renaming. The algorithmic technique we consider, called the Level Array, has previously been used for hashing and one-shot (single-use) renaming. Our main contribution is to prove that, in long-lived executions, where processes may register and deregister polynomially many times, the technique guarantees constant steps on average and O (log log n) steps with high probability for registering, unit cost for deregistering, and O (n) steps for collect queries, where n is an upper bound on the number of processes that may be active at any point in time. We also show that the algorithm has the surprising property that it is self-healing: under reasonable assumptions on the schedule, operations running while the data structure is in a degraded state implicitly help the data structure re-balance itself. This subtle mechanism obviates the need for expensive periodic rebuilding procedures. Our benchmarks validate this approach, showing that, for typical use parameters, the average number of steps a process takes to register is less than two and the worst-case number of steps is bounded by six, even in executions with billions of operations. We contrast this with other randomized implementations, whose worst-case behavior we show to be unreliable, and with deterministic implementations, whose cost is linear in n.
Dan Alistarh, Justin Kopinsky, Alexander Matveev, Nir Shavit
ICDCS4
2014 On the Importance of Registers for Computability
Rati Gelashvili, Mohsen Ghaffari 0001, Jerry Li 0001, Nir Shavit
OPODIS4
2014 Brief announcement: are lock-free concurrent algorithms practically wait-free?
abstract
Lock-free concurrent algorithms guarantee that some concurrent operation will always make progress in a finite number of steps. Yet programmers prefer to treat concurrent code as if it were wait-free, guaranteeing that all operations always make progress. Unfortunately, designing wait-free algorithms is generally a very complex task, and the resulting algorithms are not always efficient. While obtaining efficient wait-free algorithms has been a long-time goal for the theory community, most non-blocking commercial code is only lock-free.
Dan Alistarh, Keren Censor-Hillel, Nir Shavit
PODC3
2014 Balls-into-leaves: sub-logarithmic renaming in synchronous message-passing systems
abstract
We consider the following natural problem: n failure-prone servers, communicating synchronously through message passing, must assign themselves one-to-one to n distinct items. Existing literature suggests two possible approaches to this problem. First, model it as an instance of tight renaming in synchronous message-passing systems; for deterministic solutions, a tight bound of Θ(log n) communication rounds is known. Second, model the scenario as an instance of randomized load-balancing, for which elegant sub-logarithmic solutions exist. However, careful examination reveals that known load-balancing schemes do not apply to our scenario, because they either do not tolerate faults or do not ensure one-to-one allocation. It is thus natural to ask if sub-logarithmic solutions exist for this apparently simple but intriguing problem.
Dan Alistarh, Oksana Denysyuk, Luís E. T. Rodrigues, Nir Shavit
PODC4
2014 Brief announcement: persistent unfairness arising from cache residency imbalance
abstract
We describe a counter-intuitive performance phenomena relevant to concurrency research. On a modern multicore system with a shared last-level cache, a set of concurrently running identical threads that loop -- each accessing the same quantity of distinct thread-private data -- can suffer significant relative progress imbalance. If one thread, or a small subset of the threads, manages to transiently enjoy higher cache residency than the other threads, that thread will tend to iterate faster and keep more of its data resident, thus increasing the odds that it will continue to run faster. This emergent behavior tends to be stable over surprisingly long periods.
David Dice, Virendra J. Marathe, Nir Shavit
SPAA3
2014 Are lock-free concurrent algorithms practically wait-free?
abstract
Lock-free concurrent algorithms guarantee that some concurrent operation will always make progress in a finite number of steps. Yet programmers prefer to treat concurrent code as if it were wait-free, guaranteeing that all operations always make progress. Unfortunately, designing wait-free algorithms is generally a very complex task, and the resulting algorithms are not always efficient. While obtaining efficient wait-free algorithms has been a long-time goal for the theory community, most non-blocking commercial code is only lock-free.
Dan Alistarh, Keren Censor-Hillel, Nir Shavit
STOC3
2013 Leaplist: lessons learned in designing tm-supported range queries
abstract
We introduce Leaplist, a concurrent data-structure that is tailored to provide linearizable range queries. A lookup in Leaplist takes O (log n) and is comparable to a balanced binary search tree or to a Skiplist. However, in Leaplist, each node holds up-to K immutable key-value pairs, so collecting a linearizable range is K times faster than the same operation performed non-linearizably on a Skiplist.
Hillel Avni, Nir Shavit, Adi Suissa
PODC2
2013 The SkipTrie: low-depth concurrent search without rebalancing
abstract
To date, all concurrent search structures that can support predecessor queries have had depth logarithmic in m, the number of elements. This paper introduces the SkipTrie, a new concurrent search structure supporting predecessor queries in amortized expected O(log log u + c) steps, insertions and deletions in O(c log log u), and using O(m) space, where u is the size of the key space and c is the contention during the recent past. The SkipTrie is a probabilistically-balanced version of a y-fast trie consisting of a very shallow skiplist from which randomly chosen elements are inserted into a hash-table based x-fast trie. By inserting keys into the x-fast-trie probabilistically, we eliminate the need for rebalancing, and can provide a lock-free linearizable implementation. To the best of our knowledge, our proof of the amortized expected performance of the SkipTrie is the first such proof for a tree-based data structure.
Rotem Oshman, Nir Shavit
PODC2
2013 NUMA-aware reader-writer locks
abstract
Non-Uniform Memory Access (NUMA) architectures are gaining importance in mainstream computing systems due to the rapid growth of multi-core multi-chip machines. Extracting the best possible performance from these new machines will require us to revisit the design of the concurrent algorithms and synchronization primitives which form the building blocks of many of today's applications. This paper revisits one such critical synchronization primitive -- the reader-writer lock.
Irina Calciu, David Dice, Yossi Lev, Victor Luchangco, Virendra J. Marathe, Nir Shavit
PPoPP6
2013 Reduced hardware transactions: a new approach to hybrid transactional memory
abstract
For many years, the accepted wisdom has been that the key to adoption of best-effort hardware transactions is to guarantee progress by combining them with an all software slow-path, to be taken if the hardware transactions fail repeatedly. However, all known generally applicable hybrid transactional memory solutions suffer from a major drawback: the coordination with the software slow-path introduces an unacceptably high instrumentation overhead into the hardware transactions.
Alexander Matveev, Nir Shavit
SPAA2
2012 Lock cohorting: a general technique for designing NUMA locks
abstract
Multicore machines are quickly shifting to NUMA and CC-NUMA architectures, making scalable NUMA-aware locking algorithms, ones that take into account the machines' non-uniform memory and caching hierarchy, ever more important. This paper presents lock cohorting, a general new technique for designing NUMA-aware locks that is as simple as it is powerful.
David Dice, Virendra J. Marathe, Nir Shavit
PPoPP3
2012 Pessimistic Software Lock-Elision
Yehuda Afek, Alexander Matveev, Nir Shavit
DISC3
2012 Interrupting snapshots and the Java size method
Yehuda Afek, Nir Shavit, Moran Tzafrir
J. Parallel Distributed Comput.2
2012 On the Inherent Sequentiality of Concurrent Objects
abstract
We present $\Omega(n)$ lower bounds on the worst case time to perform a single instance of an operation in any nonblocking implementation of a large class of concurrent data structures shared by n processes. Time is measured by the number of stalls a process incurs as a result of contention with other processes. For standard data structures such as counters, stacks, and queues, our bounds are tight. The implementations considered may apply any primitives to a base object. No upper bounds are assumed on either the number of base objects or their size.
Faith Ellen, Danny Hendler, Nir Shavit
SIAM J. Comput.3
2011 Towards Consistency Oblivious Programming
Yehuda Afek, Hillel Avni, Nir Shavit
OPODIS3
2011 On the Nature of Progress
Maurice Herlihy, Nir Shavit
OPODIS2
2011 Flat-combining NUMA locks
abstract
Multicore machines are growing in size, and accordingly shifting from simple bus-based designs to NUMA and CCNUMA architectures. With this shift, the need for scalable hierarchical locking algorithms is becoming crucial to performance. This paper presents a novel scalable hierarchical queue-lock algorithm based on the flat combining synchronization paradigm. At the core of the new algorithm is a scheme for building local queues of waiting threads in a highly efficient manner, and then merging them globally, all with little interconnect traffic and virtually no costly synchronization operations in the common case. In empirical testing on an Oracle SPARC Enterprise T5440 Server, a 256-way CC-NUMA machine, our new flat-combining hierarchical lock significantly outperforms all classic locking algorithms, and at high concurrency levels, provides up to a factor of two improvement over HCLH, the most efficient known hierarchical locking algorithm.
David Dice, Virendra J. Marathe, Nir Shavit
SPAA3
2010 Scalable Producer-Consumer Pools Based on Elimination-Diffraction Trees
Yehuda Afek, Guy Korland, Maria Natanzon, Nir Shavit
Euro-Par (2)4
2010 Transactional Mutex Locks
Luke Dalessandro, David Dice, Michael L. Scott, Nir Shavit, Michael F. Spear
Euro-Par (2)4
2010 Efficient Lock Free Privatization
Yehuda Afek, Hillel Avni, David Dice, Nir Shavit
OPODIS4
2010 TLRW: return of the read-write lock
abstract
TL2 and similar STM algorithms deliver high scalability based on write-locking and invisible readers. In fact, no modern STM design locks to read along its common execution path because doing so would require a memory synchronization operation that would greatly hamper performance.
David Dice, Nir Shavit
SPAA2
2010 Flat combining and the synchronization-parallelism tradeoff
abstract
Traditional data structure designs, whether lock-based or lock-free, provide parallelism via fine grained synchronization among threads.
Danny Hendler, Itai Incze, Nir Shavit, Moran Tzafrir
SPAA3
2010 Scalable Flat-Combining Based Synchronous Queues
Danny Hendler, Itai Incze, Nir Shavit, Moran Tzafrir
DISC3
2010 A scalable lock-free stack algorithm
Danny Hendler, Nir Shavit, Lena Yerushalmi
J. Parallel Distributed Comput.2
2009 Software transactional memory: Where do we come from? What are we? Where are we going?
abstract
The transactional memory programming paradigm is gaining momentum as the approach of choice for replacing locks in concurrent programming. Combining sequences of concurrent operations into atomic transactions seems to promise a great reduction in the complexity of both programming and verification, by making parts of the code appear to be sequential without the need to program fine-grained locks. Software transactional memory offers to deliver a transactional programming environment without the need for costly modifications in processor design. However, the story of software transactional memory reminds one of garbage collection in its time: performance is improving, and the semantics are becoming clearer, yet there is still a long road ahead, a road strewn with stones below and crows hovering above, predicting its demise. This talk will try to take a sober look at software transactional memory, its history, the state of research today, and what we can expect to achieve it in the foreseeable future.
Nir Shavit
IPDPS1
2009 Interrupting Snapshots and the JavaTM^{\mbox{\tiny TM}} Size() Method
Yehuda Afek, Nir Shavit, Moran Tzafrir
DISC2
2009 Nonblocking k -Compare-Single-Swap
Victor Luchangco, Mark Moir, Nir Shavit
Theory Comput. Syst.3
2008 Maintaining Consistent Transactional States without a Global Clock
Hillel Avni, Nir Shavit
SIROCCO2
2008 Hopscotch Hashing
Maurice Herlihy, Nir Shavit, Moran Tzafrir
DISC2
2008 Solo-valency and the cost of coordination
Danny Hendler, Nir Shavit
Distributed Comput.2
2008 An optimistic approach to lock-free FIFO queues
Edya Ladan-Mozes, Nir Shavit
Distributed Comput.2
2007 Understanding Tradeoffs in Software Transactional Memory
abstract
There has been a flurry of recent work on the design of high performance software and hybrid hardware/software transactional memories (STMs and HyTMs). This paper re-examines the design decisions behind several of these state-of-the-art algorithms, adopting some ideas, rejecting others, all in an attempt to make STMs faster. We created the transactional locking (TL) framework of STM algorithms and used it to conduct a range of comparisons of the performance of non-blocking, lock-based, and Hybrid STM algorithms versus fine-grained hand-crafted ones. We were able to make several illuminating observations regarding lock acquisition order, the interaction of STMs with memory management schemes, and the role of overheads and abort rates in STM performance
David Dice, Nir Shavit
CGO2
2007 Topic 12 Theory and Algorithms for Parallel Computation
Nir Shavit, Nicolas Schabanel, Pascal Felber, Christos Kaklamanis
Euro-Par1
2007 The Baskets Queue
Moshe Hoffman, Ori Shalev, Nir Shavit
OPODIS3
2007 Potential show-stoppers for transactional synchronization
abstract
No abstract available.
Ali-Reza Adl-Tabatabai, David Dice, Maurice Herlihy, Nir Shavit, Christoforos E. Kozyrakis, Christoph von Praun, Michael L. Scott
PPoPP4
2007 A Simple Optimistic Skiplist Algorithm
Maurice Herlihy, Yossi Lev, Victor Luchangco, Nir Shavit
SIROCCO4
2006 A Hierarchical CLH Queue Lock
Victor Luchangco, Daniel Nussbaum, Nir Shavit
Euro-Par3
2006 Predictive log-synchronization
abstract
This paper proposes predictive log-synchronization, an alternative paradigm to the software transactional memory approach for simplifying the design of concurrent data structures. Predictive log-synchronization simplifies concurrent programming and program verification by requiring programmers to write only specialized sequential code. This sequential code is then automatically transformed into a non-blocking concurrent program in which threads coordinate all data structure operations via a shared lock-controlled log. The non-blocking progress property is achieved by having threads that fail to acquire the lock predict the outcome of their operations by reading the log and state and computing the effect of these operations without modifying the actual data structure.Log-synchronization is founded on the belief (at this point unsubstantiated by statistical data) that in many concurrent data structures used in real-world applications, the ratio of high level operations that modify the structure to ones that simply read it, greatly favors read-only operations, and what's more, that many natural data structures have inherent sequential bottlenecks limiting the concurrency among operations that modify the structure. It follows that delegating all data structure modifications to a single lock-controlled thread at a time will not significantly harm the throughput of modifying operations. Moreover, as we show, it can boost read-only throughput by significantly reducing the overhead of coordination among concurrent operations, and provides a way to simplify concurrent data structures.Initial experimental testing using a Java-based implementation of predictive log-synchronization showed that a log-synchronized concurrent red-black tree is up to five times faster than a simple lock-based one. This paper presents our current understanding of the advantages, drawbacks, and scope of predictive log-synchronization.
Ori Shalev, Nir Shavit
EuroSys2
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
IPDPS3
2006 Transactional Locking II
David Dice, Ori Shalev, Nir Shavit
DISC3
2006 On the inherent weakness of conditional primitives
Faith Ellen, Danny Hendler, Nir Shavit
Distributed Comput.3
2006 A dynamic-sized nonblocking work stealing deque
Danny Hendler, Yossi Lev, Mark Moir, Nir Shavit
Distributed Comput.4
2006 Split-ordered lists: Lock-free extensible hash tables
abstract
We present the first lock-free implementation of an extensible hash table running on current architectures. Our algorithm provides concurrent insert, delete, and find operations with an expected O (1) cost. It consists of very simple code, easily implementable using only load, store, and compare-and-swap operations. The new mathematical structure at the core of our algorithm is recursive split-ordering , a way of ordering elements in a linked list so that they can be repeatedly “split” using a single compare-and-swap operation. Metaphorically speaking, our algorithm differs from prior known algorithms in that extensibility is derived by “moving the buckets among the items” rather than “the items among the buckets.” Though lock-free algorithms are expected to work best in multiprogrammed environments, empirical tests we conducted on a large shared memory multiprocessor show that even in non-multiprogrammed environments, the new algorithm performs as well as the most efficient known lock-based resizable hash-table algorithm, and in high load cases it significantly outperforms it.
Ori Shalev, Nir Shavit
J. ACM2
2006 Virtual Leashing: Creating a computational foundation for software protection
Ori Dvir, Maurice Herlihy, Nir Shavit
J. Parallel Distributed Comput.3
2006 Toward a Topological Characterization of Asynchronous Complexity
abstract
This paper introduces the use of topological models and methods, formerly used to analyze computability, as tools for the quantification and classification of asynchronous complexity. We present the first asynchronous complexity theorem, applied to decision tasks in the iterated immediate snapshot (IIS) model of Borowsky and Gafni. We do so by introducing a novel form of topological tool called the nonuniform chromatic subdivision. Building on the framework of Herlihy and Shavit’s topological computability model, our theorem states that the time complexity of any asynchronous algorithm is directly proportional to the level of nonuniform chromatic subdivisions necessary to allow a simplicial map from a task’s input complex to its output complex. To show the power of our theorem, we use it to derive a new tight bound on the time to achieve n process approximate agreement in the IIS model: $\bigl\lceil \log_d \frac{\max\_input - \min\_input}{\epsilon} \bigr\rceil$, where $d = 3$ for two processes and $d = 2$ for three or more. This closes an intriguing gap between the known upper and lower bounds implied by the work of Aspnes and Herlihy. More than the new bounds themselves, the importance of our asynchronous complexity theorem is that the algorithms and lower bounds it allows us to derive are intuitive and simple, with topological proofs that require no mention of concurrency at all.
Gunnar Hoest, Nir Shavit
SIAM J. Comput.2
2005 Linear Lower Bounds on Real-World Implementations of Concurrent Objects
abstract
This paper proves /spl Omega/(n) lower bounds on the time to perform a single instance of an operation in any implementation of a large class of data structures shared by n processes. For standard data structures such as counters, stacks, and queues, the bound is tight. The implementations considered may apply any deterministic primitives to a base object. No bounds are assumed on either the number of base objects or their size. Time is measured as the number of steps a process performs on base objects and the number of stalls it incurs as a result of contention with other processes.
Faith Ellen, Danny Hendler, Nir Shavit
FOCS3
2005 Virtual Leashing: Internet-Based Software Piracy Protection
abstract
Software-splitting is a technique for protecting software from piracy by removing code fragments from an application and placing them on a remote trusted server. The server provides the missing functionality but never the missing code. As long as the missing functionality is hard to reverse-engineer, the application cannot run without validating itself to the server. Current software-splitting techniques scale poorly to the Internet because interactions with the remote server are synchronous: the application must frequently block waiting for a response from the server. Perceptible delays due to network latency are unacceptable for many kinds of highly-reactive applications, such as games or graphics applications. This paper introduces virtual leashing, the first non-blocking software-splitting technique. Virtual leashing ensures that the application and the server communicate asynchronously, so the application’s performance is independent (within reason) of large or variable network latencies. Experiments show that virtual leashing makes only modest demands on communication bandwidth, space, and computation.
Ori Dvir, Maurice Herlihy, Nir Shavit
ICDCS3
2005 A Lazy Concurrent List-Based Set Algorithm
Steve Heller, Maurice Herlihy, Victor Luchangco, Mark Moir, William N. Scherer III, Nir Shavit
OPODIS6
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
SPAA4
2005 Obstruction-Free Algorithms Can Be Practically Wait-Free
Faith Ellen, Victor Luchangco, Mark Moir, Nir Shavit
DISC4
2005 Obstruction-Free Step Complexity: Lock-Free DCAS as an Example
Faith Ellen, Victor Luchangco, Mark Moir, Nir Shavit
DISC4
2005 Concurrency and synchronization in Java programs
Mark Moir, Nir Shavit, Jan Vitek
Sci. Comput. Program.2
2004 On the inherent weakness of conditional synchronization primitives
abstract
The "wait-free hierarchy" classifies multiprocessor synchronization primitives according to their power to solve consensus. The classification is based on assigning a number n to each synchronization primitive, where n is the maximal number of processes for which deterministic wait-free consensus can be solved using instances of the primitive and read write registers. Conditional synchronization primitives, such as Compare-and-Swap and Load-Linked/Store-Conditional, can implement deterministic wait-free consensus for any number of processes (they have consensus number ∞), and are thus considered to be among the strongest synchronization primitives; Compare-and-Swap and Load-Linked/Store-Conditional have consequently became the synchronization primitives of choice, and have been implemented in hardware in many multiprocessor architectures.This paper shows that, though they are strong in the context of consensus, conditional synchronization primitives are not efficient in terms of memory space for implementing many key objects. Our results hold for starvation-free implementations of mutual exclusion, and for wait-free implementations of a large class of concurrent objects, that we call Visible(n). Roughly, Visible(n) is a class that includes all objects that support some operation that must perform a "visible" write before it terminates. Visible(n) includes many useful objects; some examples are: counters, stacks, queues, swap, fetch-and-add, and single-writer snapshot objects. We show that at least n conditional registers are required by any such implementation, even if registers are of unbounded size. We also obtain tradeoffs between time and space for n-process wait-free implementations of any one-time object in Visible(n) . All these results hold for both deterministic and randomized implementations.Starvation-free mutual exclusion and wait-free implementations of some objects in Visible(n) (e.g. counters, swap and fetch-and-add) can be implemented by O(1) non-conditional primitives. Thus we believe that basing multiprocessor strong synchronization solely on conditional synchronization primitives might not be the best design choice.
Faith Ellen, Danny Hendler, Nir Shavit
PODC3
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.
SPAA8
2004 A scalable lock-free stack algorithm
abstract
The literature describes two high performance concurrent stack algorithms based on combining funnels and elimination trees. Unfortunately, the funnels are linearizable but blocking, and the elimination trees are non-blocking but not linearizable. Neither is used in practice since they perform well only at exceptionally high loads. The literature also describes a simple lock-free linearizable stack algorithm that works at low loads but does not scale as the load increases. The question of designing a stack algorithm that is non-blocking, linearizable, and scales well throughout the concurrency range, has thus remained open.This paper presents such a concurrent stack algorithm. It is based on the following simple observation: that a single elimination array used as a backoff scheme for a simple lock-free stack is lock-free, linearizable, and scalable. As our empirical results show, the resulting elimination-backoff stack performs as well as the simple stack at low loads, and increasingly outperforms all other methods (lock-based and non-blocking) as concurrency increases. We believe its simplicity and scalability make it a viable practical alternative to existing constructions for implementing concurrent stacks.
Danny Hendler, Nir Shavit, Lena Yerushalmi
SPAA2
2004 Dynamic Memory ABP Work-Stealing
Danny Hendler, Yossi Lev, Nir Shavit
DISC3
2004 An Optimistic Approach to Lock-Free FIFO Queues
Edya Ladan-Mozes, Nir Shavit
DISC2
2003 Operation-valency and the cost of coordination
abstract
This paper introduces operation-valency, a generalization of the valency proof technique originated by Fischer, Lynch, and Paterson. By focusing on critical events that influence the return values of individual operations rather then on critical events that influence a protocol's single return value, the new technique allows us to derive a collection of realistic lower bounds for lock-free implementations of concurrent objects such as linearizable queues, stacks, sets, hash tables, shared counters, approximate agreement, and more. By realistic we mean that they follow the real-world model introduced by Dwork, Herlihy, and Waarts, counting both memory-references and memory-stalls due to contention, and that they allow the combined use of read, write, and read-modify-write operations available on current machines.By using the operation-valency technique, we derive an Ω(√n) non-cached shared memory accesses lower bound on the worst-case time complexity of lock-free implementations of objects in Influence(n), a wide class of concurrent objects including all of those mentioned above, in which an individual operation can be influenced by all others.We also prove the existence of a fundamental relationship between the space complexity, latency, contention, and "influence level" of any lock-free object implementation. Our results are broad in that they hold for implementations combining read/write memory and any collection of read-modify-write operations, and in that they apply even if shared memory words have unbounded size.
Danny Hendler, Nir Shavit
PODC2
2003 Split-ordered lists: lock-free extensible hash tables
abstract
We present the first lock-free implementation of an extensible hash table running on current architectures. It provides concurrent insert, delete, and search operations with an expected O(1) cost. It consists of very simple code, easily implementable using only load, store, and compare-and-swap operations. The new mathematical structure at the core of our algorithm is recursive split-ordering, a way of ordering elements in a linked list so that they can be repeatedly "split" using a single compare-and-swap operation. Empirical tests conducted on a large shared memory multiprocessor show that even in non-multiprogrammed environments, the new algorithm significantly outperforms the most efficient known lock-based algorithm at all concurrency levels, exhibiting up to four times higher throughput at peak load. The incremental nature of our algorithm makes it well suited for real-time applications, as it offers predictable performance without unexpected breaks for resizing.
Ori Shalev, Nir Shavit
PODC2
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
SPAA3
2003 On the Uncontended Complexity of Consensus
Victor Luchangco, Mark Moir, Nir Shavit
DISC3
2002 Non-blocking steal-half work queues
abstract
The non-blocking work-stealing algorithm of Arora et al. has been gaining popularity as the multiprocessor load balancing technology of choice in both Industry and Academia. At its core is an ingenious scheme for stealing a single item in a non-blocking manner from an array based deque. In recent years, several researchers have argued that stealing more than a single item at a time allows for increased stability, greater overall balance, and improved performance.This paper presents StealHalf, a new generalization of the Arora et al. algorithm, that allows processes, instead of stealing one, to steal up to half of the items in a given queue at a time. The new algorithm preserves the key properties of the Arora et al. algorithm: it is non-blocking, and it minimizes the number of CAS operations that the local process needs to perform. We provide analysis that proves that the new algorithm provides better load distribution: the expected load of any process throughout the execution is less than a constant away from the overall system average.
Danny Hendler, Nir Shavit
PODC2
2002 Work dealing
abstract
This paper introduces work-dealing, a new algorithm for "locality oriented" load distribution on small scale shared memory multi-processors. Its key feature is an unprecedented low overhead mechanism (only a couple of loads and stores per operation, and no costly compare-and-swaps) for dealing-out work to processors in a globally balanced way. We believe that for applications in which work-items have process affinity, especially applications running in dedicated mode ("stand alone"), work-dealing could prove a worthy alternative to the popular work-stealing paradigm.
Danny Hendler, Nir Shavit
SPAA2
2002 Introduction
Nir Shavit
Distributed Comput.1
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.7
2001 Towards a practical snapshot algorithm
Yaron Riany, Nir Shavit, Dan Touitou
Theor. Comput. Sci.2
2000 Skiplist-Based Concurrent Priority Queues
abstract
This paper addresses the problem of designing scalable concurrent priority queues for large scale multiprocessors machines with up to several hundred processors. Priority queues are fundamental in the design of modern multiprocessor algorithms, with many classical applications ranging from numerical algorithms through discrete event simulation and expert systems. While highly scalable approaches have been introduced for the special case of queues with a fixed set of priorities, the most efficient designs for the general case are based on the parallelization of the heap data structure. Though numerous intricate heap-based schemes have been suggested in the literature, their scalability seems to be limited to small machines in the range of ten to twenty processors. This paper proposes an alternative approach: to base the design of concurrent priority queues on the probabilistic skiplist data structure, rather than on a heap. To this end, we show that a concurrent skiplist structure, following a simple set of modifications, provides a concurrent priority queue with a higher level of parallelism and significantly less contention than the fastest known heap-based algorithms. Our initial empirical evidence, collected on a simulated 256 node shared memory multiprocessor architecture similar to the MIT Alewife, suggests that the new skiplist based priority queue algorithm scales significantly better than heap based schemes throughout most of the concurrency range. With 256 processors, they are about twice as fast in performing deletions and up to 8 times faster in performing insertions.
Nir Shavit, Itay Lotan
IPDPS1
2000 DCAS-based concurrent deques
abstract
The computer industry is currently examining the use of strong synchronization operations such as double compare-and-swap (DCAS) as a means of supporting non-blocking synchronization on tomorrow's multiprocessor machines. However, before such a strong primitive will be incorporated into hardware design, its utility needs to be proven by developing a body of effective non-blocking data structures using DCAS. As part of this effort, we present two new linearizable non-blocking implementations of concurrent deques using the DCAS operation. The first uses an array representation, and improves on former algorithms by allowing uninterrupted concurrent access to both ends of the deque while correctly handling the difficult boundary cases when the deque is empty or full. The second uses a linked-list representation, and is the first non-blocking unbounded-memory deque implementation. It too allows uninterrupted concurrent access to both ends of the deque.
Ole Agesen, David Detlefs, Christine H. Flood, Alex Garthwaite, Paul Alan Martin, Nir Shavit, Guy L. Steele Jr.
SPAA6
2000 Even Better DCAS-Based Concurrent Deques
David Detlefs, Christine H. Flood, Alex Garthwaite, Paul Alan Martin, Nir Shavit, Guy L. Steele Jr.
DISC5
2000 Reactive Diffracting Trees
Giovanni Della-Libera, Nir Shavit
J. Parallel Distributed Comput.2
2000 Combining Funnels: A Dynamic Approach to Software Combining
Nir Shavit, Asaph Zemach
J. Parallel Distributed Comput.1
1999 Scalable Concurrent Priority Queue Algorithms
abstract
This paper addresses the problem of designing bounded range priority queues, that is, queues that support a fixed range of priorities. Bounded range priority queues are fundamental in the design of modern multiprocessor algorithms -- from the application level to lowest levels of the operating system kernel. While most of the available priority queue literature is directed at existing small-scale machines, we chose to evaluate algorithms on a broader concurrency scale using a simulated 256 node shared memory multiprocessor architecture similar to the MIT Alewife. Our empirical evidence suggests that the priority queue algorithms currently available in the literature do not scale. Based on these findings, we present two simple new algorithms, LinearFunnels and FunnelTree, that provide true scalability throughout the concurrency range. 1 Introduction Priority queues are a fundamental class of data structures used in the design of modern multiprocessor algorithms. Their uses range from ...
Nir Shavit, Asaph Zemach
PODC1
1999 Supporting Increment and Decrement Operations in Balancing Networks
William Aiello, Costas Busch, Maurice Herlihy, Marios Mavronicolas, Nir Shavit, Dan Touitou
STACS5
1999 The topological structure of asynchronous computability
abstract
We give necessary and sufficient combinatorial conditions characterizing the class of decision tasks that can be solved in a wait-free manner by asynchronous processes that communicate by reading and writing a shared memory.We introduce a new formalism for tasks, based on notions from classical algebraic and combinatorial topology, in which a task's possible input and output values are each associated with highdimensional geometric structures called simplicial complexes.We characterize computability in terms of the topological properties of these complexes.This characterization has a surprising geometric interpretation: a task is solvable if and only if the complex representing the task's allowable inputs can be mapped to the complex representing the task's allowable outputs by a function satisfying certain simple regularity properties.Our formalism thus replaces the "operational" notion of a wait-free decision task, expressed in terms of interleaved computations unfolding in time, by a static "combinatorial" description expressed in terms of relations among topological spaces.This allows us to exploit powerful theorems from the classic literature on algebraic and combinatorial topology.The approach yields the first impossibility results for several long-standing open problems in distributed computing, such as the "renaming" problem of Attiya et al., and the "k-set agreement" problem of Chaudhuri.Preliminary versions of these results appeared as HERLIHY, M. P., AND SHAVIT, N. 1993.The asynchronous computability theorem for t-resilient tasks.In
Maurice Herlihy, Nir Shavit
J. ACM2
1999 Timing Conditions for Linearizability in Uniform Counting Networks
Nancy A. Lynch, Nir Shavit, Alexander A. Schwarzmann, Dan Touitou
Theor. Comput. Sci.2
1998 Combining Funnels: A New Twist on an Old Tale
Nir Shavit, Asaph Zemach
PODC1
1998 On the Space Complexity of Randomized Synchronization
abstract
The “waite-free hierarchy” provides a classification of multiprocessor synchronization primitives based on the values ofnfor which there are deterministic wait-free implementations ofn-process consensus using instances of these objects andread-writeregisters. In a randomized wait-free setting, this classification is degenerate, sincen-process consensus can be solved using onlyO(n) read-writeregisters. In this paper, we propose a classification of synchronization primitives based on thespace complexityof randomized solutions ton-process consensus. Ahistoryless object,such as aread-writeregister, aswapregister, or atest&setregister, is an object whose state depends only on the lost nontrivial operation thate was applied to it. We show that, usinghistorylessobjects, Ω(√n) object instances are necessary to solven-process consensus. This lower bound holds even if the objects have unbounded size and the termination requirement isnondeterministic solo termination, a property strictly weaker than randomized wait-freedom. We then use this result to related the randomized space complexity of basic multiprocessor synchronization primitives such asshared counters, fetch&addregisters, andcompare&swapregisters. Viewed collectively, our results imply that there is a separation based on space complexity for synchronization primitives in randomized computation, and that this separation differs from that implied by the deterministic “wait-free hierarchy.”
Faith Ellen, Maurice Herlihy, Nir Shavit
J. ACM3
1998 A Steady State Analysis of Diffracting Trees
Nir Shavit, Eli Upfal, Asaph Zemach
Theory Comput. Syst.1
1997 Towards a Topological Characterization of Asynchronous Complexity (Preliminary Version)
abstract
Abstract. This paper introduces the use of topological models and methods, formerly used to analyze computability, as tools for the quantification and classification of asynchronous complexity. We present the first asynchronous complexity theorem, applied to decision tasks in the iterated immediate snapshot (IIS) model of Borowsky and Gafni. We do so by introducing a novel form of topological tool called the nonuniform chromatic subdivision. Building on the framework of Herlihy and Shavit’s topological computability model, our theorem states that the time complexity of any asynchronous algorithm is directly proportional to the level of nonuniform chromatic subdivisions necessary to allow a simplicial map from a task’s input complex to its output complex. To show the power of our theorem, we use it to derive a new tight bound on the time to achieve n process approximate agreement in the IIS model: � max input−min input � logd, where d = 3 for two processes ɛ and d = 2 for three or more. This closes an intriguing gap between the known upper and lower bounds implied by the work of Aspnes and Herlihy. More than the new bounds themselves, the importance of our asynchronous complexity theorem is that the algorithms and lower bounds it allows us to derive are intuitive and simple, with topological proofs that require no mention of concurrency at all.
Gunnar Hoest, Nir Shavit
PODC2
1997 A Wait-Free Sorting Algorithm
abstract
Sorting in one of a set of fundamental problems in computer saence.In this paper we present the first wait-free algorithm for sorting an input array of size N using P s N proceseom to achieve optimal running time.Known sorting algorithms, when made wait-flee through previously eskabliehed trsmsformation techniques have complexity O(logs N).The randomized algorithm we present here, when run in the CRCW PRAM model executes in optimal O(log N) time where P = N and O(N log N/P) otherwise.The wait-free property guarantees that the sort will complete despite any delays or failures incumed by the processors.This is a very desirable property from an operating systems point of view, since it allows oblivious thread scheduling as well as thread creation and deletion, without fear of losing the algorithm's correctness.We further present a variant of the algorithm which is shown to suffer no more than O(m) cent ention when rust Sy'tlChrOnOUd~.Sorting is a basic algorithmic building block and hm attracted the attention of many reeearchera.In this paper we present a wait-i%ee algorithm for sorting an ssmay of N elements, in the CRCW PRAM model with processor failures and undetectable restarts.Herlihy [17] defines a wait-free data structure M one on which any operation by any processor is guaranteed to complete within a bounded number of steps, regardless of the actions or failures of other proceesom.By extension, a wait-free algorithm for some iixed-size problem is guaranteed to arrive at the solution within a bounded "MIT and
Nir Shavit, Eli Upfal, Asaph Zemach
PODC1
1997 Reactive Diffracting Trees
abstract
Shared counters are concurrent objects which provide a fetch-andincrement operation on a distributed system and can be used to implement a variety of data structures, such as barriers, pools, stacks, and priority queues.Diffracting trees are novel data structures that provide ineffective, high throughput and low contention, shared counter construction.Under high loads, their performance has been shown to surpass all known counter implementations.Unfortunately, Diffracting trees of differing depths are optimal forlimited load ranges, and a deep tree that performs well under high load performs rather poorly when the load is very low.Toovercome this drawback, reintroduce the Reactive Diffractirrg Tree, a novel Diffracting tree construction which can grow and shrink as necessary to better handle the changing access patterns and memory layout oftbe machine on which itrrms.Itprovides true sealability and locality by dynamically "morphing" itself all the way from a simple queue-lock based counter under low load, through a range of increasingly deeper/shallower Diffracting trees as the load varies.Empirical evidence, collected on a 32-node Alewife cachecoherent multiprocessor and the Proteus distributed shared-memory simulator, shows that the reactive diffracting tree provides throughput within a constant factor of optimal depth Diffracting trees at all load levels.It also proves to be an effective competitor with known randomized load balancing algorithms in producerlconsumer applications.1
Giovanni Della-Libera, Nir Shavit
SPAA2
1997 Software Transactional Memory
Nir Shavit, Dan Touitou
Distributed Comput.1
1997 Elimination Trees and the Construction of Pools and Stacks
Nir Shavit, Dan Touitou
Theory Comput. Syst.1
1997 Bounded Concurrent Time-Stamping
abstract
We introduce concurrent time-stamping, a paradigm that allows processes to temporally order concurrent events in an asynchronous shared-memory system. Concurrent time-stamp systems are powerful tools for concurrency control, serving as the basis for solutions to coordination problems such as mutual exclusion, $\ell$-exclusion, randomized consensus, and multiwriter multireader atomic registers. Unfortunately, all previously known methods for implementing concurrent time-stamp systems have been theoretically unsatisfying since they require unbounded-size time-stamps---in other words, unbounded-size memory. This work presents the first bounded implementation of a concurrent time-stamp system, providing a modular unbounded-to-bounded transformation of the simple unbounded solutions to problems such as those mentioned above. It allows solutions to two formerly open problems, the bounded-probabilistic-consensus problem of Abrahamson and the fifo-$\ell$-exclusion problem of Fischer, Lynch, Burns and Borodin, and a more efficient construction of multireader multiwriter atomic registers.
Danny Dolev, Nir Shavit
SIAM J. Comput.2
1996 Counting Networks are Practically Linearizable
abstract
Counting networks are a class of concurrent structures that allow the design of highly scalable concurrent data structures in a way that eliminates sequential bottlenecks and contention.Linearizable counting networks assure that the order of the values returned by the network reflects the real-time order in which they were requested.We argue that in many concurrent systems the worst case scenarios that violate linearizability require a form of timing anomaly that is uncommon in practice.The linear time cost of designing networks that achieve linearizability under all circumstances may thus prove an unnecessary burden on applications that are willing to trade-off occasional non-linearizability for speed and parallelism.This paper presents a very simple measure that is iocal to the individual links and nodes of the network, and that quantifies the extent to which a network can suffer from timing anomalies and still remain linearizable.Perhaps counter-intuitively, this measure is independent of network depth.We use our measure to mathematically support our experiment al results: that in a variety of normal situations tested on a simulated shared memory multiprocessor, the Monic counting networks of Aspnes, Herlihy, and Shavit are "for all practical purposes" Iinearizable.
Nancy A. Lynch, Nir Shavit, Alexander A. Schwarzmann, Dan Touitou
PODC2
1996 A Steady State Analysis of Diffracting Trees (Extended Abstract)
abstract
Dijj%-acting trees are an effective and highly scalable distributed-parallel technique for shared counting and load balanc-We believe ourmodel and modeling approach open the way to steady-state analysis of other distributed-parallel structures such as counting networks and elimination trees.
Nir Shavit, Eli Upfal, Asaph Zemach
SPAA1
1996 Linearizable Counting Networks
Maurice Herlihy, Nir Shavit, Orli Waarts
Distributed Comput.2
1996 Diffracting Trees
abstract
Shared counters are among the most basic coordination structures in multiprocessor conputation, with applications ranging from barrier synchronization to concurrent-data-structure design. This article introduces diffracting trees, novel data structures for share counting and load balancing in a distributed/parallel environment. Empirical evidence, collected on a simulated distributed shared-memory machine and several simulated message-passing architectures, shows that diffracting trees scale better and are more robust than both combining trees and counting networks, currently the most effective known methods for implementing concurrent counters in software. The use of a randomized coordination method together with a combinatorial data structure overcomes the resiliency drawbacks of combining trees. Our simulations show that to handle the same load, diffracting trees and counting networks should have a similar widthw, yet the depth of a diffracting tree isO(logw), whereas counting networks have depthO(log2w). Diffracting trees have already been used to implement highly efficient producer/consumer queues, and we believe diffraction will prove to be an effective alternative paradigm to combining and queue-locking in the design of many concurrent data structures.
Nir Shavit, Asaph Zemach
ACM Trans. Comput. Syst.1
1995 Software Transactional Memory
abstract
As we learn from the literature, flexibility in choosing syn-chroni~ation operations greatly simplifies the task of de-
Nir Shavit, Dan Touitou
PODC1
1995 Elimination Trees and the Construction of Pools and Stacks (Preliminary Version)
abstract
Shared pools and stacks are two coordination structures with a history of applications ranging from simple producer/consumer buffers to job-schedulers and procedure stacks.This paper introduces elimination trees, a novel form of diffracting trees that offer pool and stack implementations with superior response (on average constant) under high loads, while guaranteeing logarithmic time "deterministic" termination under sparse request patterns.
Nir Shavit, Dan Touitou
SPAA1
1995 Scalable Concurrent Counting
abstract
The notion of counting is central to a number of basic multiprocessor coordination problems, such as dynamic load balancing, barrier synchronization, and concurrent data structure design. We investigate the scalability of a variety of counting techniques for large-scale multiprocessors. We compare counting techniques based on: (1) spin locks, (2) message passing, (3) distributed queues, (4) software combining trees, and (5) counting networks. Our comparison is based on a series of simple benchmarks on a simulated 64-processor Alewife machine, a distributed-memory multiprocessor currently under development at MIT. Although locking techniques are known to perform well on small-scale, bus-based multiprocessors, serialization limits performance, and contention can degrade performance. Both counting networks and combining trees outperform the other methods substantially by avoiding serialization and alleviating contention, although combining-tree throughput is more sensitive to variations in load. A comparison of shared-memory and message-passing implementations of counting networks and combining trees shows that message-passing implementations have substantially higher throughput.
Maurice Herlihy, Beng-Hong Lim, Nir Shavit
ACM Trans. Comput. Syst.3
1994 Diffracting Trees (Preliminary Version)
abstract
Shared counters are among the most basic coordination structures in multiprocessor computation, with applications ranging from barrier synchronization to dynamic load balancing. Introduced in this paper are diffracting trees, novel distributed-parallel data structures for shared counting. Diffracting trees combine a randomized coordination method together with a combinatorial data structure, to yield a logarithmic depth counter that improves on the log2 depth of counting networks, and overcomes the resiliency drawbacks of combining trees. Empirical evidence collected on a simulated distributed shared-memory multiprocessor shows that diffracting trees substantially outperform both combining trees and counting networks, currently the most effective known methods for shared counting. Not only do diffracting trees have higher throughput and lower latency, but unlike any known technique, their latency remains almost constant as the number of processors increases.
Nir Shavit, Asaph Zemach
SPAA1
1994 A simple constructive computability theorem for wait-free computation
abstract
memory multiprocessors, processes
Maurice Herlihy, Nir Shavit
STOC2
1994 Counting Networks
abstract
Many fundamental multi-processor coordination problems can be expressed as counting problems : Processes must cooperate to assign successive values from a given range, such as addresses in memory or destinations on an interconnection network. Conventional solutions to these problems perform poorly because of synchronization bottlenecks and high memory contention. Motivated by observations on the behavior of sorting networks, we offer a new approach to solving such problems, by introducing counting networks , a new class of networks that can be used to count. We give two counting network constructions, one of depth log n (1 + log n )/2 using n log (1 + log n )/4 “gates,” and a second of depth log 2 n using n log 2 n /2 gates. These networks avoid the sequential bottlenecks inherent to earlier solutions and substantially lower the memory contention. Finally, to show that counting networks are not merely mathematical creatures, we provide experimental evidence that they outperform conventional synchronization techniques under a variety of circumstances.
James Aspnes, Maurice Herlihy, Nir Shavit
J. ACM3
1994 Are Wait-Free Algorithms Fast?
abstract
The time complexity of wait-free algorithms in “normal” executions, where no failures occur and processes operate at approximately the same speed, is considered. A lower bound of log n on the time complexity of any wait-free algorithm that achieves approximate agreement among n processes is proved. In contrast, there exists a non-wait-free algorithm that solves this problem in constant time. This implies an Ω(log n ) time separation between the wait-free and non-wait-free computation models. On the positive side, we present an O(log n ) time wait-free approximate agreement algorithm; the complexity of this algorithm is within a small constant of the lower bound.
Hagit Attiya, Nancy A. Lynch, Nir Shavit
J. ACM3
1994 A Bounded First-In, First-Enabled Solution to the l-Exclusion Problem
abstract
This article presents a solution to the first-come, first-enabled ℓ-exclusion problem of Fischer et al. [1979]. Unlike their solution, this solution does not use powerful read-modify-write synchronization primitives and requires only bounded shared memory. Use of the concurrent timestamp system of Dolev and Shavir [1989] is key in solving the problem within bounded shared memory.
Yehuda Afek, Danny Dolev, Eli Gafni, Michael Merritt, Nir Shavit
ACM Trans. Program. Lang. Syst.5
1993 On the Space Complexity of Randomized Synchronization
abstract
The "wait-free hierarchy" defines a deterministic computability separation among multiprocessor syn-
Faith Ellen, Maurice Herlihy, Nir Shavit
PODC3
1993 The asynchronous computability theorem for t-resilient tasks
abstract
We give necessary and sufficient combinatorial conditions characterizing the computational tasks that can be solved by N asynchronous processes, up to t of which can fail by halting. The range of possible input and output values for an asynchronous task can be associated with a high-dimensional geometric structure called a simplicial complex. Our main theorem characterizes computability in terms of the topological properties of this complex. Most notably, a given task is computable only if it can be associated with a complex that is simply connected with trivial homology groups. In other words, the complex has "no holes!" Applications of this characterization include the first impossibility results for several long-standing open problems in distributed computing, such as the "renaming" problem of Attiya et. al., the "k-set agreement" problem of Chaudhuri, and a generalization of the approximate agreement problem. 1 Introduction A decision task is an input/output problem where N asyn...
Maurice Herlihy, Nir Shavit
STOC2
1993 Atomic Snapshots of Shared Memory
abstract
This paper introduces a general formulation of atomic snapshot memory , a shared memory partitioned into words written ( updated ) by individual processes, or instantaneously read ( scanned ) in its entirety. This paper presents three wait-free implementations of atomic snapshot memory. The first implementation in this paper uses unbounded (integer) fields in these registers, and is particularly easy to understand. The second implementation uses bounded registers. Its correctness proof follows the ideas of the unbounded implementation. Both constructions implement a single-writer snapshot memory, in which each word may be updated by only one process, from single-writer, n -reader registers. The third algorithm implements a multi-writer snapshot memory from atomic n -writer, n -reader registers, again echoing key ideas from the earlier constructions. All operations require Θ( n 2 ) reads and writes to the component shared registers in the worst case. — Authors' Abstract
Yehuda Afek, Hagit Attiya, Danny Dolev, Eli Gafni, Michael Merritt, Nir Shavit
J. ACM6
1992 Timing-Based Mutual Exclusion
abstract
The benefits that can be obtained by using timing information in mutual exclusion algorithms are examined. A simple and efficient timing-based mutual exclusion algorithm is given. This algorithm always guarantees mutual exclusion (i.e. even when run asynchronously) and also avoids deadlock in case certain (realistic) inexact timing constraints are met. The algorithm uses only two shared read/write registers (a total of log n+1 bits), thus overcoming the n register lower bound for asynchronous algorithms. It is proved that the problem cannot be solved with only one shared register, so that this algorithm is optimal in terms of the number of registers. A lower bound is proved for the time complexity of any deadlock-free mutual exclusion protocol, as a function of the number of shared registers it employs. This bound shows that the algorithm described is near optimal, in terms of time complexity. It is shown that two natural ways of weakening the timing assumptions lead (unfortunately) to an n register lower bound.>
Nancy A. Lynch, Nir Shavit
RTSS2
1992 Low Contention Load Balancing on Large-Scale Multiprocessors
abstract
Article Free Access Share on Low contention load balancing on large-scale multiprocessors Authors: Maurice Herlihy View Profile , Beng-Hong Lim View Profile , Nir Shavit View Profile Authors Info & Claims SPAA '92: Proceedings of the fourth annual ACM symposium on Parallel algorithms and architecturesJune 1992 Pages 219–227https://doi.org/10.1145/140901.140924Published:01 June 1992Publication History 25citation297DownloadsMetricsTotal Citations25Total Downloads297Last 12 Months7Last 6 weeks3 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 SiteeReaderPDF
Maurice Herlihy, Beng-Hong Lim, Nir Shavit
SPAA3
1991 Low Contention Linearizable Counting
abstract
The linearizable counting problem requires asynchronous concurrent processes to assign themselves successive values so that the order of the values assigned reflects the real-time order in which they were requested. It is shown that the problem can be solved without funneling all processes through a common memory location. Two new constructions for linearizable counting networks, data structures that solve the linearizable counting problem, are given. The first construction is nonblocking: some process takes a value after O(n) network gates have been traversed. The second construction is wait-free: it guarantees that each process takes a value after it traverses O(wn) gates, where w is a parameter affecting contention. It is shown that in any nonblocking or wait-free linearizable counting network, processes must traverse an average of Omega (n) gates, and so the constructions are close to optimal. A simpler and more efficient network is constructed by giving up the robustness requirements and allowing processes to wait for one another.>
Maurice Herlihy, Nir Shavit, Orli Waarts
FOCS2
1991 Optimal Time Randomized Consensus - Making Resilient Algorithms Fast in Practice
Michael E. Saks, Nir Shavit, Heather Woll
SODA2
1991 Counting Networks and Multi-Processor Coordination
abstract
Many fundamental multi-processor coordination problems can be expressed as counting problems: processes must cooperate to assign successive values from a given range, such as addresses in memory or destinations on an interconnection network. Conventional solutions to these problems perform poorly because of synchronization bottlenecks and high memory contention. Motivated by observations on the behavior of sorting networks, we o er a completely new approach to solving such problems. We introduce a new class of networks called counting networks, i.e., networks that can be used to count. We give a counting network construction of depth log 2 n using n log 2 n \\gates, " avoiding the sequential bottlenecks inherent to former solutions, and having a provably lower contention factor on its gates. Finally, to show that counting networks are not merely mathematical creatures, we provide experimental evidence that they outperform conventional synchronization techniques under a variety of circumstances.
James Aspnes, Maurice Herlihy, Nir Shavit
STOC3
1990 Are Wait-Free Algorithms Fast? (Extended Abstract)
abstract
The time complexity of wait-free algorithms in so-called normal executions, where no failures occur and processes operate at approximately the same speed, is considered. A lower bound of log n on the time complexity of any wait-free algorithm that achieves approximate agreement among n processes is proved. In contrast, there exists a non-wait-free algorithm that solves this problem in constant time. This implies an Omega (log n)-time separation between the wait-free and non-wait-free computation models. An O(log n)-time wait-free approximate agreement algorithm is presented. Its complexity is within a small constant of the lower bound.>
Hagit Attiya, Nancy A. Lynch, Nir Shavit
FOCS3
1990 Atomic Snapshots of Shared Memory
abstract
An atomic snapshot memory is a shared data structure allowing concurrent processes to store information in a collection of shared registers, all of which may be read in a single atomic scan operation.This paper presents three wait-free implementations of atomic snapshot memory.Two constructions implement wait-free single-writer atomic snapshot memory from wait-free atomic single-writer, n-reader registers.A third construction implements a wait-free n-writer atomic snapshot memory from n-writer, n-reader registers.The first implementation uses unbounded
Yehuda Afek, Danny Dolev, Hagit Attiya, Eli Gafni, Michael Merritt, Nir Shavit
PODC6
1989 Polynomial End-To-End Communication (Extended Abstract)
abstract
A dynamic communication network is one in which links may repeatedly fail and recover. In such a network, although it is impossible to establish a path of unfailed links, reliable communication is possible if there is no cut of permanently failed links between a sender and receiver. The authors consider for such a network the basic task of end-to-end communication, that is, delivery in finite time of data items generated online at the sender, to the receiver, in order and without duplication or omission. The best known previous solutions to this problem had exponential complexity. Moreover, it has been conjectured that a polynomial solution is impossible. The authors disprove this conjecture, presenting the first polynomial end-to-end protocol. The protocol uses methods adopted from shared-memory algorithms and introduces novel techniques for fast load balancing in communication networks.>
Baruch Awerbuch, Yishay Mansour, Nir Shavit
FOCS3
1989 Bounded Polynomial Randomized Consensus
abstract
In [A&3], Abrahamson presented a solution to the randomized consensus problem of Chor, Israeli and Li [CIL87], without assuming the existence of an atomic coin flip operation.This elegant algorithm uses unbounded memory, and has expected exponential running time.In [AH89], Aspens and Herlihy provide a breakthrough polynomial-time algorithm.However, it too is based on the use of unbounded memory.In this paper, we present a solution to the randomized consensus problem, that is bounded in space and runs in polynomial expected time.
Hagit Attiya, Danny Dolev, Nir Shavit
PODC3
1989 Bounded Concurrent Time-Stamp Systems Are Constructible
abstract
Concurrent time stamping is at the heart of solutions to some of the most fundamental problems in distributed computing. Based on concurrent-time-stamp-systems, elegant and simple solutions to core problems such as ƒcƒs-mutual-exclusion, construction of a multi-reader-multi-writer atomic register, probabilistic consensus,… were developed. Unfortunately, the only known implementation of a concurrent time stamp system has been theoretically unsatisfying, since it requires unbounded size time-stamps, in other words, unbounded memory. Not knowing if bounded concurrent-time-stamp-systems are at all constructible, researchers were led to constructing complicated problem-specific solutions to replace the simple unbounded ones. In this work, for the first time, a bounded implementation of a concurrent-time-stamp-system is presented. It provides a modular unbounded-to-bounded transformation of the simple unbounded solutions to problems such as above. It allows solutions to two formerly open problems, the bounded-probabilistic-consensus problem of Abrahamson [A88] and the ƒiƒo[email protected]@@@-exclusion problem of [FLBB85], and a more efficient construction of mrmw atomic registers.
Danny Dolev, Nir Shavit
STOC2
1988 Toward a Non-Atomic Era: \ell-Exclusion as a Test Case
abstract
Most of the research in concurrency control has been based on the existence of strong synchronization primitives such as test and set. Following Lamport, recent research promoting the use of weaker primitives, “safe” rather than “atomic,” has resulted in construction of atomic registers from safe ones, in the belief that they would be useful tools for process synchronization. We argue that the properties provided by atomic operations may be too powerful, masking core difficulties of problems and leading to inefficiency. We therefore advocate a different approach, to skip the intermediate step of achieving atomicity, and solve problems directly from safe registers. Though it has been shown that “test and set” cannot be implemented from safe registers, we show how to achieve a fair solution to l-exclusion, a classical concurrency control problem previously solved assuming a very powerful form of atomic “test and set”. We do so using safe registers alone and without introducing atomicity. The solution is based on the construction of a simple novel non-atomic synchronization primitive.
Danny Dolev, Eli Gafni, Nir Shavit
STOC3
1986 A New Approach to Detection of Locally Indicative Stability
Nir Shavit, Nissim Francez
ICALP1