Results 1 
2 of
2
Building a parallel pipelined external memory algorithm library
 In 23rd IEEE International Parallel & Distributed Processing Symposium (IPDPS
, 2009
"... Large and fast hard disks for little money have enabled the processing of huge amounts of data on a single machine. For this purpose, the wellestablished STXXL library provides a framework for external memory algorithms with an easytouse interface. However, the clock speed of processors cannot ke ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Large and fast hard disks for little money have enabled the processing of huge amounts of data on a single machine. For this purpose, the wellestablished STXXL library provides a framework for external memory algorithms with an easytouse interface. However, the clock speed of processors cannot keep up with the increasing bandwidth of parallel disks, making many algorithms actually computebound. To overcome this steadily worsening limitation, we exploit today’s multicore processors with two new approaches. First, we parallelize the internal computation of the encapsulated external memory algorithms by utilizing the MCSTL library. Second, we augment the unique pipelining feature of the STXXL, to enable automatic task parallelization. We show using synthetic and practical use cases that the combination of both techniques increases performance greatly. 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.