我对学习方法有兴趣,以充分利用台式计算机上可用的多核处理能力。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
谢谢valveLondon。也许更新的Ivy Bridge技术和Kepler GPU将允许使用更复杂的处理方法。
—
亚伦
这是指向ESRIs分析和地理处理团队的产品工程师的有关python多重处理的有用博客的链接。 blogs.esri.com/esri/arcgis/2011/08/29/multiprocessing
—
Aaron
this is not meant to discourage
。