MPI (Message Passing Interface) is a widely used message passing library for writing parallel programs. The goal of MPI is to establish a portable, efficient, and flexible standard for message passing that will be widely used for writing message passing programs. This chapter motivates the need for using MPI for implementing GIS applications and introduces MPI data types and communication functions. Then, it presents new spatial data types and operations on them using MPI. Finally, it presents pseudocode for parallelizing a range query problem and spatial domain decomposition in GIS.
Computer programming and development are critical to the past, present, and future of geospatial systems and techniques. The increasing ubiquity and diversity of online, mobile, and desktop GIS platforms along with the inclusion of cyber-infrastructure components within the bounds of geographic information systems (e.g., supercomputing, wireless sensor networks) means that GIS researchers and professionals need to be fluent in multiple forms of programming, and the life-cycles of system and software development.
Topics in this Knowledge Area are listed thematically below. Existing topics are in regular font and linked directly to their original entries (published in 2006; these contain only Learning Objectives). Entries that have been updated and expanded are in bold. Forthcoming, future topics are italicized.
|Algorithm Design/Algorithmic Approaches||Programming Languages & Libraries|
|Real Tme Programming in GIS Applications||Python for GIS|
|Natural Language Processing in GIS Applications||PySAL and Spatial Statistics Libraries|
|Machine Learning Programming for GIS||R for Geospatial Analysis & Mapping|
|GIS and Parallel Programming||SQL Languages for GIS|
|Object-oriented Programming in GIS Applications||GDAL./OGR and IO Libraries|
|Development Tools||Software Requirements for GIS Applications|
|Development Environments for Geospatial Applications||Design, Development, Testing, and Deployment of GIS Applications|
|SpatialMPI: Message Passage Interface for GIS Applications||Verification & Validation of GIS Applications|
|Software Frameworks for GIS Applications||Commercialization of GIS Applications|
|Visual Programming for GIS Applications||Licensing of GIS Applications|
|Computer-Aided Software Engineering (CASE) Tools|
|Platform Specific Programming|
|GIS and GPU Programming|
|Programming of Mobile GIS Applications|
|Programming of GIS Web Services|
|Web GIS Programming|