A Parallel Sweep Line Algorithm for Visibility Computation

Similar documents
A Parallel Sweep Line Algorithm for Visibility Computation

A parallel algorithm for viewshed computation on grid terrains

Universidade Federal de Viçosa Departamento de Informática - DPI

Thiago L. Gomes Salles V. G. Magalhães Marcus V. A. Andrade Guilherme C. Pena. Universidade Federal de Viçosa (UFV)

An efficient GPU multiple-observer siting method based on sparse-matrix multiplication

Improved Visibility Computation on Massive Grid Terrains

Computing Visibility on Terrains in External Memory

An efficient algorithm to compute the viewshed on DEM terrains stored in the external memory

GPU-Accelerated Multiple Observer Siting

Computing Visibility on Terrains in External Memory

An efficient map-reduce algorithm for spatio-temporal analysis using Spark (GIS Cup)

memory Abstract The recent availability of detailed geographic data permits terrain applications

Video Summarization I. INTRODUCTION

Efficient Parallel GIS and CAD Operations on Very Large Data Sets

HARNESSING IRREGULAR PARALLELISM: A CASE STUDY ON UNSTRUCTURED MESHES. Cliff Woolley, NVIDIA

Comparison between GPU and parallel CPU optimizations in viewshed analysis

ParCube. W. Randolph Franklin and Salles V. G. de Magalhães, Rensselaer Polytechnic Institute

Derivation and Verification of Parallel Components for the Needs of an HPC Cloud

Computing visibility on terrains in external memory

Progress In Electromagnetics Research M, Vol. 20, 29 42, 2011

Computing Visibility on Terrains in External Memory

Towards a Domain-Specific Language for Patterns-Oriented Parallel Programming

A TALENTED CPU-TO-GPU MEMORY MAPPING TECHNIQUE

GEOGRAPHIC INFORMATION SYSTEMS Lecture 25: 3D Analyst

Applied Cartography and Introduction to GIS GEOG 2017 EL. Lecture-7 Chapters 13 and 14

A linear time algorithm to compute the drainage network on grid terrains

Kartik Lakhotia, Rajgopal Kannan, Viktor Prasanna USENIX ATC 18

An Extension of the StarSs Programming Model for Platforms with Multiple GPUs

Border Patrol. Shingo Murata Swarthmore College Swarthmore, PA

Parallel Systems. Project topics

An Efficient CUDA Implementation of a Tree-Based N-Body Algorithm. Martin Burtscher Department of Computer Science Texas State University-San Marcos

Real-time visibility analysis and rapid viewshed calculation using a voxelbased modelling approach

THE COMPARISON OF PARALLEL SORTING ALGORITHMS IMPLEMENTED ON DIFFERENT HARDWARE PLATFORMS

OPTIMIZATION OF THE CODE OF THE NUMERICAL MAGNETOSHEATH-MAGNETOSPHERE MODEL

ACCELERATING THE PRODUCTION OF SYNTHETIC SEISMOGRAMS BY A MULTICORE PROCESSOR CLUSTER WITH MULTIPLE GPUS

Experiences with the Sparse Matrix-Vector Multiplication on a Many-core Processor

An efficient external memory algorithm for terrain viewshed computation

Image-Space-Parallel Direct Volume Rendering on a Cluster of PCs

Optimization solutions for the segmented sum algorithmic function

Warped parallel nearest neighbor searches using kd-trees

Parallel Computing. Hwansoo Han (SKKU)

Parallel Algorithms on Clusters of Multicores: Comparing Message Passing vs Hybrid Programming

Improving Memory Space Efficiency of Kd-tree for Real-time Ray Tracing Byeongjun Choi, Byungjoon Chang, Insung Ihm

Parallelization of Shortest Path Graph Kernels on Multi-Core CPUs and GPU

A Parallel 2T-LE Algorithm Refinement with MPI

ANSYS Improvements to Engineering Productivity with HPC and GPU-Accelerated Simulation

Tools. (figure 3A) 3) Shaded Relief Derivative. c. HydroSHED DS DEM

GEOGRAPHIC INFORMATION SYSTEMS Lecture 24: Spatial Analyst Continued

Hybrid Implementation of 3D Kirchhoff Migration

Lecture 6: GIS Spatial Analysis. GE 118: INTRODUCTION TO GIS Engr. Meriam M. Santillan Caraga State University

Parallel Rendering. Johns Hopkins Department of Computer Science Course : Rendering Techniques, Professor: Jonathan Cohen

Tutorial 18: 3D and Spatial Analyst - Creating a TIN and Visual Analysis

Parallel Computer Architecture and Programming Final Project

Indirect Volume Rendering

Parallel calculation of LS factor for regional scale soil erosion assessment

DawnCC : a Source-to-Source Automatic Parallelizer of C and C++ Programs

I. INTRODUCTION FACTORS RELATED TO PERFORMANCE ANALYSIS

Performance Analysis of a Matrix Diagonalization Algorithm with Jacobi Method on a Multicore Architecture

