Saya tertarik pada metode pembelajaran untuk memanfaatkan sepenuhnya kekuatan pemrosesan multicore yang tersedia di komputer desktop. Arc menyatakan bahwa geoprocessing latar belakang memungkinkan pengguna untuk menggunakan banyak core, namun, tugas-tugas pada dasarnya harus menunggu dalam antrian untuk menyelesaikan tugas sebelumnya.
Adakah yang mengembangkan metode geoproses paralel atau multithreaded di Arc / Python? Apakah ada hambatan perangkat keras yang mencegah pemrosesan multicore pada tugas individu?
Saya menemukan contoh menarik di Stackoverflow yang menarik minat saya, meskipun itu bukan contoh geoproses:
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
.