Results 1  10
of
10
On Parallel Hashing and Integer Sorting
, 1991
"... The problem of sorting n integers from a restricted range [1::m], where m is superpolynomial in n, is considered. An o(n log n) randomized algorithm is given. Our algorithm takes O(n log log m) expected time and O(n) space. (Thus, for m = n polylog(n) we have an O(n log log n) algorithm.) The al ..."
Abstract

Cited by 25 (9 self)
 Add to MetaCart
The problem of sorting n integers from a restricted range [1::m], where m is superpolynomial in n, is considered. An o(n log n) randomized algorithm is given. Our algorithm takes O(n log log m) expected time and O(n) space. (Thus, for m = n polylog(n) we have an O(n log log n) algorithm.) The algorithm is parallelizable. The resulting parallel algorithm achieves optimal speed up. Some features of the algorithm make us believe that it is relevant for practical applications. A result of independent interest is a parallel hashing technique. The expected construction time is logarithmic using an optimal number of processors, and searching for a value takes O(1) time in the worst case. This technique enables drastic reduction of space requirements for the price of using randomness. Applicability of the technique is demonstrated for the parallel sorting algorithm, and for some parallel string matching algorithms. The parallel sorting algorithm is designed for a strong and non standard mo...
Efficient Randomized Dictionary Matching Algorithms (Extended Abstract)
, 1992
"... The standard string matching problem involves finding all occurrences of a single pattern in a single text. While this approach works well in many application areas, there are some domains in which it is more appropriate to deal with dictionaries of patterns. A dictionary is a set of patterns; the ..."
Abstract

Cited by 18 (5 self)
 Add to MetaCart
The standard string matching problem involves finding all occurrences of a single pattern in a single text. While this approach works well in many application areas, there are some domains in which it is more appropriate to deal with dictionaries of patterns. A dictionary is a set of patterns; the goal of dictionary matching is to find all dictionary patterns in a given text, simultaneously. In string matching, randomized algorithms have primarily made use of randomized hashing functions which convert strings into "signatures" or "finger prints". We explore the use of finger prints in conjunction with other randomized and deterministic techniques and data structures. We present several new algorithms for dictionary matching, along with parallel algorithms which are simpler of more efficient than previously known algorithms.
Structural Parallel Algorithmics
, 1991
"... The first half of the paper is a general introduction which emphasizes the central role that the PRAM model of parallel computation plays in algorithmic studies for parallel computers. Some of the collective knowledgebase on nonnumerical parallel algorithms can be characterized in a structural way ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
The first half of the paper is a general introduction which emphasizes the central role that the PRAM model of parallel computation plays in algorithmic studies for parallel computers. Some of the collective knowledgebase on nonnumerical parallel algorithms can be characterized in a structural way. Each structure relates a few problems and technique to one another from the basic to the more involved. The second half of the paper provides a bird'seye view of such structures for: (1) list, tree and graph parallel algorithms; (2) very fast deterministic parallel algorithms; and (3) very fast randomized parallel algorithms. 1 Introduction Parallelism is a concern that is missing from "traditional" algorithmic design. Unfortunately, it turns out that most efficient serial algorithms become rather inefficient parallel algorithms. The experience is that the design of parallel algorithms requires new paradigms and techniques, offering an exciting intellectual challenge. We note that it had...
Thinking in parallel: Some basic dataparallel algorithms and techniques
 In use as class notes since
, 1993
"... Copyright 19922009, Uzi Vishkin. These class notes reflect the theorertical part in the Parallel ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
Copyright 19922009, Uzi Vishkin. These class notes reflect the theorertical part in the Parallel
Simple Fast Parallel Hashing by Oblivious Execution
 AT&T Bell Laboratories
