Je suis intéressé à apprendre des méthodes pour utiliser toute la puissance de traitement multicœur disponible sur un ordinateur de bureau. Arc indique que le géotraitement en arrière-plan permet à l'utilisateur d'utiliser plusieurs cœurs, cependant, les tâches doivent essentiellement attendre en ligne pour que la tâche précédente soit terminée.
Quelqu'un a-t-il développé des méthodes de géotraitement parallèles ou multithread en Arc / Python? Existe-t-il des goulots d'étranglement matériels qui empêchent le traitement multicœur sur des tâches individuelles?
J'ai trouvé un exemple intéressant dans Stackoverflow qui a attiré mon attention, bien qu'il ne s'agisse pas d'un exemple de géotraitement:
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
.