English
Related papers

Related papers: Cache-Aware Lock-Free Concurrent Hash Tries

200 papers

Two key synchronization paradigms for the construction of scalable concurrent data-structures are software combining and elimination. Elimination-based concurrent data-structures allow operations with reverse semantics (such as push and pop…

Distributed, Parallel, and Cluster Computing · Computer Science 2011-07-01 Gal Bar-Nissan , Danny Hendler , Adi Suissa

Transactional memory has arisen as a good way for solving many of the issues of lock-based programming. However, most implementations admit isolated transactions only, which are not adequate when we have to coordinate communicating…

Programming Languages · Computer Science 2015-05-14 Marino Miculan , Marco Peressotti , Andrea Toneguzzo

We propose a novel notion of pointer race for concurrent programs manipulating a shared heap. A pointer race is an access to a memory address which was freed, and it is out of the accessor's control whether or not the cell has been…

Programming Languages · Computer Science 2015-11-12 Frédéric Haziza , Lukáš Holík , Roland Meyer , Sebastian Wolff

Hashmap is a fundamental data structure in computer science. There has been extensive research on constructing hashmaps that minimize the number of collisions leading to efficient lookup query time. Recently, the data-dependant approaches,…

Data Structures and Algorithms · Computer Science 2024-04-16 Abolfazl Asudeh , Nima Shahbazi , Stavros Sintos

In studying the statistical frequency of exchange in comparison-exchange (CE) networks we discover a new elementary form of comparison-exchange which we name the "2-op". The operation supports concurrent and non-interfering operations of…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-08-16 Alan W. Paeth

Homomorphic encryption has largely been studied in context of public key cryptosystems. But there are applications which inherently would require symmetric keys. We propose a symmetric key encryption scheme with fully homomorphic evaluation…

Cryptography and Security · Computer Science 2013-10-10 Iti Sharma

Locks are a classic data structure for concurrent programming. We introduce a type system to ensure that names of the asynchronous pi-calculus are used as locks. Our calculus also features a construct to deallocate a lock once we know that…

Logic in Computer Science · Computer Science 2023-09-15 Daniel Hirschkoff , Enguerrand Prebet

An immutable multi-map is a many-to-many thread-friendly map data structure with expected fast insert and lookup operations. This data structure is used for applications processing graphs or many-to-many relations as applied in static…

Data Structures and Algorithms · Computer Science 2016-08-04 Michael J. Steindorfer , Jurgen J. Vinju

Consistent hashing is a technique that can minimize key remapping when the number of hash buckets changes. The paper proposes a fast consistent hash algorithm (called power consistent hash) that has $O(1)$ expected time for key lookup,…

Data Structures and Algorithms · Computer Science 2023-12-29 Eric Leu

Multihop ad hoc wireless networks consist of mobile nodes that communicate with each other without any fixed infrastructure. The nodes in these networks are power constrained, since they operate in limited battery energy. Cooperative…

Networking and Internet Architecture · Computer Science 2014-06-23 Preetha Theresa Joy , K. Poulose Jacob

In this paper we discuss the problem of generically finding near-collisions for cryptographic hash functions in a memoryless way. A common approach is to truncate several output bits of the hash function and to look for collisions of this…

Cryptography and Security · Computer Science 2012-10-10 Mario Lamberger , Elmar Teufl

Hash table is a fundamental data structure for quick search and retrieval of data. It is a key component in complex graph analytics and AI/ML applications. State-of-the-art parallel hash table implementations either make some simplifying…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-08-24 Ruizhi Zhang , Sasindu Wijeratne , Yang Yang , Sanmukh R. Kuppannagari , Viktor K. Prasanna

Tree data structures, such as red-black trees, quad trees, treaps, or tries, are fundamental tools in computer science. A classical problem in concurrency is to obtain expressive, efficient, and scalable versions of practical tree data…

Databases · Computer Science 2023-10-10 Ilya Kokorin , Dan Alistarh , Vitaly Aksenov

In this paper, we first propose a new liveness requirement for shared objects and data structures, we then give a shared queue algorithm that satisfies this requirement and we prove its correctness. We also implement this algorithm and…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-03-23 David Y. C. Chan , Shucheng Chi , Vassos Hadzilacos , Sam Toueg

Tries are popular data structures for storing a set of strings, where common prefixes are represented by common root-to-node paths. Over fifty years of usage have produced many variants and implementations to overcome some of their…

Data Structures and Algorithms · Computer Science 2011-12-06 Roberto Grossi , Giuseppe Ottaviano

Locking protocol is an essential component in resource management of real-time systems, which coordinates mutually exclusive accesses to shared resources from different tasks. Although the design and analysis of locking protocols have been…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-03-19 Xu Jiang , Nan Guan , He Du , Weichen Liu , Wang Yi

Consistent Hashing functions are widely used for load balancing across a variety of applications. However, the original presentation and typical implementations of Consistent Hashing rely on randomised allocation of hash codes to keys which…

Data Structures and Algorithms · Computer Science 2015-03-19 Matthew Sackman

We propose a novel, operational framework to formally describe the semantics of concurrent programs running within the context of a relaxed memory model. Our framework features a "temporary store" where the memory operations issued by the…

Programming Languages · Computer Science 2012-08-30 Gérard Boudol , Gustavo Petri , Bernard Serpette

Shared memory programming models usually provide worksharing and task constructs. The former relies on the efficient fork-join execution model to exploit structured parallelism; while the latter relies on fine-grained synchronization among…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-04-08 M. Maronas , K. Sala , S. Mateo , E. Ayguadé , V. Beltran Barcelona Supercomputing Center

This work presents a novel trie (prefix-tree)-based parallel decoding method that addresses the memory inefficiency of batch-based beam search. By sharing a single KV cache across beams with common prefixes, our approach dramatically…

Computation and Language · Computer Science 2025-09-23 Brian J Chan , MaoXun Huang , Jui-Hung Cheng , Chao-Ting Chen , Hen-Hsen Huang