[英]How do I minimize the runtime of a parallelized computation?
假設有一個函數f
確定一組n
令人尷尬的並行計算的結果,並在找到最后一個問題的答案后立即終止。 n
過程中的每個過程都花費了該過程所獨有的不可忽略的時間量,並且在計算上花費的時間與該計算期間完成的工作之間存在完美的線性相關性。
用更多的數學術語,每個第i
個並行n_i
問題n_i
需要時間t_i
終止,並且每個t_i
對於每個並行化子問題都是唯一的。
考慮到這些條件和無限數量的處理器,不難發現算法的總運行時間恰好是max(t)
。 但是,在其上進行編程的計算機具有數量有限的處理器p
,之后再引入更多子進程將使實際系統不堪重負,並且實際上增加了f
的總運行時間。
我的問題是-在這種實際情況下,子進程的數量受p
限制-什么是最快的算法,可以確定如何在p
處理器上最佳地調度一組並行化子問題n
,以最大程度地減少函數的總運行時間f
?
感謝stark對裝箱問題的評論,我發現這個問題實際上有個名字! 明智地將其稱為“ 多處理器調度問題” 。 我懷疑它在NP中,這意味着沒有有效的算法可以解決它。 對於我目前正在編程的應用程序而言,這是非常不幸的消息,但是盡管如此,還是很有用的!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.