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
Nota:
Cada herramienta puede modificar el modo de uso de este entorno. Consulte la documentación de la herramienta para ver información que tenga prioridad sobre la siguiente información.
- El valor de este entorno determina el número de procesos lógicos en los que una herramienta extiende su operación. Esos procesos lógicos se dividirán entre los núcleos de hardware integrados en el equipo. El número de núcleos de hardware no cambia en función de esta configuración.
- Cada herramienta que respete este entorno tiene un valor predeterminado incorporado para el número de procesos lógicos considerando un equipo concreto. Puede cambiarlo de acuerdo con los datos, la operación y los recursos disponibles.
- Si especifica un valor porcentual (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 una máquina de 4 núcleos, un valor del 50 % significa que la operación se dividirá entre 2 procesos (50 % * 4 = 2); un valor del 66 %, entre 3 procesos (66 % * 4 = 2,64, que se redondea a 3); y un valor del 100 %, entre los 4 procesos (100 % * 4 = 4).
- Existen limitaciones al geoprocesamiento usando una base de datos SQL Server Express.
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 los que todos los procesos están sujetos a operaciones de E/S de disco o a una conexión de base de datos corporativa, se puede conseguir un rendimiento superior especificando un número de procesos mayor que el número de núcleos disponibles. 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.
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): cada herramienta determinará 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 = string
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%"