Las herramientas que distinguen el entorno del factor de procesamiento en paralelo dividen las operaciones y las ejecutan en varios procesos.
Muchos equipos modernos contienen unidades CPU de varios núcleos. La extensión de una operación de geoprocesamiento en varios procesos puede acelerar el rendimiento aprovechando la existencia de más de un núcleo. La mejora de rendimiento en el procesamiento en paralelo varía entre herramientas.
Notas de uso
- El valor de este entorno determina el número de procesos en los que una herramienta extiende su operación. Esos procesos se dividirán entre los núcleos de hardware (procesadores) integrados en el equipo. El número de núcleos de hardware no cambia en función de esta configuración.
- Cada herramienta que distingue este entorno tiene un valor predeterminado incorporado para el número de procesos considerando un equipo concreto. Puede cambiarlo de acuerdo con los datos, la operación y los recursos disponibles.
- Si especifica un valor de porcentaje (mediante el símbolo %), el número de procesos utilizados será el porcentaje especificado del número de núcleos en el equipo, redondeado al entero más próximo. Por ejemplo, en un equipo de 4 núcleos, el porcentaje y número de procesos son los siguientes:
- Un valor del 50% significa que la operación se extenderá en 2 procesos (50% * 4 = 2).
- Un valor del 66% significa que la operación se extenderá en 3 procesos (66% * 4 = 2,64, cuyo redondeo es 3).
- Un valor del 100% significa que la operación se extenderá en los 4 procesos (100% * 4 = 4).
Al realizar un geoprocesamiento con la base de datos de SQL Server Express, debe limitar el número de procesos paralelos a dos.
SQL Server Express permite un máximo de tres conexiones a la vez. Cada CPU que esté procesando necesita una conexión al servidor. Además, el software que ejecute la herramienta, como ArcGIS Desktop, cuenta como un proceso de conexión, lo que deja solo dos procesos de conexión de trabajador disponibles para el procesamiento en paralelo.
- La especificación de más procesos que los núcleos que posee el equipo puede traducirse en una reducción del rendimiento. Esto se debe a que varios procesos competirán por los recursos de un núcleo. Para especificar el entorno de manera que se evite esta competición, puede usar un valor de porcentaje inferior al 100 % o un número de procesos inferior al número de núcleos del equipo.
Sin embargo, para los casos en que todos los procesos están sujetos a las operaciones de E/S en un disco o en una conexión de base de datos corporativa, puede conseguir un rendimiento superior si especifica un número de procesos mayor que el número de núcleos que posee. Por ejemplo, la herramienta Agregar rásteres a dataset de mosaico está sujeta a las operaciones de E/S cuando el dataset de mosaico está almacenado en una base de datos corporativa. Además, la herramienta Generar vistas generales está sujeta principalmente a las operaciones de E/S en el disco. Puede usar más procesos que el número de núcleos del equipo si especifica un valor de porcentaje superior al 100 % o un número de procesos mayor que el número de núcleos del equipo. Por ejemplo, si dispone de un equipo de 4 núcleos, especificar 8 o 200 % hará que las operaciones se distribuyan en 8 procesos.
- El entorno Factor de procesamiento en paralelo no se admite en Background Geoprocessing (64-bit).
Sintaxis de cuadro de diálogo
Factor de procesamiento en paralelo: número de procesos en los que una herramienta extenderá su operación.
- en blanco (vacío): permite que cada herramienta determine cuántos procesos va a utilizar. Esta es la opción predeterminada.
- 0: no extiende operaciones en varios procesos.
- n: utiliza el número especificado de procesos.
- n%: calcula el número de procesos utilizando el porcentaje especificado: Número de procesos = número de núcleos del sistema * n/100.
Sintaxis de script
arcpy.env.parallelProcessingFactor = cadena
Parámetro | Explicación |
---|---|
cadena vacía (en blanco) | Permite que cada herramienta determine cuántos procesos va a utilizar. Esta es la opción predeterminada. |
0 | No extiende operaciones en varios procesos. |
n | Utiliza el número especificado de procesos. |
n% | Calcule el número de procesos utilizando el porcentaje especificado: Número de procesos = número de núcleos del sistema * n/100. |
Ejemplo de script
import arcpy
# Use half of the cores on the machine.
arcpy.env.parallelProcessingFactor = "50%"