Tools that honor the Parallel Processing Factor environment will divide and perform operations across multiple processes.
Many modern computers include multicore CPUs. Spreading a geoprocessing operation across multiple processes can speed up performance by using more than one core. The performance benefit of parallel processing varies from tool to tool.
Usage notes
Note:
Individual tools may modify how this environment is used. See the tool documentation for any information that supersedes the information below.
- The value of this environment determines the number of logical processes across which a tool spreads its operation. Those logical processes will be divided between hardware cores built into the machine. The number of hardware cores does not change based on this setting.
- Each tool that honors this environment has a built-in default for the number of logical processes for a particular machine. You can change this based on your data, operation, and available resources.
- If you specify a percent value (using the % symbol), the number of processes used will be the specified percentage of the number of cores on the machine, rounded to the nearest integer. For example, on a 4-core machine, setting 50% means the operation will be spread over 2 processes (50% * 4 = 2), setting 66% means the operation will be spread over 3 processes (66% * 4 = 2.64, which rounds to 3), and setting 100% means the operation will be spread over all 4 processes (100% * 4 = 4).
- There are limitations when performing geoprocessing using an SQL Server Express database.
SQL Server Express allows a maximum of three connections at a time. Each processing CPU requires a connection to the server. Additionally, the software running the tool, such as ArcGIS Desktop, counts as one connection process, leaving only two worker connection processes available for parallel processing.
- Specifying more processes than your machine has cores may incur a performance penalty. This is because multiple processes will compete for resources on one core. To specify the environment in a way that avoids this competition, you can use either a percent value less than 100% or a number of processes less than the number of cores on your machine.
Dialog syntax
Parallel Processing Factor—The number of processes across which a tool will spread its operation.
- blank (empty)—Each tool will determine how many processes to use. This is the default.
- 0—Do not spread operations across multiple processes.
- n—Use the specified number of processes. This value is limited to the number of processing units on the machine. If you specify a value greater than the number of cores available on your machine, the number of parallel processing instances will be limited to the number of cores available on your machine.
- n%—Calculate the number of processes using the specified percentage: Number of processes = number of system cores * n / 100.
Scripting syntax
arcpy.env.parallelProcessingFactor = string
Parameter | Explanation |
---|---|
empty string (blank) | Let each tool determine how many processes to use. This is the default. |
0 | Do not spread operations across multiple processes. |
n |
Use the specified number of processes. |
n% | Calculate the number of processes using the specified percentage: Number of processes = number of system cores * n / 100. |
Script example
import arcpy
# Use half of the cores on the machine
arcpy.env.parallelProcessingFactor = "50%"