23

I recently discovered the Parallel Processing environment setting in ArcGIS (this must be new to 10.1), however, there is no mention as to what tools are designed to utilize this environment setting. ESRI provides one example of how to set the parallel processing environment:

import arcpy

# Use half of the cores on the machine.
arcpy.env.parallelProcessingFactor = "50%" 

My questions are very closely related, so I am including them in the same thread:

  1. Which geoprocessing tools honor the parallel processing environment?
  2. Are these local or global settings (i.e. can you set the environment at the beginning of the Arcpy script and all respective tools will honor the environment setting thereafter?
  3. Are most geoprocessing tools already set to: arcpy.env.parallelProcessingFactor = "100%"by default?
1
  • Nice pickup @Aaron
    – om_henners
    Commented Nov 12, 2012 at 21:46

3 Answers 3

14

New at 10.1 SP1, from what I can find.

This is not a complete answer, but a quick search of fixed "bugs" revealed references to mosaic datasets and geostatistical analyst tools. The latter has a topic about it. Note: although it appears that this topic is not directly related to the parallel processing factor.

Edit for clarification: Many geostatistical tools now support parallel processing but do not appear to support the "parallel processing factor" that's available for certain other tools in geoprocessing.

A tool reference should list "parallel processing factor" in the environments section if the setting is supported. The tile cache toolset appears to support the factor too.

4
  • 2
    I can confirm geostatistical analyst tools - tried the wizard today and many steps were happily using 8 cores.. finally! =)
    – user173
    Commented Nov 12, 2012 at 22:40
  • 5
    resources.arcgis.com/en/help/main/10.1/index.html#//… list the tools that support parallel processing for geostatistical analyst tools
    – Mapperz
    Commented Nov 13, 2012 at 16:22
  • 1
    Curious, is the implementation based on Python, C++ or .NET?
    – blah238
    Commented Nov 13, 2012 at 17:27
  • resources.arcgis.com/en/help/main/10.2/#/… From "What's New" for ArcGIS 10.2 Spatial Analyst: "Multicore support has been added to the following tools: Reclassify, Weighted Overlay, Weighted Sum, Zonal Statistics, Zonal Statistics As Table."
    – DPierce
    Commented Jul 25, 2013 at 21:38
5

I was just looking for this myself and found some of the answers:

  1. Which geoprocessing tools honor the parallel processing environment?

I couldn't find a comprehensive list of them other than the ones linked in the other answer, but if you look at the geoprocessing tool reference, you can tell for that tool by the list of Environments it supports near the bottom of the tool's documentation page. If it lists "Parallel Processing Factor" in the environments, then it supports it. Otherwise, it does not. It's not a comprehensive listing, but does let you look up support for a particular tool, at least.

  1. Are these local or global settings (i.e. can you set the environment at the beginning of the Arcpy script and all respective tools will honor the environment setting thereafter?

My understanding is that it acts like other environments and can be both. If you set it on the geoprocessing tool itself when running it, it's local, but if you set it in ArcMap environments or arcpy environments, then it's global to that session. I could be wrong on this, but I haven't read anything indicating it behaves differently.

  1. Are most geoprocessing tools already set to: arcpy.env.parallelProcessingFactor = "100%"by default?

No. Not necessarily, at least. It's unspecified. Per this help page for ArcGIS 10.2, the default is to let each tool determine its amount. Given the other documentation on that page indicating optimal settings for each tool based upon whether it's disk-bound or CPU-bound, I'd imagine it can vary between using a single core and creating many times as many threads as CPUs. They don't say that, but that's my interpretation of the default they specify.

0

The parallel processing that worked for me is zero as default:

import arcpy
arcpy.env.parallelProcessingFactor = "0%"

arcpy.sa.Fill(<raster>)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.