Virendra J. Marathe

dblp:36/5512 · DBLP profile ↗
← Back
36ranked-venue papers
8as first author
3since 2021 · last 2025
—ORCID · none

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

Systems, architecture and hardware · 22 · 6 first-authorDatabases, data management, data science and information retrieval · 4 · 1 since 2021Software engineering, systems software and programming languages · 3Artificial intelligence and machine learning · 1 · 1 since 2021Computer networks · 1 · 1 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.

Computer architecture, parallel and distributed computing, and storage systems
14 papers
Distributed systems · 37% Storage systems · 23% Memory systems · 22%
Software engineering, system software, and programming languages
9 papers
Concurrent programming · 98% Programming languages and type systems · 2%
Network and information security
1 paper
Authentication and access control · 50% Security and privacy of machine learning · 50%
Computer networks
1 paper
Datacenter networks · 50% Internet architecture and protocols · 50%
Artificial intelligence
1 paper
Language models and text generation · 100%
Databases, data mining, and information retrieval
1 paper
Graph data management · 100%

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

TopicWeightPapersLastEvidence papers
Memory systems
non-volatile memory
1.142018
A persistent lock-free queue for non-volatile memory · PPoPP 2018
Brief Announcement: Persistent Multi-Word Compare-and-Swap · PODC 2018
An NVM Carol: Visions of NVM Past, Present, and Future · ICDE 2018
Distributed systems › consistency models
linearizability
0.922024
LoLKV: The Logless, Linearizable, RDMA-based Key-Value Storage System · NSDI 2024
Scalable, NearZero Loss Disaster Recovery for Distributed Data Stores · Proc. VLDB Endow. 2020
Natural language and speech › Language models and text generation
large language model
0.912025
Permissioned LLMs: Enforcing Access Control in Large Language Models · NeurIPS 2025
Authentication and access control
access control
0.912025
Permissioned LLMs: Enforcing Access Control in Large Language Models · NeurIPS 2025
Security and privacy of machine learning
membership inference
0.912025
Permissioned LLMs: Enforcing Access Control in Large Language Models · NeurIPS 2025
Distributed systems
fault tolerance
0.822020
Scalable, NearZero Loss Disaster Recovery for Distributed Data Stores · Proc. VLDB Endow. 2020
The Impact of RDMA on Agreement · PODC 2019
Storage systems
key-value storage
0.812024
LoLKV: The Logless, Linearizable, RDMA-based Key-Value Storage System · NSDI 2024
Storage systems › key-value storage
RDMA-based key-value store
0.812024
LoLKV: The Logless, Linearizable, RDMA-based Key-Value Storage System · NSDI 2024
Datacenter networks
RDMA
0.612022
KafkaDirect: Zero-copy Data Access for Apache Kafka over RDMA Networks · SIGMOD Conference 2022
Internet architecture and protocols
zero-copy communication
0.612022
KafkaDirect: Zero-copy Data Access for Apache Kafka over RDMA Networks · SIGMOD Conference 2022
Storage systems
distributed storage
0.612022
KafkaDirect: Zero-copy Data Access for Apache Kafka over RDMA Networks · SIGMOD Conference 2022
Distributed systems
publish/subscribe systems
0.612022
KafkaDirect: Zero-copy Data Access for Apache Kafka over RDMA Networks · SIGMOD Conference 2022
Distributed systems
consensus
0.622020
Microsecond Consensus for Microsecond Applications · OSDI 2020
Scalable, NearZero Loss Disaster Recovery for Distributed Data Stores · Proc. VLDB Endow. 2020
Memory systems
cache management
0.412020
The NEBULA RPC-Optimized Architecture · ISCA 2020
Distributed systems › fault tolerance › failure recovery
disaster recovery
0.412020
Scalable, NearZero Loss Disaster Recovery for Distributed Data Stores · Proc. VLDB Endow. 2020
Memory systems › memory hierarchy › cache hierarchy management
last-level cache management
0.412020
The NEBULA RPC-Optimized Architecture · ISCA 2020
Distributed systems › replication › state machine replication
log replication
0.412020
Scalable, NearZero Loss Disaster Recovery for Distributed Data Stores · Proc. VLDB Endow. 2020
Distributed systems
replication
0.412020
Scalable, NearZero Loss Disaster Recovery for Distributed Data Stores · Proc. VLDB Endow. 2020
Cloud and datacenter computing › datacenter architecture
server architecture
0.412020
The NEBULA RPC-Optimized Architecture · ISCA 2020
Storage systems
storage reliability
0.412020
Scalable, NearZero Loss Disaster Recovery for Distributed Data Stores · Proc. VLDB Endow. 2020
Distributed systems › fault tolerance
byzantine fault tolerance
0.412019
The Impact of RDMA on Agreement · PODC 2019
Distributed computing theory
consensus
0.412019
The Impact of RDMA on Agreement · PODC 2019
Concurrent programming
transactional memory
0.342011
Transaction communicators: enabling cooperation among concurrent transactions · PPoPP 2011
Featherweight transactions: decoupling threads and atomic blocks · PPoPP 2007
Privatization techniques for software transactional memory · PODC 2007
Concurrent programming › concurrent data structures
concurrent queue
0.312018
A persistent lock-free queue for non-volatile memory · PPoPP 2018
Concurrent programming › non-blocking algorithms
lock-free data structures
0.312018
A persistent lock-free queue for non-volatile memory · PPoPP 2018
Memory systems › non-volatile memory
persistent data structures
0.312018
A persistent lock-free queue for non-volatile memory · PPoPP 2018
Storage systems › key-value storage
persistent key-value store
0.312018
Closing the Performance Gap Between Volatile and Persistent Key-Value Stores Using Cross-Referencing Logs · USENIX ATC 2018
Memory systems › non-volatile memory
persistent memory
0.312018
Brief Announcement: Persistent Multi-Word Compare-and-Swap · PODC 2018
Concurrent programming › transactional memory
software transactional memory
0.342009
A comprehensive strategy for contention management in software transactional memory · PPoPP 2009
Toward high performance nonblocking software transactional memory · PPoPP 2008
Efficient nonblocking software transactional memory · PPoPP 2007
Graph data management
graph analytics
0.212015
LLAMA: Efficient graph analytics using Large Multiversioned Arrays · ICDE 2015

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

