Estou interessado em aprender métodos para utilizar toda a extensão do poder de processamento multicore disponível em um computador desktop. Arc afirma que o geoprocessamento em segundo plano permite que o usuário utilize vários núcleos; no entanto, as tarefas precisam aguardar na fila para que a tarefa anterior seja concluída.
Alguém desenvolveu métodos de geoprocessamento paralelo ou multithread no Arc / Python? Existem gargalos de hardware que impedem o processamento multicore em tarefas individuais?
Encontrei um exemplo interessante no Stackoverflow que chamou minha atenção, embora não seja um exemplo de geoprocessamento:
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
.