मैं एक डेस्कटॉप कंप्यूटर पर उपलब्ध मल्टीकोर प्रोसेसिंग पावर की पूर्ण सीमा का उपयोग करने के लिए सीखने के तरीकों में दिलचस्पी रखता हूं। आर्क कहता है कि पृष्ठभूमि जियोप्रोसेसिंग उपयोगकर्ता को कई कोर का उपयोग करने की अनुमति देता है, हालांकि, कार्यों को अनिवार्य रूप से पिछले कार्य को पूरा करने के लिए कतार में इंतजार करना पड़ता है।
क्या आर्क / पायथन में किसी ने समानांतर या मल्टीथ्रेडेड जियोप्रोसेसिंग तरीके विकसित किए हैं? क्या हार्डवेयर अड़चनें हैं जो व्यक्तिगत कार्यों पर मल्टीकोर प्रसंस्करण को रोकती हैं?
मुझे 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
।