parameter-efficient fine-tuning · 1.7membership inference attack · 1.7one-sided RDMA · 1.1RDMA · 1.1watermark service · 0.4synchronized clocks · 0.4pipelining · 0.4l1 cache steering · 0.4in-LLC network buffer management · 0.4batching · 0.4asynchronous log replication · 0.4lock-free synchronization · 0.3durability guarantees · 0.3compare-and-swap · 0.3multi-versioned snapshots · 0.2compressed sparse row · 0.2performance evaluation · 0.2lock design · 0.2
YearPublicationVenuePosition
2025 Permissioned LLMs: Enforcing Access Control in Large Language Models
abstract
In enterprise settings, organizational data is segregated, siloed and carefully protected by elaborate access control frameworks. These access control structures can completely break down if an LLM fine-tuned on the siloed data serves requests, for downstream tasks, from individuals with disparate access privileges. We propose Permissioned LLMs (PermLLM), a new class of LLMs that superimpose the organizational data access control structures on query responses they generate. We formalize abstractions underpinning the means to determine whether access control enforcement happens correctly over LLM query responses. Our formalism introduces the notion of a relevant response that can be used to prove whether a PermLLM mechanism has been implemented correctly. We also introduce a novel metric, called access advantage, to empirically evaluate the efficacy of a PermLLM mechanism. We introduce three novel PermLLM mechanisms that build on Parameter Efficient Fine-Tuning to achieve the desired access control. We furthermore present two instantiations of access advantage–(i) Domain Distinguishability Index (DDI) based on Membership Inference Attacks, and (ii) Utility Gap Index (UGI) based on LLM utility evaluation. We demonstrate the efficacy of our PermLLM mechanisms through extensive experiments on five public datasets (GPQA, RCV1, SimpleQA, WMDP, and PubMedQA), in addition to evaluating the validity of DDI and UGI metrics themselves for quantifying access control in LLMs.
Bargav Jayaraman, Virendra J. Marathe, Hamid Mozaffari, William F. Shen, Krishnaram Kenthapadi
NeurIPS2
2024 LoLKV: The Logless, Linearizable, RDMA-based Key-Value Storage System
Ahmed Alquraan, Sreeharsha Udayashankar, Virendra J. Marathe, Bernard Wong 0001, Samer Al-Kiswany
NSDI3
2022 KafkaDirect: Zero-copy Data Access for Apache Kafka over RDMA Networks
abstract
Apache Kafka is an open-source distributed publish-subscribe system, which is widely used in data centers for messaging between applications, log aggregation, and stream processing. The existing Kafka implementation uses TCP/IP for communication, which has various inefficiencies such as a high message dispatch cost due to OS involvement and excessive memory copies. Recently, the availability of cost-effective RDMA-capable network controllers within data centers and cloud infrastructures have encouraged many modern applications to adopt RDMA networking, which offers the potential to outperform classical TCP/IP. We introduce KafkaDirect, an extension to Apache Kafka, that uses RDMA to accelerate the three most network intensive datapaths: record production, record replication, and record consumption. In this work, we explore the design choices including which RDMA operations to use to take full advantage of offloaded communication. Our RDMA design relies on one-sided RDMA requests to attain true zero-copy communication completely avoiding the need for using intermediate buffers in Kafka servers, thereby ensuring low latency and high throughput communication. KafkaDirect can offer up to 9x increase in throughput for both Kafka producers and Kafka consumers, and can provide 4x and 50x reduction in latency for Kafka producers and Kafka consumers, respectively.
Konstantin Taranov, Steve Byan, Virendra J. Marathe, Torsten Hoefler
SIGMOD Conference3
2020 The NEBULA RPC-Optimized Architecture
abstract
Large-scale online services are commonly structured as a network of software tiers, which communicate over the datacenter network using RPCs. Ongoing trends towards software decomposition have led to the prevalence of tiers receiving and generating RPCs with runtimes of only a few microseconds. With such small software runtimes, even the smallest latency overheads in RPC handling have a significant relative performance impact. In particular, we find that growing network bandwidth introduces queuing effects within a server's memory hierarchy, considerably hurting the response latency of fine-grained RPCs. In this work we introduce NEBULA, an architecture optimized to accelerate the most challenging microsecond-scale RPCs, by leveraging two novel mechanisms to drastically improve server throughput under strict tail latency goals. First, NEBULA reduces detrimental queuing at the memory controllers via hardware support for efficient in-LLC network buffer management. Second, NEBULA's network interface steers incoming RPCs into the CPU cores' L1 caches, improving RPC startup latency. Our evaluation shows that NEBULA boosts the throughput of a state-of-the-art key-value store by 1.25- 2.19 x compared to existing proposals, while maintaining strict tail latency goals.
Mark Sutherland, Siddharth Gupta 0003, Babak Falsafi, Virendra J. Marathe, Dionisios N. Pnevmatikatos, Alexandros Daglis
ISCA4
2020 Microsecond Consensus for Microsecond Applications
Marcos K. Aguilera, Naama Ben-David, Rachid Guerraoui, Virendra J. Marathe, Athanasios Xygkis, Igor Zablotchi
OSDI4
2020 Efficient Multi-Word Compare and Swap
abstract
Atomic lock-free multi-word compare-and-swap (MCAS) is a powerful tool for designing concurrent algorithms. Yet, its widespread usage has been limited because lock-free implementations of MCAS make heavy use of expensive compare-and-swap (CAS) instructions. Existing MCAS implementations indeed use at least 2k+1 CASes per k-CAS. This leads to the natural desire to minimize the number of CASes required to implement MCAS. We first prove in this paper that it is impossible to "pack" the information required to perform a k-word CAS (k-CAS) in less than k locations to be CASed. Then we present the first algorithm that requires k+1 CASes per call to k-CAS in the common uncontended case. We implement our algorithm and show that it outperforms a state-of-the-art baseline in a variety of benchmarks in most considered workloads. We also present a durably linearizable (persistent memory friendly) version of our MCAS algorithm using only 2 persistence fences per call, while still only requiring k+1 CASes per k-CAS.
Rachid Guerraoui, Alex Kogan, Virendra J. Marathe, Igor Zablotchi
DISC3
2020 Scalable, NearZero Loss Disaster Recovery for Distributed Data Stores
abstract
This paper presents a new Disaster Recovery (DR) system, called Slogger, that differs from prior works in two principle ways: (i) Slogger enables DR for a linearizable distributed data store, and (ii) Slogger adopts the continuous backup approach that strives to maintain a tiny lag on the backup site relative to the primary site, thereby restricting the data loss window, due to disasters, to milliseconds. These goals pose a significant set of challenges related to consistency of the backup site's state, failures, and scalability. Slogger employs a combination of asynchronous log replication, intra-data center synchronized clocks, pipelining, batching, and a novel watermark service to address these challenges. Furthermore, Slogger is designed to be deployable as an "add-on" module in an existing distributed data store with few modifications to the original code base. Our evaluation, conducted on Slogger extensions to a 32-sharded version of LogCabin, an open source key-value store, shows that Slogger maintains a very small data loss window of 14.2 milliseconds which is near the optimal value in our evaluation setup. Moreover, Slogger reduces the length of the data loss window by 50% compared to incremental snapshotting technique without having any performance penalty on the primary data store. Furthermore, our experiments demonstrate that Slogger achieves our other goals of scalability, fault tolerance, and efficient failover to the backup data store when a disaster is declared at the primary data store.
Ahmed Alquraan, Alex Kogan, Virendra J. Marathe, Samer Al-Kiswany
Proc. VLDB Endow.3
2019 The Impact of RDMA on Agreement
abstract
Remote Direct Memory Access (RDMA) is becoming widely available in data centers. This technology allows a process to directly read and write the memory of a remote host, with a mechanism to control access permissions. In this paper, we study the fundamental power of these capabilities. We consider the well-known problem of achieving consensus despite failures, and find that RDMA can improve the inherent trade-off in distributed computing between failure resilience and performance. Specifically, we show that RDMA allows algorithms that simultaneously achieve high resilience and high performance, while traditional algorithms had to choose one or another. With Byzantine failures, we give an algorithm that only requires n \geq 2f_P + 1 processes (where f_P is the maximum number of faulty processes) and decides in two (network) delays in common executions. With crash failures, we give an algorithm that only requires n \geq f_P + 1 processes and also decides in two delays. Both algorithms tolerate a minority of memory failures inherent to RDMA, and they provide safety in asynchronous systems and liveness with standard additional assumptions.
Marcos K. Aguilera, Naama Ben-David, Rachid Guerraoui, Virendra J. Marathe, Igor Zablotchi
PODC4
2018 An NVM Carol: Visions of NVM Past, Present, and Future
abstract
Around 2010, we observed significant research activity around the development of non-volatile memory technologies. Shortly thereafter, other research communities began considering the implications of non-volatile memory on system design, from storage systems to data management solutions to entire systems. Finally, in July 2015, Intel and Micron Technology announced 3D XPoint. It's now 2018; Intel is shipping its technology in SSD packages, but we've not yet seen the widespread availability of byte-addressable non-volatile memory that resides on the memory bus. We can view non-volatile memory technology and its impact on systems through an historical lens revealing it as the convergence of several past research trends starting with the concept of single-level store, encompassing the 1980s excitement around bubble memory, building upon persistent object systems, and leveraging recent work in transactional memory. We present this historical context, recalling past ideas that seem particularly relevant and potentially applicable and highlighting aspects that are novel.
Margo I. Seltzer, Virendra J. Marathe, Steve Byan
ICDE2
2018 Brief Announcement: Persistent Multi-Word Compare-and-Swap
abstract
This brief announcement presents a fundamental concurrent primitive for persistent memory - a persistent atomic multi-word compare-and-swap (PMCAS).We present a novel algorithm carefully crafted to ensure that atomic updates to a multitude of words modified by the PMCAS are persisted correctly. Our algorithm leverages hardware transactional memory (HTM) for concurrency control, and has a total of 3 persist barriers in its critical path. We also overview variants based on just the compare-and-swap (CAS) instruction and a hybrid of CAS and HTM.
Matej Pavlovic, Alex Kogan, Virendra J. Marathe, Tim Harris 0001
PODC3
2018 A persistent lock-free queue for non-volatile memory
abstract
Non-volatile memory is expected to coexist with (or even displace) volatile DRAM for main memory in upcoming architectures. This has led to increasing interest in the problem of designing and specifying durable data structures that can recover from system crashes. Data structures may be designed to satisfy stricter or weaker durability guarantees to provide a balance between the strength of the provided guarantees and performance overhead. This paper proposes three novel implementations of a concurrent lock-free queue. These implementations illustrate algorithmic challenges in building persistent lock-free data structures with different levels of durability guarantees. In presenting these challenges, the proposed algorithmic designs, and the different durability guarantees, we hope to shed light on ways to build a wide variety of durable data structures. We implemented the various designs and compared their performance overhead to a simple queue design for standard (volatile) memory.
Michal Friedman 0001, Maurice Herlihy, Virendra J. Marathe, Erez Petrank
PPoPP3
2018 Closing the Performance Gap Between Volatile and Persistent Key-Value Stores Using Cross-Referencing Logs
Yihe Huang, Matej Pavlovic, Virendra J. Marathe, Margo I. Seltzer, Tim Harris 0001, Steve Byan
USENIX ATC3
2017 Persistent Memcached: Bringing Legacy Code to Byte-Addressable Persistent Memory
Virendra J. Marathe, Margo I. Seltzer, Steve Byan, Tim Harris 0001
HotStorage1
2017 Brief Announcement: A Persistent Lock-Free Queue for Non-Volatile Memory
abstract
Non-volatile memory is expected to coexist with (or even displace) volatile DRAM for main memory in upcoming architectures. As a result, there is increasing interest in the problem of designing and specifying durable data structures that can recover from system crashes. Data-structures may be designed to satisfy stricter or weaker durability guarantees to provide a balance between the strength of the provided guarantees and performance overhead. This paper proposes three novel implementations of a concurrent lock-free queue. These implementations illustrate the algorithmic challenges in building persistent lock-free data structures with different levels of durability guarantees. We believe that by presenting these challenges, along with the proposed algorithmic designs, and the possible levels of durability guarantees, we can shed light on avenues for building a wide variety of durable data structures. We implemented the various designs and evaluate their performance overhead compared to a simple queue design for standard (volatile) memory.
Michal Friedman 0001, Maurice Herlihy, Virendra J. Marathe, Erez Petrank
DISC3
2015 LLAMA: Efficient graph analytics using Large Multiversioned Arrays
abstract
We present LLAMA, a graph storage and analysis system that supports mutability and out-of-memory execution. LLAMA performs comparably to immutable main-memory analysis systems for graphs that fit in memory and significantly outperforms existing out-of-memory analysis systems for graphs that exceed main memory. LLAMA bases its implementation on the compressed sparse row (CSR) representation, which is a read-only representation commonly used for graph analytics. We augment this representation to support mutability and persistence using a novel implementation of multi-versioned array snapshots, making it ideal for applications that receive a steady stream of new data, but need to perform whole-graph analysis on consistent views of the data. We compare LLAMA to state-of-the-art systems on representative graph analysis workloads, showing that LLAMA scales well both out-of-memory and across parallel cores. Our evaluation shows that LLAMA's mutability introduces modest overheads of 3-18% relative to immutable CSR for in-memory execution and that it outperforms state-of-the-art out-of-memory systems in most cases, with a best case improvement of 5x on breadth-first-search.
Peter Macko, Virendra J. Marathe, Daniel W. Margo, Margo I. Seltzer
ICDE2
2014 Callisto: co-scheduling parallel runtime systems
abstract
It is increasingly important for parallel applications to run together on the same machine. However, current performance is often poor: programs do not adapt well to dynamically varying numbers of cores, and the CPU time received by concurrent jobs can differ drastically. This paper introduces Callisto, a resource management layer for parallel runtime systems. We describe Callisto and the implementation of two Callisto-enabled runtime systems---one for OpenMP, and another for a task-parallel programming model. We show how Callisto eliminates almost all of the scheduler-related interference between concurrent jobs, while still allowing jobs to claim otherwise-idle cores. We use examples from two recent graph analytics projects and from SPEC OMP.
Tim Harris 0001, Martin Maas 0001, Virendra J. Marathe
EuroSys3
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
SPAA2
2013 Message Passing or Shared Memory: Evaluating the Delegation Abstraction for Multicores
Irina Calciu, David Dice, Tim Harris 0001, Maurice Herlihy, Alex Kogan, Virendra J. Marathe, Mark Moir
OPODIS6
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
PPoPP5
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
PPoPP2
2011 Transaction communicators: enabling cooperation among concurrent transactions
abstract
In this paper, we propose to extend transactional memory with transaction communicators, special objects through which concurrent transactions can communicate: changes by one transaction to a communicator can be seen by concurrent transactions before the first transaction commits. Although isolation of transactions is compromised by such communication, we constrain the effects of this compromise by tracking dependencies among transactions, and preventing any transaction from committing unless every transaction whose changes it saw also commits. In particular, mutually dependent transactions must commit or abort together, and transactions that do not communicate remain isolated. To help programmers synchronize accesses to communicators, we also provide special communicator-isolating transactions, which ensure isolation even for accesses to communicators. We propose language features to help programmers express the communicator constructs. We implemented a novel communicators-enabled STM runtime in the Maxine VM. Our preliminary evaluation demonstrates that communicators can be used in diverse settings to improve the performance of transactional programs, and to empower programmers with the ability to safely express within transactions important programming idioms that fundamentally require compromise of transaction isolation (e.g., CSP-style synchronous communication).
Victor Luchangco, Virendra J. Marathe
PPoPP2
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
SPAA2
2010 Simplifying concurrent algorithms by exploiting hardware transactional memory
abstract
We explore the potential of hardware transactional memory (HTM) to improve concurrent algorithms. We illustrate a number of use cases in which HTM enables significantly simpler code to achieve similar or better performance than existing algorithms for conventional architectures. We use Sun's prototype multicore chip, code-named Rock, to experiment with these algorithms, and discuss ways in which its limitations prevent better results, or would prevent production use of algorithms even if they are successful. Our use cases include concurrent data structures such as double ended queues, work stealing queues and scalable non-zero indicators, as well as a scalable malloc implementation and a simulated annealing application. We believe that our paper makes a compelling case that HTM has substantial potential to make effective concurrent programming easier, and that we have made valuable contributions in guiding designers of future HTM features to exploit this potential.
David Dice, Yossi Lev, Virendra J. Marathe, Mark Moir, Daniel Nussbaum, Marek Olszewski
SPAA3
2009 A comprehensive strategy for contention management in software transactional memory
abstract
In Software Transactional Memory (STM), contention management refers to the mechanisms used to ensure forward progress--to avoid livelock and starvation, and to promote throughput and fairness. Unfortunately, most past approaches to contention management were designed for obstruction-free STM frameworks, and impose significant constant-time overheads. Priority-based approaches in particular typically require that reads be visible to all transactions, an expensive property that is not easy to support in most STM systems.
Michael F. Spear, Luke Dalessandro, Virendra J. Marathe, Michael L. Scott
PPoPP3
2008 Scalable Techniques for Transparent Privatization in Software Transactional Memory
abstract
We address the recently recognizedprivatizationproblemin software transactional memory (STM) runtimes, and introduce the notion ofpartiallyvisiblereads(PVRs) to heuristically reduce the overhead of transparent privatization. Specifically, PVRs avoid the need for a "privatization fence" in the absence of conflict with concurrent readers. We present several techniques to trade off the cost of enforcing partial visibility with the precision of conflict detection. We also consider certain special-case variants of our approach, e.g., for predominantly read-only workloads. We compare our implementations to prior techniques on a multicoreNiagara1system using a variety of artificial workloads. Our results suggest that while no one technique performs best in all cases, a dynamic hybrid of PVRs and strict in-order commits is stable and reasonably fast across a wide range of load parameters. At the same time, the remaining overheads are high enough to suggest the need for programming model or architectural support.
Virendra J. Marathe, Michael F. Spear, Michael L. Scott
ICPP1
2008 Ordering-Based Semantics for Software Transactional Memory
Michael F. Spear, Luke Dalessandro, Virendra J. Marathe, Michael L. Scott
OPODIS3
2008 Toward high performance nonblocking software transactional memory
abstract
Substantial advances in STM performance in recent years have mostly focused on blocking systems. We describe our work integrating the most important techniques and optimizations emerging from the recent work on blocking STMs into several variants of a nonblocking STM.
Virendra J. Marathe, Mark Moir
PPoPP1
2007 An integrated hardware-software approach to flexible transactional memory
abstract
There has been considerable recent interest in the support of transactional memory (TM) in both hardware and software. We present an intermediate approach, in which hardware is used to accelerate a TM implementation controlled fundamentally by software. Our hardware support reduces the overhead of common TM tasks, namely, conflict detection and data isolation, for bounded transactions. Software control allows policy flexibility for conflict detection, contention management, and data granularity, in addition to enabling transactions unbounded in space and time. Our hardware consists of 1) an alert-on-update mechanism for fast eventbased communication, used for software-controlled conflict detection; and 2) support for programmable data isolation, allowing multiple concurrent transactional readers and writers at the software’s behest, along with fast data commit and abort support (using only a few cycles of completely local operation). Our results show that for common-case bounded transactions, the proposed hardware mechanisms eliminate data copying and dramatically reduce the overhead of bookkeeping and validation (resulting in a factor of 2 improvement in performance on average). Moreover, RTM shows good scalability as the number of threads is increased and graceful degradation in performance when transactions overflow available hardware support. Detecting conflicts eagerly (on first access) or lazily (at commit time), enabled by the ability to handle multiple concurrent transactional writers and readers, can result in differences in performance in either direction depending on the application access pattern (up to two orders of magnitude at 16 threads for one workload), demonstrating the need for policy flexibility.
Arrvindh Shriraman, Michael F. Spear, Hemayet Hossain, Virendra J. Marathe, Sandhya Dwarkadas, Michael L. Scott
ISCA4
2007 Transactions and privatization in Delaunay triangulation
abstract
No abstract available.
Michael L. Scott, Michael F. Spear, Luke Dalessandro, Virendra J. Marathe
PODC4
2007 Privatization techniques for software transactional memory
abstract
No abstract available.
Michael F. Spear, Virendra J. Marathe, Luke Dalessandro, Michael L. Scott
PODC2
2007 Featherweight transactions: decoupling threads and atomic blocks
abstract
No abstract available.
Virendra J. Marathe, Tim Harris 0001, James R. Larus
PPoPP1
2007 Efficient nonblocking software transactional memory
abstract
Foundational transactional memory research grew out of research into nonblocking concurrent data structures, which aim to overcome the many well-known software engineering, performance, and robustness problems associated with lock-based implementations. Recently, many researchers have developed blocking STMs, recognising that they are much easier to design and that the software engineering benefits of STM can be delivered even by a blocking STM. But hiding blocking from the application programmer does not eliminate all of its disadvantages, and in some cases blocking is unacceptable, for example if STM is to be used to coordinate between an interrupt handler and the interrupted thread.
Virendra J. Marathe, Mark Moir
PPoPP1
2007 Transaction Safe Nonblocking Data Structures
Virendra J. Marathe, Michael F. Spear, Michael L. Scott
DISC1
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
IPDPS1
2006 Conflict Detection and Validation Strategies for Software Transactional Memory
Michael F. Spear, Virendra J. Marathe, William N. Scherer III, Michael L. Scott
DISC2
2005 Adaptive Software Transactional Memory
Virendra J. Marathe, William N. Scherer III, Michael L. Scott
DISC1