Interesuję się metodami uczenia się, aby w pełni wykorzystać moc przetwarzania wielordzeniowego dostępnego na komputerze stacjonarnym. Arc stwierdza, że geoprzetwarzanie w tle pozwala użytkownikowi na wykorzystanie wielu rdzeni, jednak zadania zasadniczo muszą czekać w kolejce na zakończenie poprzedniego zadania.
Czy ktoś opracował równoległe lub wielowątkowe metody geoprzetwarzania w Arc / Python? Czy są jakieś wąskie gardła sprzętowe, które uniemożliwiają przetwarzanie wielordzeniowe przy poszczególnych zadaniach?
Znalazłem interesujący przykład w Stackoverflow, który wzbudził moje zainteresowanie, chociaż nie jest to przykład geoprzetwarzania:
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
.