Disclosed are various embodiments for computing 2-body statistics on graphics processing units (GPU s ). Various types of two-body statistics (2-BS) are regarded as essential components of data analysis in many scientific and computing domains. However, the quadratic complexity of these computations hinders timely processing of data. According, various embodiments of the present disclosure involve parallel algorithms for 2-BS computation on Graphics Processing Units (GPUs). Although the typical 2-BS problems can be summarized into a straightforward parallel computing pattern, traditional wisdom from (general) parallel computing often falls short in delivering the best possible performance. Therefore, various embodiments of the present disclosure involve techniques to decompose 2-BS problems and methods for effective use of computing resources on GPUs. We also develop analytical models that guide users towards the appropriate parameters of a GPU program. Although 2-BS problems share the same core computations, each 2-BS problem however carries its own characteristics that calls for different strategies in code optimization. Accordingly, various embodiments of the present disclosure involve a software framework that automatically generates high-performance GPU code based on a few parameters and short primer code input.Inventors at USF have developed algorithms which solve the 2-BS problem. The algorithm designed, focuses on effective use of hardware/software features that are unique in GPU platforms. This is done by splitting the algorithm into two stages: pairwise distance function computation and writing output. Then, modifications to the basic algorithm is done by integrating various techniques at each stage. Experiments run on modern GPU hardware show that the algorithms devised, outperform the best known CPU program by at least an order of magnitude in various applications.
Brochure