, 1994
"... A hash table is a representation of a set in a linear size data structure that supports constanttime membership queries. We show how to construct a hash table for any given set of n keys in O(lg lg n) parallel time with high probability, using n processors on a weak version of a crcw pram. Our algo ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
A hash table is a representation of a set in a linear size data structure that supports constanttime membership queries. We show how to construct a hash table for any given set of n keys in O(lg lg n) parallel time with high probability, using n processors on a weak version of a crcw pram. Our algorithm uses a novel approach of hashing by "oblivious execution" based on probabilistic analysis to circumvent the parity lower bound barrier at the nearlogarithmic time level. The algorithm is simple and is sketched by the following: 1. Partition the input set into buckets by a random polynomial of constant degree. 2. For t := 1 to O(lg lg n) do (a) Allocate M t memory blocks, each of size K t . (b) Let each bucket select a block at random, and try to injectively map its keys into the block using a random linear function. Buckets that fail carry on to the next iteration. The crux of the algorithm is a careful a priori selection of the parameters M t and K t . The algorithm uses only O(lg lg...
Parallel Update And Search In Skip Lists
"... We present a PRAM implementation of a parallel dictionary with skip lists. More precisely, we give algorithms to search, insert and delete k ordered elements in a skip list of n elements in parallel. The algorithms are simple and easy to explain and implement. All of them are iterative. They can be ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present a PRAM implementation of a parallel dictionary with skip lists. More precisely, we give algorithms to search, insert and delete k ordered elements in a skip list of n elements in parallel. The algorithms are simple and easy to explain and implement. All of them are iterative. They can be implemented in the EREW PRAM model using O(k) processors in expected time O(log n + log k). The probability that there is a significant deviation from the expected time decreases as O(n \Gamma2 ). 1 INTRODUCTION A skip list is a randomized data structure that can be used for representing abstract data types such as dictionaries and ordered lists. Skip lists were introduced by W. Pugh in 1990 11 and are an alternative to balanced trees; although they have bad worstcase performance, the randomization process involved in their construction guarantees an expected sequential performance of the same order of magnitude as that of balanced trees. Moreover, the probability of the search time o...
A TopDown Design of a Parallel Dictionary using Skip Lists
, 1994
"... We present a top down design of a parallel PRAM dictionary using skip lists. More precisely, we give algorithms to search, insert and delete k ordered elements in a skip list of n elements in parallel. The algorithms are simple and easy to implement on real machines. All of them are iterative. Th ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present a top down design of a parallel PRAM dictionary using skip lists. More precisely, we give algorithms to search, insert and delete k ordered elements in a skip list of n elements in parallel. The algorithms are simple and easy to implement on real machines. All of them are iterative. They can be implemented in the EREW PRAM model using O(k) processors in expected time O(log n+ log k). The probability that there is a significant deviation from the expected time decreases as O(n \Gamma2 ) in the search and as O(n \Gamma2 + k \Gamma2 ) in the insertion and deletion. 1 Introduction Parallel dictionaries are important data structures widely studied. In a systolic framework, priority queues and search trees were designed by C.E. Leiserson in [13]. Later, M.J. Atallah and S.R. Kosaraju [1] developped a generalized dictionary where a sequence of operations can be pipelined at constant rate. In the PRAM context, W. Paul, U. Vishkin and H. Wagener developed and analyzed ...
LowContention Data Structures
 SUBMITTED TO THE SYMPOSIUM ON THEORETICAL ASPECTS OF COMPUTER SCIENCE
, 2010
"... We consider the problem of minimizing contention in static dictionary data structures, where the contention on each cell is measured by the expected number of probes to that cell given an input that is chosen from a distribution that is not known to the query algorithm (but that may be known when th ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We consider the problem of minimizing contention in static dictionary data structures, where the contention on each cell is measured by the expected number of probes to that cell given an input that is chosen from a distribution that is not known to the query algorithm (but that may be known when the data structure is built). When all positive queries are equally probable, and similarly all negative queries are equally probable, we show that it is possible to construct a data structure using linear space s, a constant number of queries, and with contention O(1/s) on each cell, corresponding to a nearlyflat load distribution. All of these quantities are asymptotically optimal. For arbitrary query distributions, the lack of knowledge of the query distribution by the query algorithm prevents perfect load leveling in this case: we present a lower bound, based on VCdimension, that shows that for a wide range of data structure problems, achieving contention even within a polylogarithmic factor of optimal requires a cellprobe complexity of Ω(log log n).
LowContention Data Structures (Extended Abstract)
, 2010
"... We consider the problem of minimizing contention in static dictionary data structures, where the contention on each cell is measured by the expected number of probes to that cell given an input that is chosen from a distribution that is not known to the query algorithm (but that may be known when th ..."
Abstract
 Add to MetaCart
We consider the problem of minimizing contention in static dictionary data structures, where the contention on each cell is measured by the expected number of probes to that cell given an input that is chosen from a distribution that is not known to the query algorithm (but that may be known when the data structure is built). When all positive queries are equally probable, and similarly all negative queries are equally probable, we show that it is possible to construct a data structure using linear space s, a constant number of queries, and with contention O(1/s) on each cell, corresponding to a nearlyflat load distribution. All of these quantities are asymptotically optimal. For arbitrary query distributions, the lack of knowledge of the query distribution by the query algorithm prevents perfect load leveling in this case: we present a lower bound, based on VCdimension, that shows that for a wide range of data structure problems, achieving contention even within a polylogarithmic factor of optimal requires a cellprobe complexity of Ω(log log n).
LowContention Data Structures ✩
"... We consider the problem of minimizing contention in static (readonly) dictionary data structures, where contention is measured with respect to a fixed query distribution by the maximum expected number of probes to any given cell. The query distribution is known by the algorithm that constructs the ..."
Abstract
 Add to MetaCart
We consider the problem of minimizing contention in static (readonly) dictionary data structures, where contention is measured with respect to a fixed query distribution by the maximum expected number of probes to any given cell. The query distribution is known by the algorithm that constructs the data structure but not by the algorithm that queries it. Assume that the dictionary has n items. When all queries in the dictionary are equiprobable, and all queries not in the dictionary are equiprobable, we show how to construct a data structure in O(n) space where queries require O(1) probes and the contention is O(1/n). Asymptotically, all of these quantities are optimal. For arbitrary query distributions, we construct a data structure in O(n) space where each query requires O(log n / log log n) probes and the contention is O(log n/(n log log n)). The lack of knowledge of the query distribution by the query algorithm prevents perfect load leveling in this case: for a large class of algorithms, we present a lower bound, based on VCdimension, that shows that for a wide range of data structure problems, achieving contention even within a polylogarithmic factor of optimal requires a cellprobe complexity of Ω(log log n). Keywords: memory contention, data structure, cellprobe model