Results 21  30
of
34
DiscreteEvent Simulation on the BulkSynchronous Parallel Model
, 1998
"... The bulksynchronous parallel (BSP) model of computing has been proposed to enable the development of portable software which achieves scalable performance across diverse parallel architectures. A number of applications of computing science have been demonstrated to be efficiently supported by the B ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
The bulksynchronous parallel (BSP) model of computing has been proposed to enable the development of portable software which achieves scalable performance across diverse parallel architectures. A number of applications of computing science have been demonstrated to be efficiently supported by the BSP model in practice.
An Efficient Implementation of Parallel A*
, 1994
"... . This paper presents a new parallel implementation of the heuristic state space search A* algorithm. We show the efficiency of a new utilization of data structure the treap, instead of traditional priority queues (heaps). This data structure allows operations such as Insert, DeleteMin and Search wh ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
. This paper presents a new parallel implementation of the heuristic state space search A* algorithm. We show the efficiency of a new utilization of data structure the treap, instead of traditional priority queues (heaps). This data structure allows operations such as Insert, DeleteMin and Search which are essential in the A* algorithm. Furthermore, we give concurrent algorithm of the treap within a shared memory environment. Results on the 15 puzzle are presented; they have been obtained on two machines, with virtual or not shared memory, the KSR1 and the Sequent Balance 8000. Keywords : Heuristic search, A*, data structure, binary search tree, priority queue, parallelism, concurrence. 1 Introduction Search is a technique widely used in Artificial Intelligence (AI) and Operational Research (OR) for solving Discrete Optimization problems [18, 17, 20, 27]. The space of potential solutions of these problems can be specified, but the difficulty is that its cardinality is too large to be ...
Checking and Certifying Computational Results
, 1994
"... For many years, there has been tremendous interest in methods to make computation more reliable. In this thesis, we explore various techniques that can be implemented in software to help insure the correctness of the output of a program. The basic tool we use is a generalization of the notion of a p ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
For many years, there has been tremendous interest in methods to make computation more reliable. In this thesis, we explore various techniques that can be implemented in software to help insure the correctness of the output of a program. The basic tool we use is a generalization of the notion of a program checker called a certifier. A certifier is given intermediate computations from a program computing an answer in an effort to simplify the checking process. The certifier is constructed in such a way that even if the intermediate computations it is given are incorrect, the certifier will never accept an incorrect output. We have constructed certifiers and program checkers for several common abstract data types including mergeable priority queues and splittable priority queues. We have also constructed a certifier for an abstract data type that allows approximate nearest neighbor queries to be performed efficiently. We have implemented and experimentally evaluated some of these algorithms. In the parallel domain, we have developed both general and problem specific techniques for certifying parallel computation. Lastly, we have formally proven correct a certifier for sorting, and have analyzed the advantages of using certifiers in conjunction with formal program verification techniques. This work forms a thesis presented by Jonathan D. Bright to the faculty of the Department of Computer Science, at the Johns Hopkins University, in partial fulfillment of the requirements for the degree of Doctor of Philosophy, under the supervision of Professor Gregory F. Sullivan. iii Acknowledgements I would like to thank my advisor, Gregory Sullivan, for giving me an excellent research topic for my thesis, and for vastly improving my writing skills during my stay at Hopkins. Also, ...
Experimental study of high performance priority queues, 2007. Undergraduate Honors Thesis
, 2007
"... The priority queue is a very important and widely used data structure in computer science, with a variety of applications including Dijkstra’s Single Source Shortest Path algorithm on sparse graph types. This study presents the experimental results of a variety of priority queues. The focus of the e ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
The priority queue is a very important and widely used data structure in computer science, with a variety of applications including Dijkstra’s Single Source Shortest Path algorithm on sparse graph types. This study presents the experimental results of a variety of priority queues. The focus of the experiments is to measure the speed and performance of highly specialized priority queues in outofcore and memory intensive situations. The priority queues are run incore on small input sizes as well as outofcore using large input sizes and restricted memory. The experiments compare a variety of wellknown priority queue implementations such as Binary Heap with highly specialized implementations, such as 4ary Aligned Heap, Chowdhury and Ramachandran’s Auxiliary Buffer Heap, and Fast Binary Heap. The experiments include CacheAware as well as CacheOblivious priority queues. The results indicate that the highperformance priority queues easily outperform traditional implementations. Also, overall the Auxiliary Buffer Heap has the best performance among the priority queues considered in most incore and outofcore situations. 1 1
Thin Heaps, Thick Heaps
, 2006
"... The Fibonacci heap was devised to provide an especially efficient implementation of Dijkstra’s shortest path algorithm. Although asyptotically efficient, it is not as fast in practice as other heap implementations. Expanding on ideas of Høyer, we describe three heap implementations (two versions of ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
The Fibonacci heap was devised to provide an especially efficient implementation of Dijkstra’s shortest path algorithm. Although asyptotically efficient, it is not as fast in practice as other heap implementations. Expanding on ideas of Høyer, we describe three heap implementations (two versions of thin heaps and one of thick heaps) that have the same amortized efficiency as Fibonacci heaps but need less space and promise better practical performance. As part of our development, we fill in a gap in Høyer’s analysis.
Queaps
, 2002
"... We present a new priority queue data structure, the queap, that executes insertion in O(1) amortized time and extractmin in O(log(k + 2)) amortized time if there are k items that have been in the heap longer than the item to be extracted. Thus if the operations on the queap are rstin rstout ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present a new priority queue data structure, the queap, that executes insertion in O(1) amortized time and extractmin in O(log(k + 2)) amortized time if there are k items that have been in the heap longer than the item to be extracted. Thus if the operations on the queap are rstin rstout, as on a queue, each operation will execute in constant time. This idea of trying to make operations on the least recently accessed items fast, which we call the queueish property, is a natural complement to the working set property of certain data structures, such as splay trees and pairing heaps, where operations on the most recently accessed data execute quickly. However, we show that the queueish property is in some sense more dicult than the working set property by demonstrating that it is impossible to create a queueish binary search tree, but that many search data structures can be made almost queueish with a O(log log n) amortized extra cost per operation.
Maintaining a minimum spanning tree under transient node failures
 Proc. of the 8th European Symposium on Algorithms (ESA 2000
"... Abstract. Given a 2node connected, undirected graph G = (V,E), with n nodes and m edges with real weights, and given a minimum spanning tree (MST) T =(V, ET)ofG, we studythe problem of finding, for everynode v ∈ V,theMSTofG − v =(V \{v},E \ Ev), where Ev is the set of edges incident to v in G. We s ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. Given a 2node connected, undirected graph G = (V,E), with n nodes and m edges with real weights, and given a minimum spanning tree (MST) T =(V, ET)ofG, we studythe problem of finding, for everynode v ∈ V,theMSTofG − v =(V \{v},E \ Ev), where Ev is the set of edges incident to v in G. We show that this problem can be solved in O(min(m · α(n, n),m+ n log n)) time and O(m) space. Our solution improves on the previouslyknown O(m log n) time bound. 1
On sorting, heaps, and minimum spanning trees
 Algorithmica
"... Let A be a set of size m. Obtaining the first k ≤ m elements of A in ascending order can be done in optimal O(m + k log k) time. We present Incremental Quicksort (IQS), an algorithm (online on k) which incrementally gives the next smallest element of the set, so that the first k elements are obtaine ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Let A be a set of size m. Obtaining the first k ≤ m elements of A in ascending order can be done in optimal O(m + k log k) time. We present Incremental Quicksort (IQS), an algorithm (online on k) which incrementally gives the next smallest element of the set, so that the first k elements are obtained in optimal expected time for any k. Based on IQS, we present the Quickheap (QH), a simple and efficient priority queue for main and secondary memory. Quickheaps are comparable with classical binary heaps in simplicity, yet are more cachefriendly. This makes them an excellent alternative for a secondary memory implementation. We show that the expected amortized CPU cost per operation over a Quickheap of m elements is O(log m), and this translates into O((1/B)log(m/M)) I/O cost with main memory size M and block size B, in a cacheoblivious fashion. As a direct application, we use our techniques to implement classical Minimum Spanning Tree (MST) algorithms. We use IQS to implement Kruskal’s MST algorithm and QHs to implement Prim’s. Experimental results show that IQS, QHs, external QHs, and our Kruskal’s and Prim’s MST variants are competitive, and in many cases better in practice than current stateoftheart alternative (and much more sophisticated) implementations.
Parallel and Distributed BranchandBound/A* Algorithms
, 1994
"... In this report, we propose new concurrent data structures and load balancing strategies for BranchandBound (B&B)/A* algorithms in two models of parallel programming : shared and distributed memory. For the shared memory model (SMM), we present a general methodology which allows concurrent manipul ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
In this report, we propose new concurrent data structures and load balancing strategies for BranchandBound (B&B)/A* algorithms in two models of parallel programming : shared and distributed memory. For the shared memory model (SMM), we present a general methodology which allows concurrent manipulations for most tree data structures, and show its usefulness for implementation on multiprocessors with global shared memory. Some priority queues which are suited for basic operations performed by B&B algorithms are described : the Skewheaps, the funnels and the Splaytrees. We also detail a specific data structure, called treap and designed for A* algorithm. These data structures are implemented on a parallel machine with shared memory : KSR1. For the distributed memory model (DMM), we show that the use of partial cost in the B&B algorithms is not enough to balance nodes between the local queues. Thus, we introduce another notion of priority, called potentiality, between nodes that take...
A New Priority Queue for Simulation of Many Objects
"... During the discrete event simulation of complex systems based on many active/passive objects, the efficiency of the algorithm and data structure used to manage the events of the process is crucial. Both runtime and space used are relevant for the study of large systems. A main issue in the simulatio ..."
Abstract
 Add to MetaCart
During the discrete event simulation of complex systems based on many active/passive objects, the efficiency of the algorithm and data structure used to manage the events of the process is crucial. Both runtime and space used are relevant for the study of large systems. A main issue in the simulation of these systems are the interactions between pairs of objects. These interactions are treated as events that take place at discrete instants. The event management is performed by using a priority queue in which sequences of events are inserted/deleted in an efficient manner. In this paper we introduce and analyze a new priority queue  called Local Minima  which resembles a hybrid structure between the classical heap and linked lists. We also present empirical results showing that our priority queue is more efficient and stable than other alternatives in the simulation of molecular fluids. Systems with many moving objects  such as molecular fluids  are an important class of applica...