140 likes | 284 Vues
This project presentation by Savitha Parur Venkitachalam focuses on efficient 2D orthogonal range searching in d-dimensional space using KD trees. It discusses preprocessing steps to construct KD trees that enable efficient querying and point reporting within specified ranges. The project includes parallel algorithms to distribute data among processors, significantly reducing time complexity and storage requirements. The results show performance improvements with varying loads, highlighting the potential for multi-threading and accuracy validation in range searching.
E N D
Parallel Orthogonal Range Searching Project Presentation by SavithaParurVenkitachalam
Orthogonal Range Searching - review Input : • Given a set of point P ={p1 , p2 ,…..pn} in the d-dimensional space with coordinate axes (x1 , x2 …xd) • A query range Output: Report all the points that lie within the d-range • Project focuses on 2D Range searching
Preprocessing • Process the data and store it in a KD tree • KD tree is a binary tree in which every node is a K-dimensional point
Build KD Tree - Pseudocode Input The set of data D The current depth of the tree which will be zero initially Output Root of the KD tree storing the set of data Buildkdtree (D , depth) If (D has only one point) then return this point else if (depth is even) Split D into two subsets through the median of X coordinates i.e. with a vertical line else Split D into two subsets through the median of Y coordinates i.e. with a horizontal line. Create a node with the median value and whose children are defined as Left_childBuildkdtree(D1 , depth+1) Right_childBuildkdtree(D2, depth+1) Return node
Range searching in KD tree Input: 1) A node of the KD tree 2) Input Query range Searchkdtree(node N , Range R) { If (N is a leaf) Report the value at N if it falls in the range. Else Consider the left subtree . If (left subtree is fully contained in the R) Report the left subtree Else if (left subtree intersects R) Searchkdtree(leftsubtree , R) Consider the right subtree . If (right subtree is fully contained in the R) Report the right subtree Else if (right subtree intersects R) Searchkdtree(rightsubtree , R) }
Parallel Algorithm Data Distribution • In the real world, databases exists in different processors • For simulating the scenario, initially server has all the data • Server scatters the data among the processors
Parallel Algorithm Preprocessing step • With the data received from the server each node builds a kd tree known to only that node • Time complexity for the preprocessing step will be reduced to Ofrom O(d.n.logn) with p processors & n elements in the data set in d dimensions • Storage requirements will be reduced to from O(dn)
Parallel Algorithm Range searching • Server sends the query range to all the processors • Processors search their local KD tree for the data in the range • Processors report the results to the server • Server takes the union of the results and reports it to the user
Complexity – Range Searching • Range searching in KD trees has a complexity of O(dn1−1/d + k) , k is the total number of points included in the search , n is the total number of points and d is the dimensions • Parallel range search will have a complexity of O(d(n/p)1−1d + k) + communication time
Results Time taken for varying load and varying #processors Range - size/2
Tasks pending • Research on the scope of multi threading with in each processor • Read Input data from a file to measure performance accurately • Check for any redundant data structures or unwanted copying of data that may affect performance • Writing the output to a file • Testing for accuracy on a data with predictable ranges • More testing with varying ranges
References • http://2011.cccg.ca/PDFschedule/papers/paper106.pdf • http://www.cs.arizona.edu/classes/cs437/fall12/Lecture5.prn.pdf • http://www.cs.wustl.edu/~pless/506/l11w.html • Parallel Computational Geometry – Aggarwal. A; O'Dunlaing. C; Yap.C • Parallel Processing and Applied Mathematics: 5th International Conference, PPAM 2003, Czestochowa, Poland, September 7-10, 2003. Revised Paper • Computational Geometry - Algorithms and Applications - Mark de Berg, TU Eindhoven , Otfried Cheong, KAIST ,Marc van Kreveld, Mark Overmars