Ich interessiere mich für Lernmethoden, um das volle Ausmaß der auf einem Desktop-Computer verfügbaren Multicore-Verarbeitungsleistung zu nutzen. Arc gibt an, dass die Hintergrund-Geoverarbeitung es dem Benutzer ermöglicht, mehrere Kerne zu verwenden. Tasks müssen jedoch im Wesentlichen in der Warteschlange warten, bis die vorherige Task abgeschlossen ist.
Hat jemand parallele oder Multithread-Geoverarbeitungsverfahren in Arc / Python entwickelt? Gibt es Hardware-Engpässe, die die Multicore-Verarbeitung bei einzelnen Aufgaben verhindern?
In Stackoverflow habe ich ein interessantes Beispiel gefunden, das mein Interesse geweckt hat, obwohl es kein Geoverarbeitungsbeispiel ist:
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
.