Estoy interesado en aprender métodos para utilizar toda la potencia de procesamiento multinúcleo disponible en una computadora de escritorio. Arc afirma que el geoprocesamiento en segundo plano permite al usuario utilizar múltiples núcleos, sin embargo, las tareas esencialmente tienen que esperar en línea para que se complete la tarea anterior.
¿Alguien ha desarrollado métodos de geoprocesamiento paralelos o multiproceso en Arc / Python? ¿Hay cuellos de botella de hardware que impiden el procesamiento multinúcleo en tareas individuales?
Encontré un ejemplo interesante en Stackoverflow que me llamó la atención, aunque no es un ejemplo de geoprocesamiento:
from multiprocessing import Pool
import numpy
numToFactor = 976
def isFactor(x):
result = None
div = (numToFactor / x)
if div*x == numToFactor:
result = (x,div)
return result
if __name__ == '__main__':
pool = Pool(processes=4)
possibleFactors = range(1,int(numpy.floor(numpy.sqrt(numToFactor)))+1)
print 'Checking ', possibleFactors
result = pool.map(isFactor, possibleFactors)
cleaned = [x for x in result if not x is None]
print 'Factors are', cleaned
this is not meant to discourage
.