我想弄清楚如何使用python的多處理(或其他一些python庫)來加速搜索。我目前使用Python 3.4.2。下面是我已經建立了我的搜索和發現(我的實際代碼是什麼,否則,但是示例代碼是一個準確的站在):使用多處理來加速搜索
import random
def search():
nums = list(range(1000)) # use a smaller range to test code
random.shuffle(nums)
if {1, 3, 13} - set(nums[:20]) == set(): # some random hard-coded search
return nums
return None
def find():
res = None
while res is None:
res = search()
return res
>>>find()
[56, 46, 71, 65, 47, 13, 96, 1, 3, 7, 16, 17, 28, ...
不用說,我可以寫搜索作爲單一功能。我可以並行搜索嗎?也就是說,我可以在多個處理器上啓動search
,並且一旦某個處理器返回非None
結果,就會暫停搜索。我該怎麼做呢? (另外,我沒有使用OpenMP,使用Yosetime和全部,也不想安裝gcc)。
(我一直在試圖找到一個很好的教程,文章等的幫助,所以引用任何資源將是非常有益的)。
你試圖在您的流程中平均分配0-1000的數字? – inspectorG4dget 2014-12-19 00:21:14