我想在一個簡單的例子上運行一個並行循環。
我在做什麼錯?寫一個並行循環
from joblib import Parallel, delayed
import multiprocessing
def processInput(i):
return i * i
if __name__ == '__main__':
# what are your inputs, and what operation do you want to
# perform on each input. For example...
inputs = range(1000000)
num_cores = multiprocessing.cpu_count()
results = Parallel(n_jobs=4)(delayed(processInput)(i) for i in inputs)
print(results)
與代碼的問題是,當在Python 3在Windows環境中執行時,它蟒蛇執行並行作業的num_cores
實例,但只有一個是積極的。這不應該是這種情況,因爲處理器的活動應該是100%而不是14%(在i7-8邏輯核心下)。
爲什麼額外的實例沒有做任何事情?
您是否收到任何錯誤消息?它對我來說運行良好......。縮進應該是4個空格而不是一個... –
我有同樣的問題。問題是代碼只能運行在一個核心而不是n核心上。 –