第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

恢復(fù)傳遞給 multiprocessing.Process 的函數(shù)的返回值的最快方法

恢復(fù)傳遞給 multiprocessing.Process 的函數(shù)的返回值的最快方法

至尊寶的傳說 2021-07-16 18:32:35
我有一個繁重的批處理工作,所以我把它切成 30 個(我的 CPU 數(shù)量)小批量,我做了 30 個multiprocessing.Process來做它們(出于某種原因我沒有使用multiprocessing.Pool)。對于返回值,我使用了 30 multiprocessing.Queue。這是我的代碼的概述:    def minibatch(q, data, i):        do_some_work_data_i        q.put(return_value)    if __name__ == '__main__':        q1 = Queue()        p1 = Process(target=minibatch, args=(q1, data[1], 1))        p1.start()        q2 = Queue()        p2 = Process(target=minibatch, args=(q2, data[2], 2))        p2.start()        first_return_value = q1.get()        second_return_value = q2.get()        p1.join()        p2.join()現(xiàn)在,我發(fā)現(xiàn)它太慢了!如果每個小批量需要 10 秒,我希望我的代碼運(yùn)行大約需要 10 秒,但它需要更多。那我應(yīng)該怎么做呢?
查看完整描述

1 回答

?
森欄

TA貢獻(xiàn)1810條經(jīng)驗 獲得超5個贊

運(yùn)行時順序

processing time * number of runs

運(yùn)行時并行

(processing time) * (number of runs / number of parallel processes) + (process start overhead * number parallel processes)

如果開始時您的處理時間不長,那么創(chuàng)建新流程的開銷將超過您從并行性中獲得的節(jié)省。

如果您的順序批處理需要大約 300 秒,那么您的并行實(shí)現(xiàn)可能只需要 <11 秒,但如果您的順序批處理只需要 10 秒,那么在 30 個進(jìn)程上運(yùn)行它實(shí)際上可能需要更長的時間。


查看完整回答
反對 回復(fù) 2021-07-28
  • 1 回答
  • 0 關(guān)注
  • 235 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號