Next Article in Journal
Review of Big Data and Processing Frameworks for Disaster Response Applications
Next Article in Special Issue
Towards the Development of Agenda 2063 Geo-Portal to Support Sustainable Development in Africa
Previous Article in Journal
Combining Design Patterns and Topic Modeling to Discover Regions That Support Particular Functionality
Previous Article in Special Issue
Distributed Processing of Location-Based Aggregate Queries Using MapReduce
Open AccessArticle

Parallelizing Multiple Flow Accumulation Algorithm using CUDA and OpenACC

Faculty of Electronic Engineering, University of Nis, 18000 Nis, Serbia
Author to whom correspondence should be addressed.
ISPRS Int. J. Geo-Inf. 2019, 8(9), 386;
Received: 29 June 2019 / Revised: 25 August 2019 / Accepted: 30 August 2019 / Published: 3 September 2019
(This article belongs to the Special Issue Distributed and Parallel Architectures for Spatial Data)
Watershed analysis, as a fundamental component of digital terrain analysis, is based on the Digital Elevation Model (DEM), which is a grid (raster) model of the Earth surface and topography. Watershed analysis consists of computationally and data intensive computing algorithms that need to be implemented by leveraging parallel and high-performance computing methods and techniques. In this paper, the Multiple Flow Direction (MFD) algorithm for watershed analysis is implemented and evaluated on multi-core Central Processing Units (CPU) and many-core Graphics Processing Units (GPU), which provides significant improvements in performance and energy usage. The implementation is based on NVIDIA CUDA (Compute Unified Device Architecture) implementation for GPU, as well as on OpenACC (Open ACCelerators), a parallel programming model, and a standard for parallel computing. Both phases of the MFD algorithm (i) iterative DEM preprocessing and (ii) iterative MFD algorithm, are parallelized and run over multi-core CPU and GPU. The evaluation of the proposed solutions is performed with respect to the execution time, energy consumption, and programming effort for algorithm parallelization for different sizes of input data. An experimental evaluation has shown not only the advantage of using OpenACC programming over CUDA programming in implementing the watershed analysis on a GPU in terms of performance, energy consumption, and programming effort, but also significant benefits in implementing it on the multi-core CPU. View Full-Text
Keywords: watershed analysis; parallel processing; multiple flow accumulation; DEM; CUDA; OpenACC; GPU watershed analysis; parallel processing; multiple flow accumulation; DEM; CUDA; OpenACC; GPU
Show Figures

Graphical abstract

MDPI and ACS Style

Stojanovic, N.; Stojanovic, D. Parallelizing Multiple Flow Accumulation Algorithm using CUDA and OpenACC. ISPRS Int. J. Geo-Inf. 2019, 8, 386.

Show more citation formats Show less citations formats
Note that from the first issue of 2016, MDPI journals use article numbers instead of page numbers. See further details here.

Article Access Map

  • Externally hosted supplementary file 1
    Description: The source code and executables for Watershed analysis implementation, as well as experimental DEM datasets are available online at GitHub
Back to TopTop