Results 11  20
of
63
Functional Binomial Queues
 In Glasgow Workshop on Functional Programming
, 1994
"... Efficient implementations of priority queues can often be clumsy beasts. We express a functional implementation of binomial queues which is both elegant and efficient. We also quantify some of the differences with other functional implementations. The operations decreaseKey and delete always pose a ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
Efficient implementations of priority queues can often be clumsy beasts. We express a functional implementation of binomial queues which is both elegant and efficient. We also quantify some of the differences with other functional implementations. The operations decreaseKey and delete always pose a problem without destructive update, we show how our implementation may be extended to express these. 1 Functional priority queues A crucial part of many algorithms is the data structure that is used. Frequently, an algorithm needs an abstract data type providing a number of primitive operations on a data structure. A priority queue is one such data structure that is used by a number of algorithms. Applications include, Dijkstra's [4] algorithm for singlesource shortest paths, and the minimum cost spanning tree problem (see Tarjan [12] for a discussion of minimumspanning tree algorithms). See Knuth [8] and Aho et al [1] for many other applications of priority queues. A priority queue is a ...
Weight Biased Leftist Trees and Modified Skip Lists
 Journal of Experimetnal Algorithmics
, 1996
"... this paper, we are concerned primarily with the insert and delete min operations. The different data structures that have been proposed for the representation of a priority queue differ in terms of the performance guarantees they provide. Some guarantee good performance on a per operation basis whil ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
this paper, we are concerned primarily with the insert and delete min operations. The different data structures that have been proposed for the representation of a priority queue differ in terms of the performance guarantees they provide. Some guarantee good performance on a per operation basis while others do this only in the amortized sense. Heaps permit one to delete the min element and insert an arbitrary element into an n element priority queue in O(logn) time per operation; a find min takes O(1) time. Additionally, a heap is an implicit data structure that has no storage overhead associated with it. All other priority queue structures are pointerbased and so require additional storage for the pointers. Leftist trees also support the insert and delete min operations in O(log n) time per operation and the find min operation in O(1) time. Additionally, they permit us to meld pairs of priority queues in logarithmic time
Improving WorstCase Optimal Delaunay Triangulation Algorithms
 In 4th Canadian Conference on Computational Geometry
, 1992
"... We present results of an empirical investigation into the performance of two O(nlogn) worstcase optimal Delaunay triangulation algorithms: a divideandconquer algorithm and a planesweep algorithm. We present improvements which give a factor of 45 speedup to the divideandconquer algorithm and a ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
We present results of an empirical investigation into the performance of two O(nlogn) worstcase optimal Delaunay triangulation algorithms: a divideandconquer algorithm and a planesweep algorithm. We present improvements which give a factor of 45 speedup to the divideandconquer algorithm and a factor of 1316 speedup to the planesweep algorithm. Experiments using our improved implementations of both algorithms show the planesweep algorithm to be slightly faster (about 20%) than the divideandconquer algorithm across a range of distributions. Using our fastest implementation of the planesweep algorithm a set of points can be triangulated in 78 times the time it takes to (merge) sort them.
Incremental Mature Garbage Collection
, 1993
"... Many programming languages provide automatic garbage collection to reduce the need for memory management related programming. However, traditional garbage collection techniques lead to long and unpredictable delays and are therefore not satisfactory in a number of settings, such as interactive syste ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
Many programming languages provide automatic garbage collection to reduce the need for memory management related programming. However, traditional garbage collection techniques lead to long and unpredictable delays and are therefore not satisfactory in a number of settings, such as interactive systems, where nondisruptive behavior is of paramount importance. Advanced techniques, such as generationbased collection, alleviate the problem somewhat by concentrating collection efforts on small but hopefully gainful areas of memory, the socalled young generations. This approach reduces the need for collecting the remaining large memory area, the old generation, but in no way obviates it. Traditionally, conventional techniques have been employed for old generation collection, leading to pauses which, although less frequent, are still highly disruptive. Recently, however, Hudson & Moss have introduced a new algorithm, the Train Algorithm, for performing efficient incremental collection of o...
A package for exact kinetic data structures and sweepline algorithms
, 2007
"... In this paper we present a package for implementing exact kinetic data structures built on objects which move along polynomial trajectories. We discuss how the package design was influenced by various considerations, including extensibility, support for multiple kinetic data structures, access to ex ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
In this paper we present a package for implementing exact kinetic data structures built on objects which move along polynomial trajectories. We discuss how the package design was influenced by various considerations, including extensibility, support for multiple kinetic data structures, access to existing data structures and algorithms in CGAL, as well as debugging. Due to the similarity between the operations involved, the software can also be used to compute arrangements of polynomial objects using a sweepline approach. The package consists of three main parts, the kinetic data structure framework support code, an algebraic kernel which implements the set of algebraic operations required for kinetic data structure processing, and kinetic data structures for Delaunay triangulations in one and two dimensions, and Delaunay and regular triangulations in three dimensions. The models provided for the algebraic kernel support both exact operations and inexact approximations with heuristics to improve numerical stability. 1
Amortization Results for Chromatic Search Trees, with an Application to Priority Queues
, 1997
"... this paper, we prove that only an amortized constant amount of rebalancing is necessary after an update in a chromatic search tree. We also prove that the amount of rebalancing done at any particular level decreases exponentially, going from the leaves toward the root. These results imply that, in p ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
this paper, we prove that only an amortized constant amount of rebalancing is necessary after an update in a chromatic search tree. We also prove that the amount of rebalancing done at any particular level decreases exponentially, going from the leaves toward the root. These results imply that, in principle, a linear number of processes can access the tree simultaneously. We have included one interesting application of chromatic trees. Based on these trees, a priority queue with possibilities for a greater degree of parallelism than previous proposals can be implemented. ] 1997 Academic Press 1.
GMSim: A generalized semiMarkov simulation environment
, 1998
"... A discreteevent simulation environment, called GMSim, based on the generalized semiMarkov process (GSMP) framework is described. The tool is completely generic and extendible by Tcl script programming. Application specific components are developed in an objectedoriented setting by C++ programming ..."
Abstract

