Bir masaüstü bilgisayarda mevcut olan çok çekirdekli işlem gücünü tam olarak kullanmak için öğrenme yöntemleri ile ilgileniyorum. Arc, arkaplan coğrafi işleminin kullanıcının birden fazla çekirdeği kullanmasına izin verdiğini, ancak görevlerin esasen bir önceki görevin tamamlanması için sırada beklemesi gerektiğini belirtir.
Arc / Python'da paralel veya çok iş parçacıklı coğrafi işleme yöntemleri geliştiren var mı? Bireysel görevlerde çok çekirdekli işlemeyi engelleyen donanım darboğazları var mı?
Coğrafi işleme örneği olmamasına rağmen, Stackoverflow'da ilgimi çeken ilginç bir örnek buldum:
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
.