Results 1 
3 of
3
Engineering a cacheoblivious sorting algorithm
 In Proc. 6th Workshop on Algorithm Engineering and Experiments
, 2004
"... The cacheoblivious model of computation is a twolevel memory model with the assumption that the parameters of the model are unknown to the algorithms. A consequence of this assumption is that an algorithm efficient in the cache oblivious model is automatically efficient in a multilevel memory mod ..."
Abstract

Cited by 25 (1 self)
 Add to MetaCart
The cacheoblivious model of computation is a twolevel memory model with the assumption that the parameters of the model are unknown to the algorithms. A consequence of this assumption is that an algorithm efficient in the cache oblivious model is automatically efficient in a multilevel memory model. Since the introduction of the cacheoblivious model by Frigo et al. in 1999, a number of algorithms and data structures in the model has been proposed and analyzed. However, less attention has been given to whether the nice theoretical proporities of cacheoblivious algorithms carry over into practice. This paper is an algorithmic engineering study of cacheoblivious sorting. We investigate a number of implementation issues and parameters choices for the cacheoblivious sorting algorithm Lazy Funnelsort by empirical methods, and compare the final algorithm with Quicksort, the established standard for comparison based sorting, as well as with recent cacheaware proposals. The main result is a carefully implemented cacheoblivious sorting algorithm, which we compare to the best implementation of Quicksort we can find, and find that it competes very well for input residing in RAM, and outperforms Quicksort for input on disk. 1
Distributed Computation of the Mode
 PODC'08
, 2008
"... This paper studies the problem of computing the most frequent element (the mode) by means of a distributed algorithm where the elements are located at the nodes of a network. Let k denote the number of distinct elements and further let mi be the number of occurrences of the element ei in the ordered ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
(Show Context)
This paper studies the problem of computing the most frequent element (the mode) by means of a distributed algorithm where the elements are located at the nodes of a network. Let k denote the number of distinct elements and further let mi be the number of occurrences of the element ei in the ordered list of occurrences m1> m2> =...> = mk. We give a deterministic distributed algorithm with time complexity O(D+k) where D denotes the diameter of the graph, which is essentially tight. As our main contribution, a Monte Carlo algorithm is presented which computes the mode in O(D + F2/m21 * log k) time with high probability, where the frequency moment F ` is deo/ned as F ` = Pki=1 m`i. This algorithm is substantially faster than the deterministic algorithm for various relevant frequency distributions. Moreover, we provide a lower bound of \Omega (D + F5/(m51B)), where B is the maximum message size, that captures the effect of the frequency distribution on the time complexity to compute the mode.
and
"... This paper is an algorithmic engineering study of cacheoblivious sorting. We investigate by empirical methods a number of implementation issues and parameter choices for the cacheoblivious sorting algorithm Lazy Funnelsort and compare the final algorithm with Quicksort, the established standard f ..."
Abstract
 Add to MetaCart
This paper is an algorithmic engineering study of cacheoblivious sorting. We investigate by empirical methods a number of implementation issues and parameter choices for the cacheoblivious sorting algorithm Lazy Funnelsort and compare the final algorithm with Quicksort, the established standard for comparisonbased sorting, as well as with recent cacheaware proposals. The main result is a carefully implemented cacheoblivious sorting algorithm, which, our experiments show, can be faster than the best Quicksort implementation we are able to find for input sizes well within the limits of RAM. It is also at least as fast as the recent cacheaware implementations included in the test. On disk, the difference is even more pronounced regarding Quicksort and the cacheaware algorithms, whereas the algorithm is slower than a careful implementation of multiway Mergesort,