Parallel Computing of Kernel Density Estimation with Different Multi-core Programming Models

Kernel density estimation is nowadays very popular tool for nonparametric probabilistic density estimation. One of its most important disadvantages is computational complexity of computations needed, especially for large data sets. One way for accelerating these computations is to use the parallel computing with multi-core platforms. In this paper we parallelize two kernel estimation methods such as the univariate and multivariate kernel estimation from the field of the computational econometrics on multi-core platform using different programming frameworks such as Pthreads, OpenMP, Intel Cilk++, Intel TBB, SWARM and FastFlow. The purpose of this paper is to present an extensive quantitative (i.e., performance) and qualitative (i.e., the ease of programming effort) study of the multi-core programming frameworks for these two kernel estimation methods.

[1]  Bradford Nichols,et al.  Pthreads programming - a POSIX standard for better multiprocessing , 1996 .

[2]  Szymon Lukasik,et al.  Parallel Computing of Kernel Density Estimates with MPI , 2007, International Conference on Computational Science.

[3]  Fatos Xhafa,et al.  Programming multi-core and many-core computing systems , 2014 .

[4]  Larry S. Davis,et al.  Efficient Kernel Density Estimation Using the Fast Gauss Transform with Applications to Color Modeling and Tracking , 2003, IEEE Trans. Pattern Anal. Mach. Intell..

[5]  Mancia Anguita,et al.  MPI Toolbox for Octave , 2001 .

[6]  Rahul Garg,et al.  Comparison of Parallel Programming Models for Multicore Architectures , 2011, 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum.

[7]  Bernard W. Silverman,et al.  Density Estimation for Statistics and Data Analysis , 1987 .

[8]  Jeffrey S. Racine,et al.  Parallel distributed kernel estimation , 2002 .

[9]  B. Silverman,et al.  Kernel Density Estimation Using the Fast Fourier Transform , 1982 .

[10]  B. Silverman,et al.  Algorithm AS 176: Kernel Density Estimation Using the Fast Fourier Transform , 1982 .

[11]  Jussi Klemel,et al.  Smoothing of Multivariate Data , 2009 .

[12]  Erricos John Kontoghiorghes,et al.  Handbook of Parallel Computing and Statistics , 2005 .

[13]  Dirk P. Kroese,et al.  Kernel density estimation via diffusion , 2010, 1011.2602.

[14]  Dennis J. Volper,et al.  Geometric retrieval in parallel , 1988 .

[15]  Peter Kilpatrick,et al.  Accelerating Code on Multi-cores with FastFlow , 2011, Euro-Par.

[16]  James Reinders,et al.  Intel® threading building blocks , 2008 .

[17]  Erricos John Kontoghiorghes,et al.  Parallel Algorithms for Linear Models: Numerical Methods and Estimation Problems , 2000 .

[18]  David A. Bader,et al.  SIMPLE: A Methodology for Programming High Performance Algorithms on Clusters of Symmetric Multiprocessors (SMPs) , 1998, J. Parallel Distributed Comput..

[19]  Szymon Łukasik,et al.  Parallel Computing of Kernel Density Estimates with MPI , 2007 .

[20]  William L. Goffe,et al.  Multi-core CPUs, Clusters, and Grid Computing: A Tutorial , 2005 .

[21]  David A. Bader,et al.  SWARM: A Parallel Programming Framework for Multicore Processors , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[22]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.

[23]  Jussi Klemel,et al.  Smoothing of Multivariate Data: Density Estimation and Visualization , 2009 .

[24]  Sergei Gorlatch,et al.  Comparing programming models for medical imaging on multi‐core systems , 2011, Concurr. Comput. Pract. Exp..

[25]  A. V. Dobrovidov,et al.  Bandwidth selection in nonparametric estimator of density derivative by smoothed cross-validation method , 2010 .

[26]  Michael Creel,et al.  User-Friendly Parallel Computations with Econometric Examples , 2005 .

[27]  Niall M. Adams,et al.  A review of parallel processing for statistical computation , 1996, Stat. Comput..

[28]  James Reinders,et al.  Intel threading building blocks - outfitting C++ for multi-core processor parallelism , 2007 .