Welcome to DiSC 2003
SIGMOD 2002
PODS 2002
 SIGMOD RECORD 2002
 ADBIS 2002
CIKM 2002
CoopIS 2002
 EDBT 2002
 ER 2002
Data Engineering Bul
DEXA_EC-WEB 2002
DMKD 2002
 DPDJ 2002
<<< = DPDJ'02 Papers>>>
HYPERTEXT 2002
ICDE 2002
ICDM 2002
JCDL 2002
KDD 2002
 KDD_EXPLORATIONS 20
KRDB 2002
MDM 2002
MIS 2002
RIDE 2002
SBBD 2002
 SIGIR 2002
 SIGIR FORUM 2002
SSDBM 2002
TODS 2002
TIME 2002
VLDB 2002
VLDBJ 2002

Parallelizing the Data Cube


Frank K. H. A. Dehne, Todd Eavis, Susanne E. Hambrusch, and Andrew Rau-Chaplin



Return to Volume 11, Number 2, Mar 2002


Abstract

This paper presents a general methodology for the efficient parallelization of existing data cube construction algorithms. We describe two different partitioning strategies, one for top-down and one for bottom-up cube algorithms. Both partitioning strategies assign subcubes to individual processors in such a way that the loads assigned to the processors are balanced. Our methods reduce inter processor communication overhead by partitioning the load in advance instead of computing each individual group-by in parallel. Our partitioning strategies create a small number of coarse tasks. This allows for sharing of prefixes and sort orders between different group-by computations. Our methods enable code reuse by permitting the use of existing sequential (external memory) data cube algorithms for the subcube computations on each processor. This supports the transfer of optimized sequential data cube code to a parallel setting. The bottom-up partitioning strategy balances the number of single attribute external memory sorts made by each processor. The top-down strategy partitions a weighted tree in which weights reflect algorithm specific cost measures like estimated group-by sizes. Both partitioning approaches can be implemented on any shared disk type parallel machine composed of p processors connected via an interconnection fabric and with access to a shared parallel disk array. We have implemented our parallel top-down data cube construction method in C++ with the MPI message passing library for communication and the LEDA library for the required graph algorithms. We tested our code on an eight processor cluster, using a variety of different data sets with a range of sizes, dimensions, density, and skew. Comparison tests were performed on a SunFire 6800. The tests show that our partitioning strategies generate a close to optimal load balance between processors. The actual run times observed show an optimal speedup of p.


DiSC'03 © 2003 Association for Computing Machinery