Cited by 5 (5 self)
 Add to MetaCart
A discreteevent simulation environment, called GMSim, based on the generalized semiMarkov process (GSMP) framework is described. The tool is completely generic and extendible by Tcl script programming. Application specific components are developed in an objectedoriented setting by C++ programming in combination with M4 macro processing. Components are conveniently integrated by runtime linking. The strong links to the underlying mathematical GSMP description is favorable in two respects. First, qualitative results from a body of theory is readily available. Next, the structured view leads to an efficient implementation.
An Efficient Adaptive Search Algorithm for Scheduling RealTime Traffic
 In Proceedings of 1996 IEEE International Conference on Network Protocols (ICNP ’96
, 1996
"... For many service disciplines that provide delay guarantees, the scheduler of a channel repeatedly searches for the smallest element in a set of priority values (or deadlines). It is required that each search fin ishes within a time bound. Furthermore, the search algorithm should be highly efficient ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
For many service disciplines that provide delay guarantees, the scheduler of a channel repeatedly searches for the smallest element in a set of priority values (or deadlines). It is required that each search fin ishes within a time bound. Furthermore, the search algorithm should be highly efficient. To meet these requirements, we have developed a search algorithm based upon a new data structure, called adaptive heap; it behaves like a heap most of the time, but adaptively changes its strategy when necessary to satisfy the time bound. We show that the algorithm has optimal worstcase time complexity and good average performance. To further improve efficiency, the basic algorithm is extended to include .the use of group scheduling. We present empirical results on the performance of adaptive heap search with and without group scheduling. We conclude that adaptive heap search performs as intended, and that group scheduling provides a substantial reduction in the scheduler's work when channel utiliza tion is high.
Using SIMD Registers and Instructions to Enable InstructionLevel Parallelism in Sorting Algorithms
, 2007
"... Most contemporary processors offer some version of Single Instruction Multiple Data (SIMD) machinery — vector registers and instructions to manipulate data stored in such registers. The central idea of this paper is to use these SIMD resources to improve the performance of the tail of recursive sort ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
Most contemporary processors offer some version of Single Instruction Multiple Data (SIMD) machinery — vector registers and instructions to manipulate data stored in such registers. The central idea of this paper is to use these SIMD resources to improve the performance of the tail of recursive sorting algorithms. When the number of elements to be sorted reaches a set threshold, data is loaded into the vector registers, manipulated inregister, and the result stored back to memory. Three implementations of sorting with two different SIMD machineries — x8664’s SSE2 and G5’s AltiVec — demonstrate that this idea delivers significant speed improvements. The improvements provided are orthogonal to the gains obtained through empirical search for a suitable sorting algorithm [11]. When integrated with the Dynamically Tuned Sorting Library (DTSL) this new code generation strategy reduces the time spent by DTSL up to 22 % for moderatelysized arrays, with greater relative reductions for small arrays. Wallclock performance of dheaps is improved by up to 39 % using a similar technique.
A Communication Architecture for Multiprocessor Networks
, 1989
"... The system described in this thesis explores the territory between the two classical multiprocessor families: shared memory and messagepassing machines. Like shared memory systems, the proposed architecture presents the user a logically uniform address space shared by all processors. This programmi ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
The system described in this thesis explores the territory between the two classical multiprocessor families: shared memory and messagepassing machines. Like shared memory systems, the proposed architecture presents the user a logically uniform address space shared by all processors. This programming model is supported directly by dedicated communication hardware that is translating memory references into messages that are exchanged over a network of point to point channels. The key parts of this work are the communication system and its integration with contemporary processor and memory components to form a homogeneous, generalpurpose multiprocessor. The communication system is based on an adaptive routing heuristic that is independent of the actual network topology. High priority was given to optimal use of the physical bandwidth even under heavy or saturated load conditions. The communication system can be extended in small, incremental upgrades and supports medium haul channels that can link two or more multiprocessor clusters together in a transparent fashion. Integration of the communication system is based on the shared memory model. This avoids the overhead of explicitly sending and receiving messages but introduces the problem of maintaining a consistent state. Memory coherence is achieved through the notion of time. A system wide clock of sufficient precision to sequentialize concurrent access is maintained in hardware. As a measure to avoid unnecessary synchronizations, the memory model is relaxed to allow transient inconsistencies. Application code can explicitly resort to strongly coherent memory access at the expense of higher latency. The primary tool for assessing the performance of the proposed architecture was a simulator that can execute application programs for the target system. Nonintrusive instrumentation was provided down to individual clock cycles. A tracebased visualization tool aided both the debugging of the architecture and the application code benchmarks. Acknowledgments