Parallelizing the Data Cube

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 as is done in previous parallel approaches. In fact, after the initial load distribution phase, each processor can compute its assigned subcube without any communication with the other processors. 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. Experimental results presented show that our partitioning strategies generate a close to optimal load balance between processors.

[1]  Jeffrey D. Ullman,et al.  Implementing data cubes efficiently , 1996, SIGMOD '96.

[2]  Erik D Vengroff,et al.  I/O Efficient Scientific Computation Using TPIE , 1995 .

[3]  Jeffrey F. Naughton,et al.  On the Computation of Multidimensional Aggregates , 1996, VLDB.

[4]  Andrew Rau-Chaplin,et al.  Scalable parallel computational geometry for coarse grained multicomputers , 1996, Int. J. Comput. Geom. Appl..

[5]  Anil Maheshwari,et al.  Parallel virtual memory , 1999, SODA '99.

[6]  Leslie G. Valiant,et al.  Bulk synchronous parallel computing-a paradigm for transportable software , 1995, Proceedings of the Twenty-Eighth Annual Hawaii International Conference on System Sciences.

[7]  Raghu Ramakrishnan,et al.  Bottom-up computation of sparse and Iceberg CUBE , 1999, SIGMOD '99.

[8]  S. VitterJ.,et al.  Algorithms for parallel memory, I , 1994 .

[9]  Michael Kaufmann,et al.  BSP-Like External-Memory Computation , 1997, CIAC.

[10]  Hongjun Lu,et al.  Multi-cube computation , 2001, Proceedings Seventh International Conference on Database Systems for Advanced Applications. DASFAA 2001.

[11]  Torsten Suel,et al.  BSPlib: The BSP programming library , 1998, Parallel Comput..

[12]  Philippe Flajolet,et al.  Probabilistic Counting Algorithms for Data Base Applications , 1985, J. Comput. Syst. Sci..

[13]  Greg N. Frederickson,et al.  Optimal algorithms for tree partitioning , 1991, SODA '91.

[14]  Andrew Rau-Chaplin,et al.  Scalable parallel geometric algorithms for coarse grained multicomputers , 1993, SCG '93.

[15]  Torsten Suel,et al.  Towards efficiency and portability: programming with the BSP model , 1996, SPAA '96.

[16]  Jeffrey F. Naughton,et al.  Storage Estimation for Multidimensional Aggregates in the Presence of Hierarchies , 1996, VLDB.

[17]  Kenneth A. Ross,et al.  Fast Computation of Sparse Datacubes , 1997, VLDB.

[18]  Jeffrey Scott Vitter External memory algorithms , 1998, PODS '98.

[19]  Jeffrey F. Naughton,et al.  An array-based algorithm for simultaneous multidimensional aggregates , 1997, SIGMOD '97.

[20]  Uzi Vishkin,et al.  Efficient implementation of a shifting algorithm , 2018, Discret. Appl. Math..

[21]  Alok N. Choudhary,et al.  A parallel scalable infrastructure for OLAP and data mining , 1999, Proceedings. IDEAS'99. International Database Engineering and Applications Symposium (Cat. No.PR00265).

[22]  Frank Dehne,et al.  Efficient External Memory Algorithms by Simulating Coarse-Grained Parallel Algorithms , 1997, SPAA '97.

[23]  Forum Mpi MPI: A Message-Passing Interface , 1994 .

[24]  Jeffrey Scott Vitter,et al.  Supporting I/O-efficient scientific computation in TPIE , 1995, Proceedings.Seventh IEEE Symposium on Parallel and Distributed Processing.

[25]  Stephen R. Schach,et al.  A Shifting Algorithm for Min-Max Tree Partitioning , 1980, JACM.

[26]  Anil Maheshwari,et al.  Reducing I/O complexity by simulating coarse grained parallel algorithms , 1999, Proceedings 13th International Parallel Processing Symposium and 10th Symposium on Parallel and Distributed Processing. IPPS/SPDP 1999.

[27]  Raymond T. Ng,et al.  Iceberg-cube computation with PC clusters , 2001, SIGMOD '01.