1 / 14

Parallel Orthogonal Range Searching

Parallel Orthogonal Range Searching . Project Presentation b y Savitha Parur Venkitachalam. Orthogonal Range Searching - review. Input : Given a set of point P ={p 1 , p 2 ,….. p n } in the d-dimensional space with coordinate axes (x 1 , x 2 … x d ) A query range Output:

vin
Download Presentation

Parallel Orthogonal Range Searching

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Parallel Orthogonal Range Searching Project Presentation by SavithaParurVenkitachalam

  2. 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

  3. 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

  4. 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_childBuildkdtree(D1 , depth+1) Right_childBuildkdtree(D2, depth+1) Return node

  5. 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) }

  6. 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

  7. 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)

  8. 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

  9. 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

  10. Results - Performance

  11. Results Time taken for varying load and varying #processors Range - size/2

  12. 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

  13. 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

  14. Questions

More Related