Я заинтересован в изучении методов, позволяющих использовать все возможности многоядерной обработки, доступные на настольном компьютере. Arc заявляет, что фоновая геообработка позволяет пользователю использовать несколько ядер, однако задачи по сути должны ждать в очереди, чтобы предыдущая задача была завершена.
Кто-нибудь разрабатывал параллельные или многопоточные методы геообработки в Arc / Python? Существуют ли аппаратные узкие места, препятствующие многоядерной обработке отдельных задач?
Я нашел интересный пример в Stackoverflow, который заинтересовал меня, хотя это не пример геообработки:
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
.