Estoy interesado en aprender los métodos para utilizar la extensión total de la potencia de procesamiento multinúcleo disponibles en un equipo de escritorio. Arco establece que el fondo de geoprocesamiento permite al usuario utilizar varios núcleos, sin embargo, las tareas esencialmente tiene que esperar en línea para la tarea anterior para ser completado.
Alguien ha desarrollado en paralelo o multiproceso de geoprocesamiento métodos en Arc/Python? Hay hardware de los cuellos de botella que impiden el procesamiento multinúcleo en tareas individuales?
He encontrado un interesante ejemplo en Stackoverflow que llamó mi interés, aunque no es una de geoprocesamiento ejemplo:
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