Las herramientas que distinguen el entorno del factor de procesamiento en paralelo dividen las operaciones y las ejecutan en varios procesos.
Muchos equipos modernos incluyen CPUs 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 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 un equipo de 4 núcleos:
- 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. Así mismo, el software que ejecute la herramienta, como ArcGIS for 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 Factor de procesamiento en paralelo de manera que se evite esta competición, puede usar un valor porcentual 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 porcentual superior al 100% o un número de procesos mayor que el número de núcleos del equipo. Por ejemplo, si su equipo tiene cuatro núcleos, la especificación de 8 o del 200% hará que las operaciones se extiendan en ocho procesos.
Sintaxis de cuadro de diálogo
Factor de procesamiento 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 secuencia de comandos
arcpy.env.parallelProcessingFactor = cadena
Parámetros | 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% | Calcula el número de procesos utilizando el porcentaje especificado: Número de procesos = número de núcleos del sistema * n/100. |
Ejemplo de secuencia de comandos
import arcpy
# Use half of the cores on the machine.
arcpy.env.parallelProcessingFactor = "50%"