Abstract
In this article, we report on our experiences with refactoring a spatial analysis library to support parallelization. Python Spatial Analysis Library (PySAL) is a library of spatial analytical functions written in the open-source language, Python. As part of a larger scale effort toward developing cyberinfrastructure of GIScience, we examine the particular case of choropleth map classification through alternative parallel implementations of the Fisher-Jenks optimal classification method using a multi-core, single desktop environment. The implementations rely on three different parallel Python libraries, PyOpenCL, Parallel Python, (PP) and Multiprocessing. Our results point to the dominance of the CPU-based Parallel Python and Multiprocessing implementations over the Graphical Processing Unit (GPU)-based PyOpenCL approach.
Keywords:
Notes
1. For economy of space, we exclude other code responsible for imports of modules and related tasks. All the source code for the implementation of the parallel versions of Fisher-Jenks is available on the PySAL code repository under the parallel branch at http://code.google.com/p/pysal.