Title
A compiler approach to map algebra: automatic parallelization, locality optimization, and GPU acceleration of raster spatial analysis.
Abstract
Computer architectures have evolved into parallel and heterogeneous systems with multi-core CPUs, many-core GPUs, and vector instructions. Meanwhile, advances in data collection technologies have led to a rapid increase in the spatial and temporal resolution of geographic data. Efficiently dealing with large volumes of geographic data demands, now more than ever, an effective use of modern parallel computers. However, parallel programming is distinctly more challenging than writing sequential scripts. Moreover, parallelism is not the only issue; data locality is critical, too. This work addresses the issues of data escalation and parallel transition using a compiler approach to map algebra. More specifically, we design and implement a framework that uses compiler techniques to automatically speed up raster spatial analysis. In this way, users simply write sequential map algebra scripts in Python, which are translated into a graph where optimizations are applied. Then the scripts are parallelized, reordered for locality, and executed on OpenCL devices such as multi-core CPUs and GPUs. The novelty of our approach resides in the efficient organization of the execution, which we achieve via compilation. Unlike interpreters, our framework reorders the raster operations to maximize data reuse and minimize memory movements. The reordering occurs at two hierarchical levels and is controlled by a scheduler and a fusion technique. This strategy targets data locality, which, as we show, is key to the performance of raster spatial analysis. The experiments report speed-ups of one to two orders of magnitude compared to traditional interpreters.
Year
DOI
Venue
2018
https://doi.org/10.1007/s10707-017-0312-3
GeoInformatica
Keywords
Field
DocType
Map algebra,Raster,Spatial analysis,Locality,Parallel,GPU
Locality,Raster graphics,Computer science,Parallel computing,Compiler,Map algebra,Python (programming language),Automatic parallelization,Speedup,Scripting language
Journal
Volume
Issue
ISSN
22
2
1384-6175
Citations 
PageRank 
References 
0
0.34
30
Authors
3
Name
Order
Citations
PageRank
Jesús Carabaño170.84
Jan Westerholm29616.56
Tapani Sarjakoski311817.51