1 / 25

Towards GPU-Accelerated Web-GIS

Towards GPU-Accelerated Web-GIS. Jianting Zhang 1,2 , Simin You 2,4 , Le Gruenwald 3 1 The City College of New York 2 CUNY Graduate Center 3 University of Oklahoma 4 Pitney Bowes Inc. Outline. Background & Motivation System Design and Prototyping

lcody
Download Presentation

Towards GPU-Accelerated Web-GIS

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. Towards GPU-Accelerated Web-GIS JiantingZhang1,2, Simin You2,4, Le Gruenwald3 1The City College of New York 2CUNY Graduate Center 3University of Oklahoma 4Pitney Bowes Inc.

  2. Outline • Background & Motivation • System Design and Prototyping • On-Demand Data Parallel Spatial Joins on GPUs • WebGIS Frontend Optimized for QDVE • Application Case, Experiments and Results • Conclusion and Future Work

  3. Vis GIS Introduction & Background • Web-GIS and Parallel and Distributed Processing • Spatial Joins on GPUs • Previous Efforts on WebGIS for QDVE on Large-Scale Geospatial Data • Other Related Works Web Web-GIS Big Data and HPC

  4. Spatial Data Processing Spatial Data Management (Spatial Databases) Spatial Join Spatial Indexing Parallel Spatial Join Framework SELECT * from T1, T2 WHERE ST_OP (T1.the_geom, T2.the_geom) Spatial indexing on quadrants of points or MBBs (Minimum Bounding Boxes) of polyline/polygons Spatial join includes the filtering phase and refinement phase Spatial filtering uses spatial indices to match pairs of MBBs in T1 and T2 based on spatial intersection (overlapping) and reduce complexity from O(n1*n2) to O(n1) or O(n2) Spatial refinement performs geometrical operations (e.g., point-to-polyline distance or point-to-polygon test) on matched pairs Filtering phase Refinement phases Point quadrant Polyline/polygon MBB

  5. Introduction & Background Jianting Zhang, Michael Gertz, Le Gruenwald: Efficiently managing large-scale raster species distribution data in PostgreSQL. ACM-GIS 2009: 316-325 • ACM-GIS’09 • Postgresql+LTree • Decompose complex polygons into linear quadtree nodes • Convert spatial query into string matching • Support all traditional WebGIS systems • 4000+NaturalServe Birds Species range maps • 6-9.5X speedups than Postgresql+PostGIS • Data structures and Preprocessing matters!

  6. Introduction & Background Jianting Zhang: A high-performance web-based information system for publishing large-scale species range maps in support of biodiversity studies. Ecological Informatics 8: 68-77 (2012) • Using same idea on decomposing polygons in to linear quadtree nodes • Maintain the tree in main-memory for fast and efficient point/range query processing • Frontend: OpenLayers • Response time < 1s • Suitable for simple interactive query in a WebGIS

  7. Introduction & Background Jianting Zhang, Simin You: Supporting Web-Based Visual Exploration of Large-Scale Raster Geospatial Data Using Binned Min-Max Quadtree. SSDBM 2010: 379-396 Jianting Zhang, Simin You: Dynamic tiled map services: supporting query-based visualization of large-scale raster geospatial data. COM.Geo 2010 • Also main-memory based • Binned Min-Max Quadtree for rasters • Frontend: ArcGIS Flex API • Provides dynamic tile services for highlighting query results

  8. Introduction & Background Jianting Zhang, Simin You, Yinglong Xia: Prototyping A Web-based High-Performance Visual Analytics Platform for Origin-Destination Data: A Case study of NYC Taxi Trip Records. UrbanGIS@SIGSPATIAL 2015: 16-23 Frontend: Google Map Backend: multi-core CPU processing based on OpenMP Interactive response for user-defined simple polygons

  9. Feb. 2013 • 7.1 billion transistors (551mm²) • 2,688 processors • 4.5 TFLOPS SP and 1.3 TFLOPS DP • Max bandwidth 288.4 GB/s • PCI-E peripheral device • 250 W (17.98 GFLOPS/W -SP) • Suggested retail price: $999 ASCI Red: 1997 First 1 Teraflops (sustained) system with 9298 Intel Pentium II Xeon processors (in 72 Cabinets) What can we do today using a device that is more powerful than ASCI Red 17 years ago?

  10. Nvidia P100

  11. Spatial Data Management David Wentzlaff, “Computer Architecture”, Princeton University Course on Coursea Computer Architecture How to fill the big gap effectively?

  12. Data Parallelisms  Parallel Primitives Parallel libraries Parallel hardware Gather Reduction Scatter Map Scan Source: http://parallelbook.com/sites/parallelbook.com/files/SC11_20111113_Intel_McCool_Robison_Reinders.pptx Our GPU-based Spatial Data and Trajectory Data management techniques utilize parallel primitives (map, reduce, sort, scan, gather, scatter, etc.) whereas possible to reduce development complexity, increase productivity and maintain portability

  13. Outline • Introduction & Background • System Design and Prototyping • On-Demand Data Parallel Spatial Joins on GPUs • WebGIS Frontend Optimized for QDVE • Application Case, Experiments and Results • Conclusion and Future Work

  14. WebGIS frontend • Applications • Global Biodiversity dataset • Taxi Trip dataset at NYC • QDVE Primitives • Overview(Aggregation query) • Filter and Zoom(spatialnon-spatial) • Context+Focus: (ROI query on neighborhood) • Details on Demand (Identifying Query) Data Parallel Spatial Filtering on GPUs GUI(Dataset Selection, ROI Selection, Join Selection, Layer Selection) Frontend Geometry Library (MBR Indexing, MBR Intersection Test, Point-in-Polygon Test) Network/Web Communication Javascript asynchronous function call JSON string encoding and parsing User data and Javascript binding

  15. Data Parallel Spatial Filtering on GPUs based on flat grid-file for Point-in-Polygon test based spatial join Row-major order: for cell at (r,c) cell_id=r*width+c Step1: point indexing Input: a vector of points (x,y) Outputs (1) a vector of grid cells identifiers in row-major order (2) A vector of the numbers of points in each grid cell (3) A vector of positions pointing to the first points in grid cells. (4) A sorted point vector with points within a grid cell close to each other X/Y Coordinates transform 1 stable_sort_by_key 2 5 5 3 3 3 1 2 2 Cell-ID reduce_by_key 3 1 2 2 Len 3 0 3 4 6 exclusive_scan Offset 4

  16. Data Parallel Spatial Filtering on GPUs based on flat grid-file Step2:polygon MBR indexing W*H Input: a vector of polygon vertices (x,y) , a vector of boundary vertex positions and a vector of #of vertices for polygons Outputs: (similar structures) cell_id 4 7 11 14 cell_len 3 1 2 2 0 3 4 6 poylgon_id (2,2) (2,2) 19 3 16 0 17 1 2 18 4 23 5 6 7 26 24 25

  17. Data Parallel Spatial Filtering on GPUs based on flat grid-file Step3: cell-matching c_id 4 11 q_id Vectorized Binary Search to pair point cells and polygon cells 1 2 p_id 0 1 q_id p_id 0 1 2 3 0 0 1 1 p_cell_id 4 7 11 14 q_cell_id 11 3 4 22 p_cell_len 3 1 2 2 q_cell_len 3 1 2 2 0 3 4 6 0 3 4 6 poylgon_id poylgon_xy poylgon_pos

  18. Data Parallel Spatial Filtering on GPUs based on flat grid-file Step4 (optional) box-in-polygon test based optimization for advanced spatial filtering • If at least one sides of a box (cell) intersects with at least one polygon edge, then they intersect and all the points in the cell need to go through point-in-polygon test (regular spatial refinement) • Otherwise, pick up a corner, if it is in the polygon, then all points in the cell are within the polygon without going through point-in-polygon tests • For all the rest cases, all points in the cell are outside of the polygon and can be safely ignored

  19. Points Polygon vertices • Perfect coalesced memory accesses • Utilizing GPU floating point power Spatial Refinement (for point-in-polygon test) intpnpoly(intnpol, float *xp, float *yp, float x, float y) { int i, j, c = 0; for (i = 0, j = npol-1; i < npol; j = i++) { if ((((yp[i] <= y) && (y < yp[j])) || ((yp[j] <= y) && (y < yp[i]))) && (x < (xp[j] - xp[i]) * (y - yp[i]) / (yp[j] - yp[i]) + xp[i])) c = !c; } return c; } CPU Code: 7 lines of C code due to W. Randolph Franklin@RPI • Parallelization on GPUs • Native CUDA implementation (nested loop) • A matched pair (p, q) is assigned to a CUDA Thread Block • Each point in the grid performs PIP test with the corresponding polygon from (p,q) pair

  20. Example

  21. Outline • Introduction & Background • System Design and Prototyping • On-Demand Data Parallel Spatial Joins on GPUs • WebGIS Frontend Optimized for QDVE • Application Case, Experiments and Results • Conclusion and Future Work

  22. Application Case: analyzing how species are distributed on the Earth Pick up a group of species and a zonal dataset, count the numbers of occurrences (points) in zones (polygons) Global Biodiversity Data at GBIF http://gbif.org • ~375millionoccurrencepoints(as of 2012) for 1,487,496 species • ~15thousandsregion(WWFecoregions) • Five groups of species are selected for experiments Hardware (GPU device): 2013 Nvidia GTX Titan GPU with 2,688 cores and 6 GB memory

  23. Server backend performance test results Baseline: libspatialindex+GDAL on a single CPU core processes 131 points per second http://geoteci.engr.ccny.cuny.edu/zs_supplement/zs_gbif.html

  24. Summary and Future Work • We have proposed a new WebGIS framework and the techniques to leverage GPU-accelerated spatial join techniques for query driven visual explorations on large-scale geospatial data. • The design and implementation considerations are discussed in details and an application case on exploring global biodiversity data is presented. • The experiment results have demonstrated the feasibility of the proposed framework and the desired high performance The work is preliminary in nature from a system development perspective • Evolving the prototype towards a more mature system that can serve as a generic platform to accommodate more application cases • Integrating both CPUs and GPUs to further enhance backend performance • Developing novel ideas on designing effective GUI interfaces for complex QDVE workflows Community efforts are invited!

  25. Thanks Q&A jzhang@cs.ccny.cuny.edu http://www-cs.ccny.cuny.edu/~jzhang/

More Related