Fast BVH Construction on GPUs

Hillshade Example. Custom product generation with elevation data

GPU Parallel Visibility Algorithm for a Set of Segments Using Merge Path

Simultaneous Solving of Linear Programming Problems in GPU

COLOR HUE AS A VISUAL VARIABLE IN 3D INTERACTIVE MAPS

GPU acceleration of 3D forward and backward projection using separable footprints for X-ray CT image reconstruction

Analysis of Parallelization Techniques and Tools

Understanding and Automating Application-level Caching

Visibility: Finding the Staircase Kernel in Orthogonal Polygons

(Master Course) Mohammad Farshi Department of Computer Science, Yazd University. Yazd Univ. Computational Geometry.

Thread Tailor Dynamically Weaving Threads Together for Efficient, Adaptive Parallel Applications

Performance and Usability Evaluation of a Pattern-Oriented Parallel Programming Interface for Multi-Core Architectures

Modification and Evaluation of Linux I/O Schedulers

How to Apply the Geospatial Data Abstraction Library (GDAL) Properly to Parallel Geospatial Raster I/O?

Massively Parallel Approximation Algorithms for the Knapsack Problem

Automatic Scaling Iterative Computations. Aug. 7 th, 2012

Egemen Tanin, Tahsin M. Kurc, Cevdet Aykanat, Bulent Ozguc. Abstract. Direct Volume Rendering (DVR) is a powerful technique for

CMU-Q Lecture 4: Path Planning. Teacher: Gianni A. Di Caro

Simultaneous Multithreading on Pentium 4

A Comparative Study for Efficient Synchronization of Parallel ACO on Multi-core Processors in Solving QAPs

Drexel University Electrical and Computer Engineering Department. ECEC 672 EDA for VLSI II. Statistical Static Timing Analysis Project

Geometric Partitioning for Tomography

Raster GIS. Raster GIS 11/1/2015. The early years of GIS involved much debate on raster versus vector - advantages and disadvantages

Parsing in Parallel on Multiple Cores and GPUs

L7 Raster Algorithms

Advanced Computer Graphics Project Report. Terrain Approximation

A Computational Study of Conflict Graphs and Aggressive Cut Separation in Integer Programming

Parallel Architecture & Programing Models for Face Recognition

Language and compiler parallelization support for Hash tables

Viewshed analysis. Chapter Line of sight analysis

PhD Student. Associate Professor, Co-Director, Center for Computational Earth and Environmental Science. Abdulrahman Manea.

A Distributed Approach to Fast Map Overlay

JCudaMP: OpenMP/Java on CUDA

Files Used in this Tutorial

Use case: mapping sparse spatial data with TOPCAT

Measure the Perimeter of Polygons Over a Surface. Operations. What Do I Need?

Performance Evaluation of Tcpdump

Subset Sum Problem Parallel Solution

Mapping Multi- Agent Systems Based on FIPA Specification to GPU Architectures

THE CONTOUR TREE - A POWERFUL CONCEPTUAL STRUCTURE FOR REPRESENTING THE RELATIONSHIPS AMONG CONTOUR LINES ON A TOPOGRAPHIC MAP

Building Fuzzy Elevation Maps from a Ground-based 3D Laser Scan for Outdoor Mobile Robots

Vector Data Analysis Working with Topographic Data. Vector data analysis working with topographic data.

Transcription:

Universidade Federal de Viçosa Departamento de Informática Programa de Pós-Graduação em Ciência da Computação A Parallel Sweep Line Algorithm for Visibility Computation Chaulio R. Ferreira Marcus V. A. Andrade Salles V. G. Magalhães W. Randolph Franklin Guilherme C. Pena GeoInfo 2013

Summary Introduction Visibility computation Van Kreveld s algorithm Our algorithm Results Conclusions and Future Work

PPGCC-Programa de Pós-Graduação em Ciência da Computação Introduction

Visibility Computation Determining whether some targets are visible from a given observer.

Visibility Computation Viewshed: set of all terrain points that are visible from a given observer.

PPGCC-Programa de Pós-Graduação em Ciência da Computação Visibility Computation Some applications: Computing the coverage of an observation tower.

Visibility Computation Some applications: Computing the coverage of an observation tower. Siting multiple observers to cover a given terrain.

Visibility Computation Digital Elevation Matrix y 2 2 2 2 1 0 3 3 3 3 2 1 6 6 5 4 3 2 7 7 5 4 3 2 8 8 7 5 3 2 9 8 7 5 3 2 x

Van Kreveld s Algorithm Most viewshed algorithms rotate a line-of-sight around the observer and, at each iteration, compute which cells are intercepted by the line.

Van Kreveld s Algorithm Van Kreveld s algorithm maintains a data structure, named active, that stores which cells are currently being intercepted by the line.

Van Kreveld s Algorithm active is actually implemented as a balanced binary tree, keyed by the cells distance from the observer.

Van Kreveld s Algorithm Thus, all query and update operations in active are perfomed in Θ(log n).

Van Kreveld s Algorithm To rotate the line-of-sight and keep active updated, Van Kreveld defines three types of events for every cell: ENTER EVENT: when the cell starts being intercepted by the line;

Van Kreveld s Algorithm To rotate the line-of-sight and keep active updated, Kreveld defines three types of events for every cell: ENTER EVENT: when the cell starts being intercepted by the line; CENTER EVENT: when the line passes over the cell s center;

Van Kreveld s Algorithm To rotate the line-of-sight and keep active updated, Kreveld defines three types of events for every cell: ENTER EVENT: when the cell starts being intercepted by the line; CENTER EVENT: when the line passes over the cell s center; EXIT EVENT: when the cell stops being intercepted by the line.

Van Kreveld s Algorithm Each event is identified by its type and its azimuth angle. All events for all cells are stored in one single list, named Events. Events is then sorted according to the events azimuth angles. Thus, the events are stored in Events in the same order they would happen while rotating the line-of-sight.

Van Kreveld s Algorithm The sorted list Events is sweeped and, for each event, an action is taken: If it is an ENTER event, the cell is inserted into active; If it is a CENTER event, active is searched to check whether the cell is visible; If it is an EXIT event, the cell is removed from active.

Van Kreveld s Algorithm Summarizing: Van Kreveld s algorithm consists of three major parts: 1) Compute Events; 2) Sort Events; 3) Sweep Events and keep active updated while computing the viewshed.

Our algorithm

Our algorithm Recently, some viewshed algorithms have been adapted for parallel computing. For instance, [Zhao et al., 2013] have implemented the R3 algorithm using GPU computing. However, we have not found any previous parallel implementation of Van Kreveld s algorithm.

Our algorithm In fact, [Zhao et al., 2013] stated that: A high degree of sequential dependencies in Van Kreveld s algorithm makes it less suitable to exploit parallelism. That is mainly because, for processing an event, we should have already processed all earlier events.

Our algorithm

Our algorithm To design a parallel algorithm, we subdivided the terrain into sectors and created one Events list for each one of them:

Our algorithm This sector, for instance, will have its own active structure and its own Events list, which contains the events for theses cells:

Our algorithm The hardest task here is to efficiently find out which cells are inside this sector.

Our algorithm To do that, we traced rays from O to all cells in the sector perimeter:

Our algorithm By rasterizing these rays, we can find out the cells and create the Events list.

Our algorithm Now, each sector has its own Events list. We just need to sort these lists and sweep them processing the events. Since all Events lists are independent, each sector may be processed independently. Thus, we can assign one sector for each core, and compute the viewshed in parallel.

Results

Results We implemented our algorithm in C++ using OpenMP. Our experimental platform: Dual Intel Xeon E5-2687 3.1GHz 8 core Ubuntu 12.04 LTS, Linux 3.5 Kernel.

Results We ran it on six terrains with different dimensions and limiting the number of parallel threads (2, 4, 8 and 16). We compared its performance with a serial implementation of Van Kreveld s algorithm.

Speedup Results 2 parallel threads: average speedup of 1.9 times 12 10 8 6 4 2 1.85 2.19 1.53 1.83 2.09 1.93 0 0.25 1 2.25 4 6.25 9 Terrain size (10 8 cells) 2 threads

Speedup Results 4 parallel threads: average speedup of 3.6 times 12 10 8 6 4 3.43 3.91 3.23 3.37 3.94 3.63 2 0 0.25 1 2.25 4 6.25 9 Terrain size (10 8 cells) 2 threads 4 threads

Speedup Results 8 parallel threads: average speedup of 6.5 times 12 10 8 6 6.00 7.35 6.15 6.14 6.96 6.37 4 2 0 0.25 1 2.25 4 6.25 9 Terrain size (10 8 cells) 2 threads 4 threads 8 threads

Speedup Results 16 paral. threads: average speedup of 10.7 times 12 10 12.00 11.36 10.08 9.33 11.42 10.05 8 6 4 2 0 0.25 1 2.25 4 6.25 9 Terrain size (10 8 cells) 2 threads 4 threads 8 threads 16 threads

Conclusions and Future Work

Conclusions and Future Work We proposed a parallel implementation of Van Kreveld s algorithm for viewshed computation. It uses the shared memory model (OpenMP), which is available in most current computers. Using only 4 parallel cores (a very common architecture nowadays), we achieved speedups of up 3.94 times.

Conclusions and Future Work Thus, our algorithm might be useful not only for scientific computers, but also for users with regular computers. As future work, we propose to implement Van Kreveld s algorithm using GPU computing. Since GPU architectures are much more complex, this will not be a straightforward adaption.

References 1. Van Kreveld, M. (1996). Variations on sweep algorithms: efficient computation of extended viewsheds and class intervals. In Proceedings of the Symposium on Spatial Data Handling. 2. Zhao, Y. et al (2013). A parallel computing approach to viewshed analysis of large terrain data using graphics processing units. In International Journal of Geographical Information Science.

Questions? Suggestions? Acknowledgements: